[glm] 01/04: New upstream version 0.9.8.0
Guus Sliepen
guus at moszumanska.debian.org
Fri Sep 23 12:30:12 UTC 2016
This is an automated email from the git hooks/post-receive script.
guus pushed a commit to branch debian/master
in repository glm.
commit 4f1c8e0ebc228455e1be920bcae143033550acd0
Author: Guus Sliepen <guus at debian.org>
Date: Fri Sep 23 13:41:04 2016 +0200
New upstream version 0.9.8.0
---
.gitignore | 9 +-
CMakeLists.txt | 63 +-
CTestConfig.cmake | 13 -
cmake/CMakePackageConfigHelpers.cmake | 2 +-
copying.txt | 4 +-
doc/api/a00001.html | 13 +-
doc/api/a00001_source.html | 772 +-
doc/api/a00002.html | 13 +-
doc/api/a00002_source.html | 48 +-
doc/api/a00003.html | 13 +-
doc/api/a00003_source.html | 216 +-
doc/api/a00004.html | 13 +-
doc/api/a00004_source.html | 1591 ++--
doc/api/a00005.html | 13 +-
doc/api/a00005_source.html | 1380 ++--
doc/api/a00006.html | 13 +-
doc/api/a00006_source.html | 268 +-
doc/api/a00007.html | 61 +-
doc/api/a00007_source.html | 284 +-
doc/api/a00008.html | 34 +-
doc/api/a00008_source.html | 100 +-
doc/api/a00009.html | 69 +-
doc/api/a00009_source.html | 178 +-
doc/api/a00010.html | 19 +-
doc/api/a00010_source.html | 62 +-
doc/api/a00011.html | 34 +-
doc/api/a00011_source.html | 73 +-
doc/api/a00012.html | 27 +-
doc/api/a00012_source.html | 96 +-
doc/api/a00013.html | 23 +-
doc/api/a00013_source.html | 76 +-
doc/api/a00014.html | 13 +-
doc/api/a00014_source.html | 12 +-
doc/api/a00015.html | 19 +-
doc/api/a00015_source.html | 176 +-
doc/api/a00016.html | 167 +-
doc/api/a00016_source.html | 360 +-
doc/api/a00017.html | 27 +-
doc/api/a00017_source.html | 76 +-
doc/api/a00018.html | 189 +-
doc/api/a00018_source.html | 266 +-
doc/api/a00019.html | 56 +-
doc/api/a00019_source.html | 398 +-
doc/api/a00020.html | 25 +-
doc/api/a00020_source.html | 90 +-
doc/api/a00021.html | 53 +-
doc/api/a00021_source.html | 228 +-
doc/api/a00022.html | 13 +-
doc/api/a00022_source.html | 12 +-
doc/api/{a00141_source.html => a00023.html} | 19 +-
doc/api/a00023_source.html | 319 +-
doc/api/a00024.html | 17 +-
doc/api/a00024_source.html | 50 +-
doc/api/a00025.html | 43 +-
doc/api/a00025_source.html | 196 +-
doc/api/a00026.html | 39 +-
doc/api/a00026_source.html | 116 +-
doc/api/a00027.html | 33 +-
doc/api/a00027_source.html | 102 +-
doc/api/a00028.html | 31 +-
doc/api/a00028_source.html | 98 +-
doc/api/a00029.html | 79 +-
doc/api/a00029_source.html | 358 +-
doc/api/a00030.html | 27 +-
doc/api/a00030_source.html | 102 +-
doc/api/a00031.html | 29 +-
doc/api/a00031_source.html | 122 +-
doc/api/a00032.html | 39 +-
doc/api/a00032_source.html | 174 +-
doc/api/a00033.html | 25 +-
doc/api/a00033_source.html | 208 +-
doc/api/a00034.html | 57 +-
doc/api/a00034_source.html | 94 +-
doc/api/a00035.html | 90 +-
doc/api/a00035_source.html | 132 +-
doc/api/a00036.html | 91 +-
doc/api/a00036_source.html | 130 +-
doc/api/a00037.html | 58 +-
doc/api/a00037_source.html | 90 +-
doc/api/a00038.html | 361 +-
doc/api/a00038_source.html | 2982 ++++----
doc/api/a00039.html | 13 +-
doc/api/a00039_source.html | 12 +-
doc/api/a00040.html | 20 +-
doc/api/a00040_source.html | 120 +-
doc/api/a00041.html | 21 +-
doc/api/a00041_source.html | 66 +-
doc/api/a00042.html | 19 +-
doc/api/a00042_source.html | 64 +-
doc/api/a00043.html | 15 +-
doc/api/a00043_source.html | 250 +-
doc/api/a00044.html | 31 +-
doc/api/a00044_source.html | 80 +-
doc/api/a00045.html | 35 +-
doc/api/a00045_source.html | 86 +-
doc/api/a00046.html | 13 +-
doc/api/a00046_source.html | 12 +-
doc/api/a00047.html | 29 +-
doc/api/a00047_source.html | 112 +-
doc/api/a00048.html | 30 +-
doc/api/a00048_source.html | 233 +-
doc/api/a00049.html | 31 +-
doc/api/a00049_source.html | 87 +-
doc/api/a00050.html | 72 -
doc/api/a00050_source.html | 2449 ++++++-
doc/api/a00051.html | 18 +-
doc/api/a00051_source.html | 57 +-
doc/api/{a00089_source.html => a00052.html} | 17 +-
doc/api/a00052_source.html | 67 +-
doc/api/a00053.html | 18 +-
doc/api/a00053_source.html | 44 +-
doc/api/a00054.html | 18 +-
doc/api/a00054_source.html | 44 +-
doc/api/a00055.html | 22 +-
doc/api/a00055_source.html | 219 +-
doc/api/a00056.html | 32 +-
doc/api/a00056_source.html | 54 +-
doc/api/{a00089_source.html => a00057.html} | 17 +-
doc/api/a00057_source.html | 2424 +-----
doc/api/a00058.html | 73 -
doc/api/a00058_source.html | 53 +-
doc/api/a00059.html | 17 +-
doc/api/a00059_source.html | 52 +-
doc/api/a00060.html | 17 +-
doc/api/a00060_source.html | 28 +-
doc/api/a00061.html | 38 +-
doc/api/a00061_source.html | 66 +-
doc/api/a00062.html | 34 +-
doc/api/a00062_source.html | 61 +-
doc/api/a00063.html | 29 +-
doc/api/a00063_source.html | 56 +-
doc/api/a00064.html | 218 +-
doc/api/a00064_source.html | 403 +-
doc/api/{a00072.html => a00065.html} | 26 +-
doc/api/a00065_source.html | 71 +-
doc/api/a00066.html | 32 +-
doc/api/a00066_source.html | 63 +-
doc/api/a00067.html | 64 +-
doc/api/a00067_source.html | 94 +-
doc/api/a00068.html | 60 +-
doc/api/a00068_source.html | 109 +-
doc/api/a00069.html | 51 +-
doc/api/a00069_source.html | 79 +-
doc/api/a00070.html | 109 +-
doc/api/a00070_source.html | 265 +-
doc/api/a00071.html | 235 +-
doc/api/a00071_source.html | 432 +-
doc/api/a00072.html | 35 +-
doc/api/a00072_source.html | 72 +-
doc/api/a00073.html | 34 +-
doc/api/a00073_source.html | 73 +-
doc/api/a00074.html | 81 +-
doc/api/a00074_source.html | 148 +-
doc/api/a00075.html | 51 +-
doc/api/a00075_source.html | 90 +-
doc/api/a00076.html | 51 +-
doc/api/a00076_source.html | 75 +-
doc/api/a00077.html | 124 +-
doc/api/a00077_source.html | 241 +-
doc/api/a00078.html | 43 +-
doc/api/a00078_source.html | 85 +-
doc/api/a00079.html | 31 +-
doc/api/a00079_source.html | 54 +-
doc/api/a00080.html | 130 +-
doc/api/a00080_source.html | 217 +-
doc/api/a00081.html | 58 +-
doc/api/a00081_source.html | 81 +-
doc/api/a00082.html | 85 -
doc/api/a00082_source.html | 33 +-
doc/api/a00083.html | 30 +-
doc/api/a00083_source.html | 53 +-
doc/api/a00084.html | 65 +-
doc/api/a00084_source.html | 86 +-
doc/api/a00085.html | 35 +-
doc/api/a00085_source.html | 100 +-
doc/api/a00086.html | 30 +-
doc/api/a00086_source.html | 51 +-
doc/api/a00087.html | 167 +-
doc/api/a00087_source.html | 378 +-
doc/api/a00088.html | 82 +-
doc/api/a00088_source.html | 140 +-
doc/api/{a00096.html => a00089.html} | 34 +-
doc/api/a00089_source.html | 64 +-
doc/api/a00090.html | 30 +-
doc/api/a00090_source.html | 101 +-
doc/api/a00091.html | 39 +-
doc/api/a00091_source.html | 57 +-
doc/api/a00092.html | 62 +-
doc/api/a00092_source.html | 86 +-
doc/api/a00093.html | 32 +-
doc/api/a00093_source.html | 59 +-
doc/api/a00094.html | 136 +-
doc/api/a00094_source.html | 324 +-
doc/api/a00095.html | 128 +-
doc/api/a00095_source.html | 220 +-
doc/api/a00096.html | 51 +-
doc/api/a00096_source.html | 130 +-
doc/api/a00097.html | 18 +-
doc/api/a00097_source.html | 85 +-
doc/api/a00098.html | 34 +-
doc/api/a00098_source.html | 803 +-
doc/api/a00099.html | 63 +-
doc/api/a00099_source.html | 227 +-
doc/api/a00100.html | 35 +-
doc/api/a00100_source.html | 256 +-
doc/api/a00101.html | 60 +-
doc/api/a00101_source.html | 427 +-
doc/api/a00102.html | 83 +-
doc/api/a00102_source.html | 140 +-
doc/api/a00103.html | 44 +-
doc/api/a00103_source.html | 113 +-
doc/api/a00104.html | 34 +-
doc/api/a00104_source.html | 48 +-
doc/api/a00105.html | 41 +-
doc/api/a00105_source.html | 1139 +--
doc/api/a00106.html | 54 +-
doc/api/a00106_source.html | 253 +-
doc/api/a00107.html | 20 +-
doc/api/a00107_source.html | 237 +-
doc/api/a00108.html | 195 +-
doc/api/a00108_source.html | 659 +-
doc/api/a00109.html | 448 +-
doc/api/a00109_source.html | 758 +-
doc/api/a00110.html | 48 +-
doc/api/a00110_source.html | 99 +-
doc/api/a00111.html | 35 +-
doc/api/a00111_source.html | 219 +-
doc/api/a00112.html | 41 +-
doc/api/a00112_source.html | 60 +-
doc/api/a00113.html | 85 +-
doc/api/a00113_source.html | 380 +-
doc/api/a00114.html | 224 +-
doc/api/a00114_source.html | 420 +-
doc/api/a00115.html | 446 +-
doc/api/a00115_source.html | 858 +--
doc/api/a00116.html | 33 +-
doc/api/a00116_source.html | 217 +-
doc/api/a00117.html | 17 +-
doc/api/a00117_source.html | 352 +-
doc/api/a00118.html | 17 +-
doc/api/a00118_source.html | 195 +-
doc/api/a00119.html | 53 +-
doc/api/a00119_source.html | 595 +-
doc/api/a00120.html | 215 +-
doc/api/a00120_source.html | 580 +-
doc/api/a00121.html | 17 +-
doc/api/a00121_source.html | 372 +-
doc/api/a00122.html | 17 +-
doc/api/a00122_source.html | 344 +-
doc/api/a00123.html | 17 +-
doc/api/a00123_source.html | 369 +-
doc/api/a00124.html | 24 +-
doc/api/a00124_source.html | 813 +-
doc/api/a00125.html | 81 +-
doc/api/a00125_source.html | 309 +-
doc/api/a00126.html | 20 +-
doc/api/a00126_source.html | 418 +-
doc/api/a00127.html | 143 +-
doc/api/a00127_source.html | 563 +-
doc/api/a00128.html | 17 +-
doc/api/a00128_source.html | 473 +-
doc/api/a00129.html | 17 +-
doc/api/a00129_source.html | 573 +-
doc/api/a00130.html | 24 +-
doc/api/a00130_source.html | 1007 +--
doc/api/a00131.html | 81 +-
doc/api/a00131_source.html | 540 +-
doc/api/a00132.html | 164 +-
doc/api/a00132_source.html | 323 +-
doc/api/a00133.html | 60 +-
doc/api/a00133_source.html | 387 +-
doc/api/a00134.html | 19 +-
doc/api/a00134_source.html | 384 +-
doc/api/a00135.html | 19 +-
doc/api/a00135_source.html | 400 +-
doc/api/a00136.html | 19 +-
doc/api/a00136_source.html | 500 +-
doc/api/a00137.html | 52 +-
doc/api/a00137_source.html | 85 +-
doc/api/a00138.html | 79 +-
doc/api/a00138_source.html | 149 +-
doc/api/a00139.html | 17 +-
doc/api/a00139_source.html | 14 +-
doc/api/a00140.html | 38 +-
doc/api/a00140_source.html | 45 +-
doc/api/a00141.html | 73 -
doc/api/a00142.html | 93 -
doc/api/a00142_source.html | 98 -
doc/api/a00143.html | 98 -
doc/api/a00143_source.html | 104 -
doc/api/a00144.html | 73 -
doc/api/a00144_source.html | 65 -
doc/api/a00145.html | 92 -
doc/api/a00145_source.html | 93 -
doc/api/{a00151.html => a00146.html} | 92 +-
doc/api/{a00152.html => a00147.html} | 20 +-
doc/api/{a00153.html => a00148.html} | 22 +-
doc/api/{a00154.html => a00149.html} | 52 +-
doc/api/{a00155.html => a00150.html} | 22 +-
doc/api/a00151.html | 1027 +--
doc/api/a00152.html | 403 +-
doc/api/a00153.html | 260 +-
doc/api/a00154.html | 576 +-
doc/api/a00155.html | 283 +-
doc/api/a00156.html | 161 +-
doc/api/a00157.html | 804 +-
doc/api/a00158.html | 2885 +++++++-
doc/api/a00159.html | 350 +-
doc/api/a00160.html | 980 ++-
doc/api/a00161.html | 212 +-
doc/api/a00162.html | 652 +-
doc/api/a00163.html | 1025 +--
doc/api/a00164.html | 2792 +------
doc/api/a00165.html | 247 +-
doc/api/a00166.html | 890 +--
doc/api/a00167.html | 1857 ++++-
doc/api/a00168.html | 635 +-
doc/api/a00169.html | 1595 +++-
doc/api/a00170.html | 140 +-
doc/api/a00171.html | 1339 +++-
doc/api/a00172.html | 2010 ++---
doc/api/a00173.html | 228 +-
doc/api/a00174.html | 1152 +--
doc/api/a00175.html | 525 +-
doc/api/a00176.html | 960 +--
doc/api/a00177.html | 3790 ++++++++--
doc/api/a00178.html | 420 +-
doc/api/a00179.html | 251 +-
doc/api/a00180.html | 560 +-
doc/api/a00181.html | 4319 +++--------
doc/api/a00182.html | 376 +-
doc/api/a00183.html | 174 +-
doc/api/a00184.html | 170 +-
doc/api/a00185.html | 1230 +---
doc/api/a00186.html | 200 +-
doc/api/a00187.html | 303 +-
doc/api/a00188.html | 138 +-
doc/api/a00189.html | 401 +-
doc/api/a00190.html | 682 +-
doc/api/a00191.html | 301 +-
doc/api/a00192.html | 486 +-
doc/api/a00193.html | 393 +-
doc/api/a00194.html | 469 +-
doc/api/a00195.html | 185 +-
doc/api/a00196.html | 474 +-
doc/api/a00197.html | 282 +-
doc/api/a00198.html | 239 +-
doc/api/a00199.html | 224 +-
doc/api/a00200.html | 320 +-
doc/api/a00201.html | 94 +-
doc/api/a00202.html | 83 +-
doc/api/a00203.html | 251 +-
doc/api/a00204.html | 328 +-
doc/api/a00205.html | 148 +-
doc/api/a00206.html | 351 +-
doc/api/a00207.html | 196 +-
doc/api/a00208.html | 246 +-
doc/api/a00209.html | 168 +-
doc/api/a00210.html | 375 +-
doc/api/a00211.html | 218 +-
doc/api/a00212.html | 254 +-
doc/api/a00213.html | 180 +-
doc/api/a00214.html | 50 +-
doc/api/a00215.html | 274 +-
doc/api/a00216.html | 52 +-
doc/api/a00217.html | 64 +-
doc/api/a00218.html | 91 +-
doc/api/a00219.html | 72 +-
doc/api/a00220.html | 542 +-
doc/api/a00221.html | 50 +-
doc/api/a00222.html | 94 +-
doc/api/a00223.html | 104 +-
doc/api/a00224.html | 452 +-
doc/api/a00225.html | 12 +-
doc/api/a00226.html | 94 +-
doc/api/a00227.html | 122 +-
doc/api/a00228.html | 396 +-
doc/api/a00229.html | 168 +-
doc/api/a00230.html | 170 +-
doc/api/a00231.html | 40 +-
doc/api/a00232.html | 100 +-
doc/api/a00233.html | 273 +-
doc/api/a00234.html | 7728 ++++++++++++++++++-
doc/api/a00235.html | 39 +-
doc/api/a00236.html | 98 +-
doc/api/a00237.html | 255 +-
doc/api/a00238.html | 7744 +-------------------
doc/api/a00239.html | 163 -
doc/api/a00240.html | 271 -
doc/api/a00241.html | 149 -
doc/api/dir_1f76e953200861345293ade84ac7fb6c.html | 4 +-
doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html | 4 +-
doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html | 8 +-
doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html | 38 +-
doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html | 4 +-
doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html | 84 +-
doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html | 36 +-
doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html | 4 +-
doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html | 68 +-
doc/api/files.html | 289 +-
doc/api/index.html | 136 +-
doc/api/modules.html | 190 +-
doc/glm.docx | Bin 1135819 -> 1411022 bytes
doc/glm.pdf | Bin 1308775 -> 1392940 bytes
doc/man.doxy | 4792 ++++++------
doc/pages.doxy | 2 +-
glm/CMakeLists.txt | 39 +-
glm/common.hpp | 29 -
glm/detail/_features.hpp | 33 +-
glm/detail/_fixes.hpp | 29 -
glm/detail/_noise.hpp | 29 -
glm/detail/_swizzle.hpp | 1096 ++-
glm/detail/_swizzle_func.hpp | 29 -
glm/detail/_vectorize.hpp | 29 -
glm/detail/dummy.cpp | 39 +-
glm/detail/func_common.hpp | 29 -
glm/detail/func_common.inl | 354 +-
glm/detail/func_common_simd.inl | 231 +
glm/detail/func_exponential.hpp | 29 -
glm/detail/func_exponential.inl | 57 +-
glm/detail/func_exponential_simd.inl | 35 +
glm/detail/func_geometric.hpp | 29 -
glm/detail/func_geometric.inl | 176 +-
glm/detail/func_geometric_simd.inl | 99 +
glm/detail/func_integer.hpp | 29 -
glm/detail/func_integer.inl | 91 +-
glm/detail/func_integer_simd.inl | 66 +
glm/detail/func_matrix.hpp | 29 -
glm/detail/func_matrix.inl | 221 +-
glm/detail/func_matrix_simd.inl | 88 +
glm/detail/func_packing.hpp | 33 +-
glm/detail/func_packing.inl | 33 +-
glm/detail/func_packing_simd.inl | 9 +
glm/detail/func_trigonometric.hpp | 29 -
glm/detail/func_trigonometric.inl | 36 +-
glm/detail/func_trigonometric_simd.inl | 0
glm/detail/func_vector_relational.hpp | 29 -
glm/detail/func_vector_relational.inl | 62 +-
glm/detail/func_vector_relational_simd.inl | 9 +
glm/detail/glm.cpp | 29 -
glm/detail/intrinsic_common.hpp | 87 -
glm/detail/intrinsic_common.inl | 313 -
glm/detail/intrinsic_exponential.hpp | 77 -
glm/detail/intrinsic_exponential.inl | 27 -
glm/detail/intrinsic_geometric.hpp | 74 -
glm/detail/intrinsic_geometric.inl | 147 -
glm/detail/intrinsic_integer.hpp | 48 -
glm/detail/intrinsic_integer.inl | 139 -
glm/detail/intrinsic_matrix.hpp | 67 -
glm/detail/intrinsic_trigonometric.hpp | 46 -
glm/detail/intrinsic_trigonometric.inl | 27 -
glm/detail/intrinsic_vector_relational.hpp | 46 -
glm/detail/intrinsic_vector_relational.inl | 366 -
glm/detail/precision.hpp | 86 +-
glm/detail/setup.hpp | 804 +-
glm/detail/type_float.hpp | 29 -
glm/detail/type_gentype.hpp | 29 -
glm/detail/type_gentype.inl | 29 -
glm/detail/type_half.hpp | 29 -
glm/detail/type_half.inl | 33 -
glm/detail/type_int.hpp | 80 +-
glm/detail/type_mat.hpp | 32 +-
glm/detail/type_mat.inl | 29 -
glm/detail/type_mat2x2.hpp | 99 +-
glm/detail/type_mat2x2.inl | 193 +-
glm/detail/type_mat2x3.hpp | 92 +-
glm/detail/type_mat2x3.inl | 139 +-
glm/detail/type_mat2x4.hpp | 92 +-
glm/detail/type_mat2x4.inl | 137 +-
glm/detail/type_mat3x2.hpp | 97 +-
glm/detail/type_mat3x2.inl | 161 +-
glm/detail/type_mat3x3.hpp | 105 +-
glm/detail/type_mat3x3.inl | 205 +-
glm/detail/type_mat3x4.hpp | 96 +-
glm/detail/type_mat3x4.inl | 167 +-
glm/detail/type_mat4x2.hpp | 100 +-
glm/detail/type_mat4x2.inl | 190 +-
glm/detail/type_mat4x3.hpp | 70 +-
glm/detail/type_mat4x3.inl | 111 +-
glm/detail/type_mat4x4.hpp | 73 +-
glm/detail/type_mat4x4.inl | 159 +-
glm/detail/type_mat4x4_simd.inl | 7 +
glm/detail/type_vec.hpp | 126 +-
glm/detail/type_vec.inl | 29 -
glm/detail/type_vec1.hpp | 176 +-
glm/detail/type_vec1.inl | 175 +-
glm/detail/type_vec2.hpp | 176 +-
glm/detail/type_vec2.inl | 172 +-
glm/detail/type_vec3.hpp | 223 +-
glm/detail/type_vec3.inl | 191 +-
glm/detail/type_vec4.hpp | 231 +-
glm/detail/type_vec4.inl | 830 +--
glm/detail/type_vec4_avx.inl | 41 -
glm/detail/type_vec4_avx2.inl | 41 -
glm/detail/type_vec4_simd.inl | 482 ++
glm/detail/type_vec4_sse2.inl | 77 -
glm/exponential.hpp | 29 -
glm/ext.hpp | 49 +-
glm/fwd.hpp | 29 -
glm/geometric.hpp | 29 -
glm/glm.hpp | 67 +-
glm/gtc/bitfield.hpp | 31 +-
glm/gtc/bitfield.inl | 59 +-
glm/gtc/color_encoding.inl | 65 +
glm/gtc/color_space.hpp | 47 +-
glm/gtc/color_space.inl | 45 +-
glm/gtc/constants.hpp | 31 +-
glm/gtc/constants.inl | 29 -
glm/gtc/epsilon.hpp | 31 +-
glm/gtc/epsilon.inl | 29 -
glm/gtc/functions.hpp | 53 +
glm/gtc/functions.inl | 31 +
glm/gtc/integer.hpp | 61 +-
glm/gtc/integer.inl | 72 +-
glm/gtc/matrix_access.hpp | 35 +-
glm/gtc/matrix_access.inl | 41 +-
glm/gtc/matrix_integer.hpp | 33 +-
glm/gtc/matrix_inverse.hpp | 35 +-
glm/gtc/matrix_inverse.inl | 29 -
glm/gtc/matrix_transform.hpp | 183 +-
glm/gtc/matrix_transform.inl | 445 +-
glm/gtc/noise.hpp | 33 +-
glm/gtc/noise.inl | 31 +-
glm/gtc/packing.hpp | 165 +-
glm/gtc/packing.inl | 458 +-
glm/gtc/quaternion.hpp | 135 +-
glm/gtc/quaternion.inl | 216 +-
glm/gtc/quaternion_simd.inl | 198 +
glm/gtc/random.hpp | 44 +-
glm/gtc/random.inl | 29 -
glm/gtc/reciprocal.hpp | 65 +-
glm/gtc/reciprocal.inl | 29 -
glm/gtc/round.hpp | 35 +-
glm/gtc/round.inl | 29 -
glm/gtc/type_aligned.hpp | 362 +
glm/gtc/type_precision.hpp | 39 +-
glm/gtc/type_precision.inl | 29 -
glm/gtc/type_ptr.hpp | 39 +-
glm/gtc/type_ptr.inl | 29 -
glm/gtc/ulp.hpp | 33 +-
glm/gtc/ulp.inl | 41 +-
glm/gtc/vec1.hpp | 31 +-
glm/gtc/vec1.inl | 29 -
glm/gtx/associated_min_max.hpp | 31 +-
glm/gtx/associated_min_max.inl | 61 +-
glm/gtx/bit.hpp | 35 +-
glm/gtx/bit.inl | 44 +-
glm/gtx/closest_point.hpp | 33 +-
glm/gtx/closest_point.inl | 29 -
glm/gtx/color_space.hpp | 35 +-
glm/gtx/color_space.inl | 29 -
glm/gtx/color_space_YCoCg.hpp | 33 +-
glm/gtx/color_space_YCoCg.inl | 29 -
glm/gtx/common.hpp | 37 +-
glm/gtx/common.inl | 29 -
glm/gtx/compatibility.hpp | 39 +-
glm/gtx/compatibility.inl | 29 -
glm/gtx/component_wise.hpp | 57 +-
glm/gtx/component_wise.inl | 150 +-
glm/gtx/dual_quaternion.hpp | 74 +-
glm/gtx/dual_quaternion.inl | 101 +-
glm/gtx/euler_angles.hpp | 37 +-
glm/gtx/euler_angles.inl | 31 +-
glm/gtx/extend.hpp | 35 +-
glm/gtx/extend.inl | 29 -
.../{extented_min_max.hpp => extended_min_max.hpp} | 41 +-
.../{extented_min_max.inl => extended_min_max.inl} | 33 +-
glm/gtx/fast_exponential.hpp | 35 +-
glm/gtx/fast_exponential.inl | 31 +-
glm/gtx/fast_square_root.hpp | 35 +-
glm/gtx/fast_square_root.inl | 35 +-
glm/gtx/fast_trigonometry.hpp | 35 +-
glm/gtx/fast_trigonometry.inl | 29 -
glm/gtx/float_notmalize.inl | 14 +
glm/gtx/gradient_paint.hpp | 33 +-
glm/gtx/gradient_paint.inl | 29 -
glm/gtx/handed_coordinate_space.hpp | 35 +-
glm/gtx/handed_coordinate_space.inl | 29 -
glm/gtx/hash.hpp | 29 -
glm/gtx/hash.inl | 33 +-
glm/gtx/integer.hpp | 35 +-
glm/gtx/integer.inl | 29 -
glm/gtx/intersect.hpp | 35 +-
glm/gtx/intersect.inl | 49 +-
glm/gtx/io.hpp | 75 +-
glm/gtx/io.inl | 649 +-
glm/gtx/log_base.hpp | 35 +-
glm/gtx/log_base.inl | 29 -
glm/gtx/matrix_cross_product.hpp | 35 +-
glm/gtx/matrix_cross_product.inl | 29 -
glm/gtx/matrix_decompose.hpp | 38 +-
glm/gtx/matrix_decompose.inl | 65 +-
glm/gtx/matrix_interpolation.hpp | 34 +-
glm/gtx/matrix_interpolation.inl | 29 -
glm/gtx/matrix_major_storage.hpp | 35 +-
glm/gtx/matrix_major_storage.inl | 29 -
glm/gtx/matrix_operation.hpp | 35 +-
glm/gtx/matrix_operation.inl | 29 -
glm/gtx/matrix_query.hpp | 35 +-
glm/gtx/matrix_query.inl | 67 +-
glm/gtx/matrix_transform_2d.hpp | 34 +-
glm/gtx/matrix_transform_2d.inl | 28 -
glm/gtx/mixed_product.hpp | 35 +-
glm/gtx/mixed_product.inl | 29 -
glm/gtx/norm.hpp | 35 +-
glm/gtx/norm.inl | 35 +-
glm/gtx/normal.hpp | 35 +-
glm/gtx/normal.inl | 29 -
glm/gtx/normalize_dot.hpp | 35 +-
glm/gtx/normalize_dot.inl | 29 -
glm/gtx/number_precision.hpp | 35 +-
glm/gtx/number_precision.inl | 29 -
glm/gtx/optimum_pow.hpp | 35 +-
glm/gtx/optimum_pow.inl | 29 -
glm/gtx/orthonormalize.hpp | 35 +-
glm/gtx/orthonormalize.inl | 29 -
glm/gtx/perpendicular.hpp | 35 +-
glm/gtx/perpendicular.inl | 29 -
glm/gtx/polar_coordinates.hpp | 35 +-
glm/gtx/polar_coordinates.inl | 31 +-
glm/gtx/projection.hpp | 35 +-
glm/gtx/projection.inl | 29 -
glm/gtx/quaternion.hpp | 37 +-
glm/gtx/quaternion.inl | 99 +-
glm/gtx/range.hpp | 91 +-
glm/gtx/raw_data.hpp | 35 +-
glm/gtx/raw_data.inl | 29 -
glm/gtx/rotate_normalized_axis.hpp | 37 +-
glm/gtx/rotate_normalized_axis.inl | 29 -
glm/gtx/rotate_vector.hpp | 35 +-
glm/gtx/rotate_vector.inl | 29 -
glm/gtx/scalar_multiplication.hpp | 29 -
glm/gtx/scalar_relational.hpp | 35 +-
glm/gtx/scalar_relational.inl | 29 -
glm/gtx/simd_mat4.hpp | 41 +-
glm/gtx/simd_mat4.inl | 33 +-
glm/gtx/simd_quat.hpp | 43 +-
glm/gtx/simd_quat.inl | 32 +-
glm/gtx/simd_vec4.hpp | 49 +-
glm/gtx/simd_vec4.inl | 24 +-
glm/gtx/spline.hpp | 35 +-
glm/gtx/spline.inl | 29 -
glm/gtx/std_based_type.hpp | 33 +-
glm/gtx/std_based_type.inl | 29 -
glm/gtx/string_cast.hpp | 35 +-
glm/gtx/string_cast.inl | 29 -
glm/gtx/transform.hpp | 33 +-
glm/gtx/transform.inl | 48 +-
glm/gtx/transform2.hpp | 33 +-
glm/gtx/transform2.inl | 115 +-
glm/gtx/type_aligned.hpp | 41 +-
glm/gtx/type_aligned.inl | 29 -
glm/gtx/type_trait.hpp | 252 +
glm/gtx/type_trait.inl | 0
glm/gtx/vector_angle.hpp | 35 +-
glm/gtx/vector_angle.inl | 29 -
glm/gtx/vector_query.hpp | 33 +-
glm/gtx/vector_query.inl | 29 -
glm/gtx/wrap.hpp | 52 +-
glm/gtx/wrap.inl | 168 +-
glm/integer.hpp | 29 -
glm/mat2x2.hpp | 29 -
glm/mat2x3.hpp | 29 -
glm/mat2x4.hpp | 29 -
glm/mat3x2.hpp | 29 -
glm/mat3x3.hpp | 29 -
glm/mat3x4.hpp | 29 -
glm/mat4x2.hpp | 29 -
glm/mat4x3.hpp | 29 -
glm/mat4x4.hpp | 29 -
glm/matrix.hpp | 29 -
glm/packing.hpp | 29 -
glm/simd/common.h | 240 +
glm/simd/exponential.h | 20 +
glm/simd/geometric.h | 124 +
glm/simd/integer.h | 115 +
glm/{detail/intrinsic_matrix.inl => simd/matrix.h} | 150 +-
glm/simd/packing.h | 8 +
glm/simd/platform.h | 239 +-
glm/simd/trigonometric.h | 9 +
glm/simd/vector_relational.h | 8 +
glm/trigonometric.hpp | 29 -
glm/vec2.hpp | 29 -
glm/vec3.hpp | 29 -
glm/vec4.hpp | 29 -
glm/vector_relational.hpp | 29 -
readme.md | 67 +-
test/.DS_Store | Bin 6148 -> 0 bytes
test/CMakeLists.txt | 4 +-
test/core/CMakeLists.txt | 1 -
test/core/core_func_common.cpp | 80 +-
test/core/core_func_exponential.cpp | 41 +-
test/core/core_func_geometric.cpp | 38 +-
test/core/core_func_integer.cpp | 37 +-
test/core/core_func_integer_bit_count.cpp | 31 -
test/core/core_func_integer_find_lsb.cpp | 31 -
test/core/core_func_integer_find_msb.cpp | 30 -
test/core/core_func_matrix.cpp | 67 +-
test/core/core_func_noise.cpp | 31 -
test/core/core_func_packing.cpp | 39 +-
test/core/core_func_swizzle.cpp | 40 +-
test/core/core_func_trigonometric.cpp | 31 -
test/core/core_func_vector_relational.cpp | 31 -
test/core/core_setup_force_cxx98.cpp | 32 -
test/core/core_setup_message.cpp | 109 +-
test/core/core_setup_precision.cpp | 31 -
test/core/core_type_cast.cpp | 31 -
test/core/core_type_ctor.cpp | 37 +-
test/core/core_type_float.cpp | 31 -
test/core/core_type_int.cpp | 31 -
test/core/core_type_length.cpp | 31 -
test/core/core_type_length_size.cpp | 116 -
test/core/core_type_mat2x2.cpp | 36 -
test/core/core_type_mat2x3.cpp | 36 -
test/core/core_type_mat2x4.cpp | 38 +-
test/core/core_type_mat3x2.cpp | 36 -
test/core/core_type_mat3x3.cpp | 36 -
test/core/core_type_mat3x4.cpp | 36 -
test/core/core_type_mat4x2.cpp | 36 -
test/core/core_type_mat4x3.cpp | 36 -
test/core/core_type_mat4x4.cpp | 37 -
test/core/core_type_vec1.cpp | 46 +-
test/core/core_type_vec2.cpp | 46 +-
test/core/core_type_vec3.cpp | 53 +-
test/core/core_type_vec4.cpp | 153 +-
test/gtc/CMakeLists.txt | 2 +
test/gtc/gtc_bitfield.cpp | 59 +-
test/gtc/gtc_color_space.cpp | 31 -
test/gtc/gtc_constants.cpp | 31 -
test/gtc/gtc_epsilon.cpp | 31 -
test/gtc/gtc_functions.cpp | 35 +
test/gtc/gtc_integer.cpp | 69 +-
test/gtc/gtc_matrix_access.cpp | 31 -
test/gtc/gtc_matrix_integer.cpp | 31 -
test/gtc/gtc_matrix_inverse.cpp | 31 -
test/gtc/gtc_matrix_transform.cpp | 31 -
test/gtc/gtc_noise.cpp | 31 -
test/gtc/gtc_packing.cpp | 215 +-
test/gtc/gtc_quaternion.cpp | 37 -
test/gtc/gtc_random.cpp | 33 +-
test/gtc/gtc_reciprocal.cpp | 31 -
test/gtc/gtc_round.cpp | 61 +-
test/gtc/gtc_type_aligned.cpp | 118 +
test/gtc/gtc_type_precision.cpp | 31 -
test/gtc/gtc_type_ptr.cpp | 31 -
test/gtc/gtc_ulp.cpp | 31 -
test/gtc/gtc_vec1.cpp | 31 -
test/gtx/CMakeLists.txt | 7 +-
test/gtx/gtx_associated_min_max.cpp | 31 -
test/gtx/gtx_closest_point.cpp | 31 -
test/gtx/gtx_color_space.cpp | 31 -
test/gtx/gtx_color_space_YCoCg.cpp | 31 -
test/gtx/gtx_common.cpp | 33 +-
test/gtx/gtx_compatibility.cpp | 31 -
test/gtx/gtx_component_wise.cpp | 138 +-
test/gtx/gtx_dual_quaternion.cpp | 35 -
test/gtx/gtx_euler_angle.cpp | 31 -
test/gtx/gtx_extend.cpp | 31 -
test/gtx/gtx_extended_min_max.cpp | 8 +
test/gtx/gtx_extented_min_max.cpp | 2 +-
test/gtx/gtx_fast_exponential.cpp | 31 -
test/gtx/gtx_fast_square_root.cpp | 31 -
test/gtx/gtx_fast_trigonometry.cpp | 31 -
test/gtx/gtx_gradient_paint.cpp | 31 -
test/gtx/gtx_handed_coordinate_space.cpp | 31 -
test/gtx/gtx_integer.cpp | 35 +-
test/gtx/gtx_intersect.cpp | 31 -
test/gtx/gtx_io.cpp | 65 +-
test/gtx/gtx_log_base.cpp | 31 -
test/gtx/gtx_matrix_cross_product.cpp | 31 -
test/gtx/gtx_matrix_decompose.cpp | 31 -
test/gtx/gtx_matrix_interpolation.cpp | 31 -
test/gtx/gtx_matrix_major_storage.cpp | 31 -
test/gtx/gtx_matrix_operation.cpp | 31 -
test/gtx/gtx_matrix_query.cpp | 31 -
test/gtx/gtx_matrix_transform_2d.cpp | 31 -
test/gtx/gtx_norm.cpp | 31 -
test/gtx/gtx_normal.cpp | 31 -
test/gtx/gtx_normalize_dot.cpp | 31 -
test/gtx/gtx_number_precision.cpp | 31 -
test/gtx/gtx_optimum_pow.cpp | 31 -
test/gtx/gtx_orthonormalize.cpp | 31 -
test/gtx/gtx_perpendicular.cpp | 31 -
test/gtx/gtx_polar_coordinates.cpp | 31 -
test/gtx/gtx_projection.cpp | 31 -
test/gtx/gtx_quaternion.cpp | 31 -
test/gtx/gtx_range.cpp | 31 -
test/gtx/gtx_rotate_normalized_axis.cpp | 31 -
test/gtx/gtx_rotate_vector.cpp | 31 -
test/gtx/gtx_scalar_multiplication.cpp | 33 +-
test/gtx/gtx_scalar_relational.cpp | 31 -
test/gtx/gtx_simd_mat4.cpp | 10 -
test/gtx/gtx_simd_vec4.cpp | 5 -
test/gtx/gtx_spline.cpp | 31 -
test/gtx/gtx_string_cast.cpp | 31 -
test/gtx/gtx_type_aligned.cpp | 31 -
test/gtx/gtx_type_trait.cpp | 12 +
test/gtx/gtx_vector_angle.cpp | 31 -
test/gtx/gtx_vector_query.cpp | 31 -
test/gtx/gtx_wrap.cpp | 79 +-
800 files changed, 67187 insertions(+), 77381 deletions(-)
diff --git a/.gitignore b/.gitignore
index 00cc171..aa0cad1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,7 +30,6 @@
# CMake
CMakeCache.txt
CMakeFiles
-Makefile
cmake_install.cmake
install_manifest.txt
*.cmake
@@ -43,5 +42,13 @@ Testing/*
test/gtc/*.dds
# Project Files
+Makefile
*.cbp
*.user
+
+# Misc.
+*.log
+
+# local build(s)
+build*
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce57ee5..b7df09f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ if (NOT CMAKE_VERSION VERSION_LESS "3.1")
endif()
project(glm)
-set(GLM_VERSION "0.9.7")
+set(GLM_VERSION "0.9.8")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
@@ -16,11 +16,23 @@ enable_testing()
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+option(GLM_STATIC_LIBRARY_ENABLE "GLM static library" OFF)
+if(GLM_STATIC_LIBRARY_ENABLE)
+ message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_STATIC_LIBRARY_ENABLE with ON to build an optional static library")
+endif()
+
+option(GLM_DYNAMIC_LIBRARY_ENABLE "GLM static library" OFF)
+if(GLM_DYNAMIC_LIBRARY_ENABLE)
+ message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_DYNAMIC_LIBRARY_ENABLE with ON to build an optional dynamic library")
+endif()
+
option(GLM_TEST_ENABLE "GLM test" OFF)
if(NOT GLM_TEST_ENABLE)
message(STATUS "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench")
endif()
+option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF)
+
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX))
option(GLM_TEST_ENABLE_CXX_98 "Enable C++ 98" OFF)
option(GLM_TEST_ENABLE_CXX_0X "Enable C++ 0x" OFF)
@@ -54,20 +66,26 @@ if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}"
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_CXX_FLAGS "-std=c++98")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- # GLM is using GCC 64 bits integer extension
add_definitions(-Wno-long-long)
- elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- add_definitions(-Wno-c++11-long-long)
endif()
endif()
endif()
-option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF)
+option(GLM_TEST_ENABLE_LANG_EXTENSIONS "Enable language extensions" OFF)
-if(GLM_TEST_ENABLE_MS_EXTENSIONS)
- if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"))
- add_definitions(-Wgnu-anonymous-struct)
- add_definitions(-Wnested-anon-types)
+if(GLM_TEST_ENABLE_LANG_EXTENSIONS)
+ if(GLM_TEST_ENABLE_FAST_MATH)
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-ffast-math)
+ endif()
+
+ if(MSVC)
+ add_definitions(/fp:fast)
+ endif()
+ elseif(NOT GLM_TEST_ENABLE_FAST_MATH)
+ if(MSVC)
+ add_definitions(/fp:precise)
+ endif()
endif()
else()
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND WIN32))
@@ -110,7 +128,7 @@ elseif(GLM_TEST_ENABLE_SIMD_SSE3)
add_definitions(-msse3)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE3)
- elseif(MSVC)
+ elseif(MSVC AND NOT CMAKE_CL_64)
add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3
endif()
elseif(GLM_TEST_ENABLE_SIMD_SSE2)
@@ -118,25 +136,8 @@ elseif(GLM_TEST_ENABLE_SIMD_SSE2)
add_definitions(-msse2)
elseif(GLM_USE_INTEL)
add_definitions(/QxSSE2)
- elseif(MSVC)
- if(NOT CMAKE_CL_64)
- add_definitions(/arch:SSE2)
- endif()
- endif()
-endif()
-
-option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF)
-if(GLM_TEST_ENABLE_FAST_MATH)
- if(CMAKE_COMPILER_IS_GNUCXX)
- add_definitions(-ffast-math)
- endif()
-
- if(MSVC)
- add_definitions(/fp:fast)
- endif()
-elseif(NOT GLM_TEST_ENABLE_FAST_MATH)
- if(MSVC)
- add_definitions(/fp:precise)
+ elseif(MSVC AND NOT CMAKE_CL_64)
+ add_definitions(/arch:SSE2)
endif()
endif()
@@ -149,6 +150,10 @@ if(CMAKE_COMPILER_IS_GNUCXX)
#ctest_enable_coverage()
endif()
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+ add_definitions(/FAs)
+endif()
+
include_directories("${PROJECT_SOURCE_DIR}")
include_directories("${PROJECT_SOURCE_DIR}/test/external")
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
deleted file mode 100644
index 7cd8963..0000000
--- a/CTestConfig.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-## This file should be placed in the root directory of your project.
-## Then modify the CMakeLists.txt file in the root directory of your
-## project to incorporate the testing dashboard.
-## # The following are required to uses Dart and the Cdash dashboard
-## ENABLE_TESTING()
-## INCLUDE(CTest)
-set(CTEST_PROJECT_NAME "GLM")
-set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
-
-set(CTEST_DROP_METHOD "http")
-set(CTEST_DROP_SITE "my.cdash.org")
-set(CTEST_DROP_LOCATION "/submit.php?project=GLM")
-set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/cmake/CMakePackageConfigHelpers.cmake b/cmake/CMakePackageConfigHelpers.cmake
index 60650a2..10f28f0 100644
--- a/cmake/CMakePackageConfigHelpers.cmake
+++ b/cmake/CMakePackageConfigHelpers.cmake
@@ -97,7 +97,7 @@
# own custom ConfigVersion.cmake file instead of using this macro.
#
# Internally, this macro executes configure_file() to create the resulting
-# version file. Depending on the COMPATIBLITY, either the file
+# version file. Depending on the COMPATIBILITY, either the file
# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
# is used. Please note that these two files are internal to CMake and you should
# not call configure_file() on them yourself, but they can be used as starting
diff --git a/copying.txt b/copying.txt
index c5695d4..b62cd3f 100644
--- a/copying.txt
+++ b/copying.txt
@@ -7,7 +7,7 @@ a) The Happy Bunny License, or b) the MIT License.
================================================================================
The Happy Bunny License (Modified MIT License)
--------------------------------------------------------------------------------
-Copyright (c) 2005 - 2015 G-Truc Creation
+Copyright (c) 2005 - 2016 G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -33,7 +33,7 @@ THE SOFTWARE.
================================================================================
The MIT License
--------------------------------------------------------------------------------
-Copyright (c) 2005 - 2015 G-Truc Creation
+Copyright (c) 2005 - 2016 G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/doc/api/a00001.html b/doc/api/a00001.html
index afbfaf0..bf310c8 100644
--- a/doc/api/a00001.html
+++ b/doc/api/a00001.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _features.hpp File Reference</title>
+<title>0.9.8: _features.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00001_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-20 / 2013-02-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00001_source.html">_features.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00001_source.html b/doc/api/a00001_source.html
index c2f58f9..2c98fae 100644
--- a/doc/api/a00001_source.html
+++ b/doc/api/a00001_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _features.hpp Source File</title>
+<title>0.9.8: _features.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,402 +50,402 @@
</div><!--header-->
<div class="contents">
<a href="a00001.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// #define GLM_CXX98_RTTI</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Rvalue references - GCC 4.3</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Rvalue references for *this - GCC not supported</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// Variadic templates - GCC 4.3</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Initializer lists - GCC 4.4</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// #define GLM_CXX11_STATIC_ASSERT </span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Static assertions - GCC 4.3</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// auto-typed variables - GCC 4.4</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// New function declarator syntax - GCC 4.4</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Declared type of an expression - GCC 4.3</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// Right angle brackets - GCC 4.3</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// Template aliases N2258 GCC 4.7</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Extern templates N1987 Yes</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Alignment support N2341 GCC 4.8</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// #define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// Rvalue references - GCC 4.3</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Rvalue references for *this - GCC not supported</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Variadic templates - GCC 4.3</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Initializer lists - GCC 4.4</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// #define GLM_CXX11_STATIC_ASSERT </span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Static assertions - GCC 4.3</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// auto-typed variables - GCC 4.4</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// New function declarator syntax - GCC 4.4</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Declared type of an expression - GCC 4.3</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Right angle brackets - GCC 4.3</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Template aliases N2258 GCC 4.7</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// Extern templates N1987 Yes</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Alignment support N2341 GCC 4.8</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// New character types N2249 GCC 4.4</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// New character types N2249 GCC 4.4</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// Range-based for N2930 GCC 4.6</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// Range-based for N2930 GCC 4.6</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// Sequence points N2239 Yes</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// Memory model N2429 GCC 4.8</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// long long N1811 GCC 4.3</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment">// </span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">// Extended integral types N1988 Yes</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// Sequence points N2239 Yes</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// Memory model N2429 GCC 4.8</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// long long N1811 GCC 4.3</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// </span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">// Extended integral types N1988 Yes</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"># if(GLM_COMPILER >= GLM_COMPILER_GCC43)</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor">#elif(GLM_COMPILER & GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># if(GLM_COMPILER >= GLM_COMPILER_GCC43)</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor">#elif(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#endif//(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor">#endif//(GLM_COMPILER & GLM_COMPILER_CLANG)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00002.html b/doc/api/a00002.html
index ee0c0a4..523bac0 100644
--- a/doc/api/a00002.html
+++ b/doc/api/a00002.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _fixes.hpp File Reference</title>
+<title>0.9.8: _fixes.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00002_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-02-21 / 2011-11-22 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00002_source.html">_fixes.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00002_source.html b/doc/api/a00002_source.html
index 19c76f9..0941ab7 100644
--- a/doc/api/a00002_source.html
+++ b/doc/api/a00002_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _fixes.hpp Source File</title>
+<title>0.9.8: _fixes.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,28 +50,28 @@
</div><!--header-->
<div class="contents">
<a href="a00002.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <cmath></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifdef max</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#undef max</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#ifdef min</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#undef min</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#ifdef isnan</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#undef isnan</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifdef isinf</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#undef isinf</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#ifdef log2</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#undef log2</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#ifdef max</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#undef max</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifdef min</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#undef min</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifdef isnan</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#undef isnan</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef isinf</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#undef isinf</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef log2</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#undef log2</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00003.html b/doc/api/a00003.html
index ca2b22e..b5ad770 100644
--- a/doc/api/a00003.html
+++ b/doc/api/a00003.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _noise.hpp File Reference</title>
+<title>0.9.8: _noise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00003_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00003_source.html">_noise.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00003_source.html b/doc/api/a00003_source.html
index 07b836a..2575ec4 100644
--- a/doc/api/a00003_source.html
+++ b/doc/api/a00003_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _noise.hpp Source File</title>
+<title>0.9.8: _noise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,112 +50,112 @@
</div><!--header-->
<div class="contents">
<a href="a00003.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "../common.hpp"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span> & x)</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> x - <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(289.0);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span> & x)</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> <span class="keyword">const</span> & x)</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> <span class="keyword">const</span> & x)</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> <span class="keyword">const</span> & x)</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> {</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> return mod289(((x * T(34)) + T(1)) * x);</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> }</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span> & r)</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_QUALIFIER tvec2<T, P> taylorInvSqrt(tvec2<T, P> <span class="keyword">const</span> & r)</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_QUALIFIER tvec3<T, P> taylorInvSqrt(tvec3<T, P> <span class="keyword">const</span> & r)</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> {</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_QUALIFIER tvec4<T, P> taylorInvSqrt(tvec4<T, P> <span class="keyword">const</span> & r)</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> {</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> return T(1.79284291400159) - T(0.85373472095314) * r;</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> }</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_QUALIFIER tvec2<T, P> fade(tvec2<T, P> <span class="keyword">const</span> & t)</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_QUALIFIER tvec3<T, P> fade(tvec3<T, P> <span class="keyword">const</span> & t)</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> {</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_QUALIFIER tvec4<T, P> fade(tvec4<T, P> <span class="keyword">const</span> & t)</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> template <typename T, precision P, template <typename> class vecType></span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> {</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> }</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">return</span> x - <a class="code" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(x * static_cast<T>(1.0) / static_cast<T>(289.0)) * <span class="keyword">static_cast<</span>T<span class="keyword">></span>(289.0);</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> }</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> }</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> }</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P> <span class="keyword">const</span> & x)</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> permute(vecType<T, P> const & x)</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> return mod289(((x * T(34)) + T(1)) * x);</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> GLM_FUNC_QUALIFIER tvec2<T, P> taylorInvSqrt(tvec2<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_QUALIFIER tvec3<T, P> taylorInvSqrt(tvec3<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_QUALIFIER tvec4<T, P> taylorInvSqrt(tvec4<T, P> <span class="keyword">const</span> & r)</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">return</span> T(1.79284291400159) - T(0.85373472095314) * r;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> template <typename T, precision P, template<typename> class vecType></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> taylorInvSqrt(vecType<T, P> const & r)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> return T(1.79284291400159) - T(0.85373472095314) * r;</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_QUALIFIER tvec2<T, P> fade(tvec2<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_QUALIFIER tvec3<T, P> fade(tvec3<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_QUALIFIER tvec4<T, P> fade(tvec4<T, P> <span class="keyword">const</span> & t)</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> template <typename T, precision P, template <typename> class vecType></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> GLM_FUNC_QUALIFIER vecType<T, P> fade(vecType<T, P> const & t)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00004.html b/doc/api/a00004.html
index 3963397..dc12366 100644
--- a/doc/api/a00004.html
+++ b/doc/api/a00004.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle.hpp File Reference</title>
+<title>0.9.8: _swizzle.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00004_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-04-20 / 2011-02-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00004_source.html">_swizzle.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00004_source.html b/doc/api/a00004_source.html
index 70a81ea..2402657 100644
--- a/doc/api/a00004_source.html
+++ b/doc/api/a00004_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle.hpp Source File</title>
+<title>0.9.8: _swizzle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,809 +50,802 @@
</div><!--header-->
<div class="contents">
<a href="a00004.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Internal class for implementing swizzle operators</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">struct </span>_swizzle_base0</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_QUALIFIER value_type& elem (<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> (reinterpret_cast<value_type*>(_buffer))[i]; }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_QUALIFIER <span class="keyword">const</span> value_type& elem (<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (reinterpret_cast<const value_type*>(_buffer))[i]; }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn't call a constructor.</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// elem() </span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">char</span> _buffer[1];</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> };</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> N></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0<T, N></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">struct </span>_swizzle_base1<T, P, V,E0,E1,-1,-2,2> : <span class="keyword">public</span> _swizzle_base0<T, 2></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this->elem(E0), this->elem(E1)); }</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">struct </span>_swizzle_base1<T, P, V,E0,E1,E2,-1,3> : <span class="keyword">public</span> _swizzle_base0<T, 3></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this->elem(E0), this->elem(E1), this->elem(E2)); }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> V, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">struct </span>_swizzle_base1<T, P, V,E0,E1,E2,E3,4> : <span class="keyword">public</span> _swizzle_base0<T, 4></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> { </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_QUALIFIER V operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> };</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keywordtype">int</span> N></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">struct </span>_swizzle_base0</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> GLM_FUNC_QUALIFIER T& elem(<span class="keywordtype">size_t</span> i){ <span class="keywordflow">return</span> (reinterpret_cast<T*>(_buffer))[i]; }</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> GLM_FUNC_QUALIFIER T <span class="keyword">const</span>& elem(<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span>{ <span class="keywordflow">return</span> (reinterpret_cast<const T*>(_buffer))[i]; }</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Use an opaque buffer to *ensure* the compiler doesn't call a constructor.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// The size 1 buffer is assumed to aligned to the actual members so that the</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// elem() </span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">char</span> _buffer[1];</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> };</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span cl [...]
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">struct </span>_swizzle_base1 : <span class="keyword">public</span> _swizzle_base0<T, N></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> };</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">struct </span>_swizzle_base1<2, T, P, vecType, E0,E1,-1,-2, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 2></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1)); }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> };</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">bool</span> Aligned></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">struct </span>_swizzle_base1<3, T, P, vecType, E0,E1,E2,-1, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 3></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2)); }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> };</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span c [...]
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>_swizzle_base1<4, T, P, vecType, E0,E1,E2,E3, Aligned> : <span class="keyword">public</span> _swizzle_base0<T, 4></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> { </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_QUALIFIER vecType<T, P> operator ()()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Internal class for implementing swizzle operators</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> Template parameters:</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> ValueType = type of scalar values (e.g. float, double)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> VecType = class the swizzle is applies to (e.g. tvec3<float>)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> containing duplicate elements so that they cannot be used as r-values). </span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> */</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span cl [...]
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (<span class="keyword">const</span> T& t)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> (*<span class="keyword">this</span>)[i] = t;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e = t; } </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> _apply_op(that, op());</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// Internal class for implementing swizzle operators</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> Template parameters:</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> ValueType = type of scalar values (e.g. float, double)</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> VecType = class the swizzle is applies to (e.g. tvec3<float>)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> N = number of components in the vector (e.g. 3)</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"> E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"> DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> containing duplicate elements so that they cannot be used as r-values). </span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> */</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3, <span class="keywordtype">int</span> DUPLICATE_ELEM [...]
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">struct </span>_swizzle_base2 : <span class="keyword">public</span> _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typedef</span> VecType vec_type;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">typedef</span> ValueType value_type;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (<span class="keyword">const</span> ValueType& t)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> (*<span class="keyword">this</span>)[i] = t;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (<span class="keyword">const</span> VecType& that)</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type& <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type& t) { e = t; } </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> _apply_op(that, op());</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (<span class="keyword">const</span> VecType& that)</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type& <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type& t) { e -= t; } </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> };</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> _apply_op(that, op());</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (<span class="keyword">const</span> VecType& that)</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type& <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type& t) { e += t; } </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> _apply_op(that, op());</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> }</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (<span class="keyword">const</span> VecType& that)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type& <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type& t) { e *= t; } </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> };</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> _apply_op(that, op());</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator -= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e -= t; } </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> _apply_op(that, op());</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator += (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e += t; } </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> _apply_op(that, op());</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator *= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e *= t; } </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> _apply_op(that, op());</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (vecType<T, P> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">struct </span>op { </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (T& <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, T& t) { e /= t; } </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> _apply_op(that, op());</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_QUALIFIER T& operator[](<span class="keywordtype">size_t</span> i)</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_QUALIFIER T operator[](<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword"> </span>{</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(vecType<T, P> <span class="keyword">const</span>& that, U op)</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// Make a copy of the data in this == &that.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// properly inlined and the copy is not necessary.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> T t[N];</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> t[i] = that[i];</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> op( (*<span class="keyword">this</span>)[i], t[i] );</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> };</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator /= (<span class="keyword">const</span> VecType& that)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> {</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">struct </span>op { </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> operator() (value_type& <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, value_type& t) { e /= t; } </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> _apply_op(that, op());</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span cl [...]
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">struct </span>_swizzle_base2<N, T, P, vecType, E0,E1,E2,E3, 1> : <span class="keyword">public</span> _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">struct </span>Stub {};</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub <span class="keyword">const</span> &) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_QUALIFIER value_type& operator[] (<span class="keywordtype">size_t</span> i)</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> {</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_QUALIFIER T operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_QUALIFIER value_type operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword"> </span>{</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_QUALIFIER <span class="keywordtype">void</span> _apply_op(<span class="keyword">const</span> VecType& that, T op)</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// Make a copy of the data in this == &that.</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// The copier should optimize out the copy in cases where the function is</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// properly inlined and the copy is not necessary.</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> ValueType t[N];</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> t[i] = that[i];</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < N; ++i)</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> op( (*<span class="keyword">this</span>)[i], t[i] );</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// Specialization for swizzles containing duplicate elements. These cannot be modified.</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> N, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">struct </span>_swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,1> : <span class="keyword">public</span> _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">typedef</span> VecType vec_type; </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">typedef</span> ValueType value_type;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">struct </span>Stub {};</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub <span class="keyword">const</span> &) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_QUALIFIER value_type operator[] (<span class="keywordtype">size_t</span> i)<span class="keyword"> const</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword"> </span>{</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">const</span> <span class="keywordtype">int</span> offset_dst[4] = { E0, E1, E2, E3 };</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">return</span> this->elem(offset_dst[i]);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> };</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> N,<span class="keyword">typename</span> ValueType, precision P, <span class="keyword">typename</span> VecType, <span class="keywordtype">int</span> E0,<span class="keywordtype">int</span> E1,<span class="keywordtype">int</span> E2,<span class="keywordtype">int</span> E3></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2<ValueType, P, VecType, N, E0, E1, E2, E3, (E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> {</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">typedef</span> _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">using</span> base_type::operator=;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_QUALIFIER <span class="keyword">operator</span> VecType ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3></span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3></span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, V, E0, E1, E2, E3></span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, V, F0, F1, F2, F3></span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> return a() OPERAND b(); \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> return FUNCTION(a()); \</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> } </span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> } </span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> }<span class="comment">//namespace detail </span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> {</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// the function.</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); </span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> }</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; </span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; </span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; </span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; </span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; };</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; </span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 0,3,-1,-2> E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 1,3,-1,-2> E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 2,3,-1,-2> E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 3,0,-1,-2> E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 3,1,-1,-2> E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 3,2,-1,-2> E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V<T, P>, 3,3,-1,-2> E3 ## E3; }; </span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,3,-1> E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,3,-1> E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,3,-1> E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,0,-1> E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,1,-1> E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,2,-1> E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,3,-1> E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,3,-1> E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,3,-1> E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,3,-1> E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,0,-1> E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,1,-1> E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,2,-1> E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,3,-1> E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,3,-1> E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,3,-1> E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,3,-1> E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,0,-1> E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,1,-1> E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,2,-1> E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,3,-1> E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,0,-1> E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,1,-1> E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,2,-1> E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,3,-1> E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,0,-1> E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,1,-1> E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,2,-1> E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,3,-1> E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,0,-1> E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,1,-1> E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,2,-1> E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,3,-1> E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,0,-1> E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,1,-1> E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,2,-1> E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,3,-1> E3 ## E3 ## E3; }; </span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,3> E3 ## E3 ## E3 ## E3; };</span></div>
-<div class="ttc" id="a00168_html_gab83fb6de0f05d6c0d11bdf0479f8319e"><div class="ttname"><a href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL genType e()</div><div class="ttdoc">Return e constant. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> N, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span cl [...]
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">struct </span>_swizzle : <span class="keyword">public</span> _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">typedef</span> _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">using</span> base_type::operator=;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_QUALIFIER <span class="keyword">operator</span> vecType<T, P> () <span class="keyword">const</span> { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)(); }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> };</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3></span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, vecType, E0, E1, E2, E3></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, vecType, F0, F1, F2, F3></span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// Wrapper for a binary operator (e.g. u.yy + v.zy)</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> return a() OPERAND b(); \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const vecType<T, P>& b) \</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const vecType<T, P>& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor">#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> return a() OPERAND b; \</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> return a OPERAND b(); \</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// Macro for wrapping a function taking one argument (e.g. abs())</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> return FUNCTION(a()); \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Macro for wrapping a function taking two vector arguments (e.g. dot()).</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"> return FUNCTION(a(), b()); \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> return FUNCTION(a(), b); \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> return FUNCTION(a, b()); \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor">#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE2 \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> return FUNCTION(a(), b(), c); \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> return FUNCTION(a(), b, c); \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> _GLM_SWIZZLE_TEMPLATE1 \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> return FUNCTION(a, b(), c); \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> } </span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }<span class="comment">//namespace detail </span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> }</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// Swizzles are distinct types from the unswizzled type. The below macros will</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// provide template specializations for the swizzle types for the given functions</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// so that the compiler does not have any ambiguity to choosing how to handle</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// the function.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">// The alternative is to use the operator()() when calling the function in order</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// to explicitly convert the swizzled type to the unswizzled type.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); </span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment">//_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor">#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"> struct { detail::_swizzle<2, T, P, V, 1,1,-1,-2> E1 ## E1; }; </span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor">#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> struct { detail::_swizzle<3,T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; </span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; };</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor">#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; };</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; };</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor">#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> struct { detail::_swizzle<4,T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; </span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 0,3,-1,-2> E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 1,3,-1,-2> E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 2,3,-1,-2> E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,0,-1,-2> E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,1,-1,-2> E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,2,-1,-2> E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> struct { detail::_swizzle<2,T, P, V, 3,3,-1,-2> E3 ## E3; }; </span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor">#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,0,3,-1> E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,1,3,-1> E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,2,3,-1> E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,0,-1> E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,1,-1> E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,2,-1> E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 0,3,3,-1> E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,0,3,-1> E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,1,3,-1> E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,2,3,-1> E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,0,-1> E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,1,-1> E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,2,-1> E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 1,3,3,-1> E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,0,3,-1> E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,1,3,-1> E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,2,3,-1> E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,0,-1> E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,1,-1> E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,2,-1> E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 2,3,3,-1> E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,0,-1> E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,1,-1> E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,2,-1> E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,0,3,-1> E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,0,-1> E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,1,-1> E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,2,-1> E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,1,3,-1> E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,0,-1> E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,1,-1> E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,2,-1> E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,2,3,-1> E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,0,-1> E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,1,-1> E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,2,-1> E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> struct { detail::_swizzle<3, T, P, V, 3,3,3,-1> E3 ## E3 ## E3; }; </span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor">#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor"> struct { detail::_swizzle<4, T, P, V, 3,3,3,3> E3 ## E3 ## E3 ## E3; };</span></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00005.html b/doc/api/a00005.html
index 353fad2..05e12ab 100644
--- a/doc/api/a00005.html
+++ b/doc/api/a00005.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle_func.hpp File Reference</title>
+<title>0.9.8: _swizzle_func.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00005_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-10-16 / 2011-10-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00005_source.html">_swizzle_func.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00005_source.html b/doc/api/a00005_source.html
index 2cc119f..b8cf723 100644
--- a/doc/api/a00005_source.html
+++ b/doc/api/a00005_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _swizzle_func.hpp Source File</title>
+<title>0.9.8: _swizzle_func.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,699 +50,699 @@
</div><!--header-->
<div class="contents">
<a href="a00005.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B() CONST \</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> { \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#define GLM_MUTABLE</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE, PRECISION> A ## B ## C ## D() CONST \</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B() CONST \</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B); \</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C() CONST \</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C); \</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> template <typename TMPL_TYPE> \</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> SWIZZLED_TYPE<TMPL_TYPE> CLASS_TYPE<TMPL_TYPE, PRECISION>::A ## B ## C ## D() CONST \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> { \</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> return SWIZZLED_TYPE<TMPL_TYPE, PRECISION>(this->A, this->B, this->C, this->D); \</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> }</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#define GLM_MUTABLE</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2)</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C)</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, p)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C)</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B)</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4)</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B)</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B)</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B)</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t)</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C)</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C)</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span></div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span></div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span></div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C)</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C)</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p)</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4)</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D)</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D)</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D)</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D)</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor">#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"> GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, p, q)</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment">//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00006.html b/doc/api/a00006.html
index 6d86c9d..2dd5b1d 100644
--- a/doc/api/a00006.html
+++ b/doc/api/a00006.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _vectorize.hpp File Reference</title>
+<title>0.9.8: _vectorize.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00006_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-10-14 / 2011-10-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00006_source.html">_vectorize.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00006_source.html b/doc/api/a00006_source.html
index 4f53251..50c4a9b 100644
--- a/doc/api/a00006_source.html
+++ b/doc/api/a00006_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: _vectorize.hpp Source File</title>
+<title>0.9.8: _vectorize.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,139 +50,139 @@
</div><!--header-->
<div class="contents">
<a href="a00006.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">type_vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">struct </span>functor1{};</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">struct </span>functor1<R, T, P, tvec1></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<R, P> call(R (*Func) (T x), tvec1<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">return</span> tvec1<R, P>(Func(v.x));</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> }</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> };</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">struct </span>functor1<R, T, P, tvec2></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<R, P> call(R (*Func) (T x), tvec2<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">return</span> tvec2<R, P>(Func(v.x), Func(v.y));</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> };</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00133.html">type_vec1.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>functor1{};</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">struct </span>functor1<R, T, P, tvec1></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<R, P> call(R (*Func) (T x), tvec1<T, P> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> tvec1<R, P>(Func(v.x));</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>functor1<R, T, P, tvec2></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<R, P> call(R (*Func) (T x), tvec2<T, P> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> tvec2<R, P>(Func(v.x), Func(v.y));</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> };</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">struct </span>functor1<R, T, P, tvec3></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<R, P> call(R (*Func) (T x), tvec3<T, P> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> tvec3<R, P>(Func(v.x), Func(v.y), Func(v.z));</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> };</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">struct </span>functor1<R, T, P, tvec4></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<R, P> call(R (*Func) (T x), tvec4<T, P> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> tvec4<R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> };</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">struct </span>functor2{};</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">struct </span>functor2<T, P, tvec1></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, tvec1<T, P> <span class="keyword">const</span> & b)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b.x));</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">struct </span>functor2<T, P, tvec2></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, tvec2<T, P> <span class="keyword">const</span> & b)</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b.x), Func(a.y, b.y));</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> };</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct </span>functor2<T, P, tvec3></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, tvec3<T, P> <span class="keyword">const</span> & b)</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> {</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>functor2<T, P, tvec4></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, tvec4<T, P> <span class="keyword">const</span> & b)</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> };</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">struct </span>functor2_vec_sca{};</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec1></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, T b)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b));</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> };</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec2></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, T b)</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b), Func(a.y, b));</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> };</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec3></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, T b)</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> };</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec4></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> {</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, T b)</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> }</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> };</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">struct </span>functor1<R, T, P, tvec3></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<R, P> call(R (*Func) (T x), tvec3<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">return</span> tvec3<R, P>(Func(v.x), Func(v.y), Func(v.z));</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> R, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>functor1<R, T, P, tvec4></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<R, P> call(R (*Func) (T x), tvec4<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> tvec4<R, P>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> };</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">struct </span>functor2{};</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">struct </span>functor2<T, P, tvec1></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, tvec1<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b.x));</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">struct </span>functor2<T, P, tvec2></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, tvec2<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b.x), Func(a.y, b.y));</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">struct </span>functor2<T, P, tvec3></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, tvec3<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">struct </span>functor2<T, P, tvec4></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, tvec4<T, P> <span class="keyword">const</span> & b)</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">struct </span>functor2_vec_sca{};</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec1></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec1<T, P> call(T (*Func) (T x, T y), tvec1<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> tvec1<T, P>(Func(a.x, b));</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec2></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec2<T, P> call(T (*Func) (T x, T y), tvec2<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> tvec2<T, P>(Func(a.x, b), Func(a.y, b));</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec3></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec3<T, P> call(T (*Func) (T x, T y), tvec3<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> tvec3<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> };</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">struct </span>functor2_vec_sca<T, P, tvec4></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_QUALIFIER <span class="keyword">static</span> tvec4<T, P> call(T (*Func) (T x, T y), tvec4<T, P> <span class="keyword">const</span> & a, T b)</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">return</span> tvec4<T, P>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00007.html b/doc/api/a00007.html
index cee586d..cc8b373 100644
--- a/doc/api/a00007.html
+++ b/doc/api/a00007.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: associated_min_max.hpp File Reference</title>
+<title>0.9.8: associated_min_max.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,84 +57,77 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)</td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)</td></tr>
<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)</td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)</td></tr>
<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)</td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)</td></tr>
<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)</td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)</td></tr>
<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00185.html">GLM_GTX_associated_min_max</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-10 / 2014-10-11 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00007_source.html">associated_min_max.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00007_source.html b/doc/api/a00007_source.html
index aaa8b3f..d3d9bb2 100644
--- a/doc/api/a00007_source.html
+++ b/doc/api/a00007_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: associated_min_max.hpp Source File</title>
+<title>0.9.8: associated_min_max.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,152 +50,152 @@
</div><!--header-->
<div class="contents">
<a href="a00007.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_associated_min_max extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_associated_min_max extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> T x, <span class="keyword">const</span> vecType<U, P>& a,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> T y, <span class="keyword">const</span> vecType<U, P>& b);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> T x, U a,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> T y, U b,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> T z, U c);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> T x, <span class="keyword">const</span> vecType<U, P>& a,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> T y, <span class="keyword">const</span> vecType<U, P>& b);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T x, U a,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> T y, U b,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> T z, U c);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> T x, U a,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> T y, U b,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> T z, U c,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> T w, U d);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> T x, U a,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T y, U b,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T z, U c,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T w, U d);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(T x, U a, T y, U b);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> T y, vecType<U, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> T x, U a,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> T y, U b,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T z, U c);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tvec2<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> T y, vecType<U, P> <span class="keyword">const</span> & b);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> vecType<T, P> <span class="keyword">const</span> & y, U b);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> T x, U a,</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> T y, U b,</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> T z, U c);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> T z, vecType<U, P> <span class="keyword">const</span> & c);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> vecType<T, P> <span class="keyword">const</span> & z, U c);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL U <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> T x, U a,</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> T y, U b,</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> T z, U c,</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> T w, U d);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor">#include "associated_min_max.inl"</span></div>
-<div class="ttc" id="a00185_html_ga00a949fd345f4b31b259f033d3ab4a1c"><div class="ttname"><a href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMin(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associa [...]
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00185_html_ga3122fbe8133ea54749b10fb93e8a167e"><div class="ttname"><a href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMax(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associa [...]
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> T z, vecType<U, P> <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> vecType<T, P> <span class="keyword">const</span> & z, U c);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL U <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> T x, U a,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> T y, U b,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> T z, U c,</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> T w, U d);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> vecType<T, P> <span class="keyword">const</span> & x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> vecType<T, P> <span class="keyword">const</span> & z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> vecType<T, P> <span class="keyword">const</span> & w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> T x, vecType<U, P> <span class="keyword">const</span> & a,</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> T y, vecType<U, P> <span class="keyword">const</span> & b,</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> T z, vecType<U, P> <span class="keyword">const</span> & c,</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> T w, vecType<U, P> <span class="keyword">const</span> & d);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL vecType<U, P> <a class="code" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a>(</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> vecType<T, P> <span class="keyword">const</span> & x, U a,</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> vecType<T, P> <span class="keyword">const</span> & y, U b,</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> vecType<T, P> <span class="keyword">const</span> & z, U c,</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> vecType<T, P> <span class="keyword">const</span> & w, U d);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#include "associated_min_max.inl"</span></div>
+<div class="ttc" id="a00181_html_ga3122fbe8133ea54749b10fb93e8a167e"><div class="ttname"><a href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMax(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associa [...]
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00181_html_ga00a949fd345f4b31b259f033d3ab4a1c"><div class="ttname"><a href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< U, P > associatedMin(vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associa [...]
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00008.html b/doc/api/a00008.html
index 037985b..2ac48be 100644
--- a/doc/api/a00008.html
+++ b/doc/api/a00008.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bit.hpp File Reference</title>
+<title>0.9.8: bit.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,40 +57,36 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType< T, P > const &value)</td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType< T, P > const &value)</td></tr>
<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType< T, P > const &value)</td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType< T, P > const &value)</td></tr>
<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType< T, P > const &value)</td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType< T, P > const &value)</td></tr>
<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType< T, P > const &value)</td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType< T, P > const &value)</td></tr>
<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00186.html">GLM_GTX_bit</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00182.html">GLM_GTX_bit</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00008_source.html b/doc/api/a00008_source.html
index 58d1964..0c428de 100644
--- a/doc/api/a00008_source.html
+++ b/doc/api/a00008_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bit.hpp Source File</title>
+<title>0.9.8: bit.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,52 +50,56 @@
</div><!--header-->
<div class="contents">
<a href="a00008.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtc/bitfield.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(genIUType Value);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(genIUType Value);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(genIUType Value);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(genIUType Value);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#include "bit.inl"</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="ttc" id="a00186_html_ga2d7e85995d097518b8d70cd409bda39e"><div class="ttname"><a href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoNearest(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
-<div class="ttc" id="a00186_html_ga5eea3a4d429040af13d39a7d7cd84d73"><div class="ttname"><a href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > highestBitValue(vecType< T, P > const &value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
-<div class="ttc" id="a00186_html_gae33bb1ca2b55846b23a0f0796a679195"><div class="ttname"><a href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoBelow(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
-<div class="ttc" id="a00186_html_gafe08808a50226b75b50e640a08b32ddc"><div class="ttname"><a href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoAbove(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/bitfield.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a>(genIUType Value);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(genIUType Value);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(genIUType Value);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(genIUType Value);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#include "bit.inl"</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="ttc" id="a00182_html_gae33bb1ca2b55846b23a0f0796a679195"><div class="ttname"><a href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoBelow(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
+<div class="ttc" id="a00182_html_gafe08808a50226b75b50e640a08b32ddc"><div class="ttname"><a href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoAbove(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00182_html_ga2ff6568089f3a9b67f5c30918855fc6f"><div class="ttname"><a href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">glm::lowestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)</div></div>
+<div class="ttc" id="a00182_html_ga5eea3a4d429040af13d39a7d7cd84d73"><div class="ttname"><a href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > highestBitValue(vecType< T, P > const &value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
+<div class="ttc" id="a00182_html_ga2d7e85995d097518b8d70cd409bda39e"><div class="ttname"><a href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > powerOfTwoNearest(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00009.html b/doc/api/a00009.html
index fd1a8e1..a1a9621 100644
--- a/doc/api/a00009.html
+++ b/doc/api/a00009.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bitfield.hpp File Reference</title>
+<title>0.9.8: bitfield.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,80 +57,73 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType< T, P > const &In, int Shift)</td></tr>
<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType< T, P > const &In, int Shift)</td></tr>
<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecIUType> </td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType< T, P > const &v)</td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType< T, P > const &v)</td></tr>
<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00166.html">GLM_GTC_bitfield</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-10-25 / 2014-10-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00160.html">GLM_GTC_bitfield</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
+<a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00009_source.html">bitfield.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00009_source.html b/doc/api/a00009_source.html
index 61d2483..9d837c2 100644
--- a/doc/api/a00009_source.html
+++ b/doc/api/a00009_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: bitfield.hpp Source File</title>
+<title>0.9.8: bitfield.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,94 +50,94 @@
</div><!--header-->
<div class="contents">
<a href="a00009.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../detail/_vectorize.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_bitfield extension included")</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/_vectorize.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_bitfield extension included")</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(genIUType Bits);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecIUType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL vecIUType<T, P> <a class="code" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(vecIUType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(genIUType Bits);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecIUType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecIUType<T, P> <a class="code" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a>(vecIUType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL genIUType <a class="code" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL int16 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL uint16 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL int32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> GLM_FUNC_DECL uint32 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL int64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> GLM_FUNC_DECL uint64 <a class="code" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#include "bitfield.inl"</span></div>
-<div class="ttc" id="a00166_html_gad789042e84e8292ae95dc1af856f2ad5"><div class="ttname"><a href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillOne(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
-<div class="ttc" id="a00166_html_gaddba3196316b0bd240295b09b43c2958"><div class="ttname"><a href="a00166.html#gaddba3196316b0bd240295b09b43c2958">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillZero(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
-<div class="ttc" id="a00166_html_ga96b56fd2adad1eeaee9e10dfe83904ba"><div class="ttname"><a href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00166_html_ga410d130917d85b865718e3ebc32cf0ef"><div class="ttname"><a href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
-<div class="ttc" id="a00166_html_ga073dbd8642f550b51da3572541431c1c"><div class="ttname"><a href="a00166.html#ga073dbd8642f550b51da3572541431c1c">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vecIUType< T, P > mask(vecIUType< T, P > const &v)</div><div class="ttdoc">Build a mask of 'count' bits. </div></div>
-<div class="ttc" id="a00166_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00166.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a>(vecType<T, P> <span class="keyword">const</span> & In, <span class="keywordtype">int</span> Shift);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL genIUType <a class="code" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a>(vecType<T, P> <span class="keyword">const</span> & Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL int16 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL uint16 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL int32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL uint32 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL int64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL uint64 <a class="code" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#include "bitfield.inl"</span></div>
+<div class="ttc" id="a00160_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00160.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
+<div class="ttc" id="a00160_html_ga410d130917d85b865718e3ebc32cf0ef"><div class="ttname"><a href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateLeft(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00160_html_ga073dbd8642f550b51da3572541431c1c"><div class="ttname"><a href="a00160.html#ga073dbd8642f550b51da3572541431c1c">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vecIUType< T, P > mask(vecIUType< T, P > const &v)</div><div class="ttdoc">Build a mask of 'count' bits. </div></div>
+<div class="ttc" id="a00160_html_gad789042e84e8292ae95dc1af856f2ad5"><div class="ttname"><a href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillOne(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
+<div class="ttc" id="a00160_html_ga96b56fd2adad1eeaee9e10dfe83904ba"><div class="ttname"><a href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldRotateRight(vecType< T, P > const &In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
+<div class="ttc" id="a00160_html_gaddba3196316b0bd240295b09b43c2958"><div class="ttname"><a href="a00160.html#gaddba3196316b0bd240295b09b43c2958">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldFillZero(vecType< T, P > const &Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00010.html b/doc/api/a00010.html
index 7309f9d..9efdc5e 100644
--- a/doc/api/a00010.html
+++ b/doc/api/a00010.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: closest_point.hpp File Reference</title>
+<title>0.9.8: closest_point.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,23 +57,16 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)</td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)</td></tr>
<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</td></tr>
<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00187.html">GLM_GTX_closest_point</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00183.html">GLM_GTX_closest_point</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00010_source.html">closest_point.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00010_source.html b/doc/api/a00010_source.html
index cb946f0..9f0b6f4 100644
--- a/doc/api/a00010_source.html
+++ b/doc/api/a00010_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: closest_point.hpp Source File</title>
+<title>0.9.8: closest_point.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,35 +50,35 @@
</div><!--header-->
<div class="contents">
<a href="a00010.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & point,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & a, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec3<T, P> <span class="keyword">const</span> & b);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tvec2<T, P> <a class="code" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> tvec2<T, P> <span class="keyword">const</span> & point,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tvec2<T, P> <span class="keyword">const</span> & a, </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> tvec2<T, P> <span class="keyword">const</span> & b); </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "closest_point.inl"</span></div>
-<div class="ttc" id="a00187_html_gadc7010070bb0cacd284f560299b21660"><div class="ttname"><a href="a00187.html#gadc7010070bb0cacd284f560299b21660">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, P > closestPointOnLine(tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</div><div class="ttdoc">2d lines work as well </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec3<T, P> <span class="keyword">const</span> & point,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & a, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tvec3<T, P> <span class="keyword">const</span> & b);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tvec2<T, P> <a class="code" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> tvec2<T, P> <span class="keyword">const</span> & point,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> tvec2<T, P> <span class="keyword">const</span> & a, </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> tvec2<T, P> <span class="keyword">const</span> & b); </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "closest_point.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00183_html_gadc7010070bb0cacd284f560299b21660"><div class="ttname"><a href="a00183.html#gadc7010070bb0cacd284f560299b21660">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, P > closestPointOnLine(tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</div><div class="ttdoc">2d lines work as well </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00011.html b/doc/api/a00011.html
index b82a516..0e586e7 100644
--- a/doc/api/a00011.html
+++ b/doc/api/a00011.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp File Reference</title>
+<title>0.9.8: color_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -56,35 +56,25 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear)</td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear)</td></tr>
<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear, T Gamma)</td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear, T Gamma)</td></tr>
<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB)</td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB)</td></tr>
<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB, T Gamma)</td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB, T Gamma)</td></tr>
<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00167.html">GLM_GTC_color_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2015-02-10 / 2015-08-02 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00161.html">GLM_GTC_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00167.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
+<a class="el" href="a00161.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00011_source.html">gtc/color_space.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00011_source.html b/doc/api/a00011_source.html
index aa75bd5..88bc75c 100644
--- a/doc/api/a00011_source.html
+++ b/doc/api/a00011_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp Source File</title>
+<title>0.9.8: color_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,41 +50,42 @@
</div><!--header-->
<div class="contents">
<a href="a00011.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_color_space extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear, T Gamma);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB, T Gamma);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_color_space extension included")</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a>(vecType<T, P> <span class="keyword">const</span> & ColorLinear, T Gamma);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a>(vecType<T, P> <span class="keyword">const</span> & ColorSRGB, T Gamma);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "color_space.inl"</span></div>
-<div class="ttc" id="a00167_html_ga63f8b003da7acf44370eb47bfb8b3d42"><div class="ttname"><a href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertLinearToSRGB(vecType< T, P > const &ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00167_html_ga61c4f0efdf55c29d9cfbd26141fddef8"><div class="ttname"><a href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertSRGBToLinear(vecType< T, P > const &ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "color_space.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00161_html_ga61c4f0efdf55c29d9cfbd26141fddef8"><div class="ttname"><a href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertSRGBToLinear(vecType< T, P > const &ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
+<div class="ttc" id="a00161_html_ga63f8b003da7acf44370eb47bfb8b3d42"><div class="ttname"><a href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > convertLinearToSRGB(vecType< T, P > const &ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00012.html b/doc/api/a00012.html
index 1c87592..6f932a3 100644
--- a/doc/api/a00012.html
+++ b/doc/api/a00012.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp File Reference</title>
+<title>0.9.8: color_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,34 +57,27 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3< T, P > const &rgbValue)</td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3< T, P > const &rgbValue)</td></tr>
<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3< T, P > const &color)</td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3< T, P > const &color)</td></tr>
<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3< T, P > const &hsvValue)</td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3< T, P > const &hsvValue)</td></tr>
<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3< T, P > const &color)</td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3< T, P > const &color)</td></tr>
<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4< T, P > const &color)</td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4< T, P > const &color)</td></tr>
<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00188.html">GLM_GTX_color_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00184.html">GLM_GTX_color_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00012_source.html">gtx/color_space.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00012_source.html b/doc/api/a00012_source.html
index e1c3fb9..2b28d69 100644
--- a/doc/api/a00012_source.html
+++ b/doc/api/a00012_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space.hpp Source File</title>
+<title>0.9.8: color_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,52 +50,52 @@
</div><!--header-->
<div class="contents">
<a href="a00012.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & hsvValue);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec3<T, P> <span class="keyword">const</span> & rgbValue);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> T <span class="keyword">const</span> s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T <span class="keyword">const</span> s,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> tvec3<T, P> <span class="keyword">const</span> & color);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T <span class="keyword">const</span> s,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> tvec4<T, P> <span class="keyword">const</span> & color);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL T <a class="code" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> tvec3<T, P> <span class="keyword">const</span> & color);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "color_space.inl"</span></div>
-<div class="ttc" id="a00188_html_ga2033e0566c595230714af396744e8a61"><div class="ttname"><a href="a00188.html#ga2033e0566c595230714af396744e8a61">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > saturation(T const s, tvec4< T, P > const &color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00188_html_gaa2f38a5100c3e1c7d39920df43bd8cbe"><div class="ttname"><a href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(tvec3< T, P > const &color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
-<div class="ttc" id="a00188_html_gae72039c00a7be2f03a3b94b37a54349a"><div class="ttname"><a href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > hsvColor(tvec3< T, P > const &rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
-<div class="ttc" id="a00188_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec3<T, P> <span class="keyword">const</span> & hsvValue);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec3<T, P> <span class="keyword">const</span> & rgbValue);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> T <span class="keyword">const</span> s);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> tvec3<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> T <span class="keyword">const</span> s,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> tvec4<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL T <a class="code" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec3<T, P> <span class="keyword">const</span> & color);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "color_space.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00184_html_ga2033e0566c595230714af396744e8a61"><div class="ttname"><a href="a00184.html#ga2033e0566c595230714af396744e8a61">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > saturation(T const s, tvec4< T, P > const &color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
+<div class="ttc" id="a00184_html_gae72039c00a7be2f03a3b94b37a54349a"><div class="ttname"><a href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > hsvColor(tvec3< T, P > const &rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00184_html_gaa2f38a5100c3e1c7d39920df43bd8cbe"><div class="ttname"><a href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(tvec3< T, P > const &color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00013.html b/doc/api/a00013.html
index 9595398..8d7aaba 100644
--- a/doc/api/a00013.html
+++ b/doc/api/a00013.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space_YCoCg.hpp File Reference</title>
+<title>0.9.8: color_space_YCoCg.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,28 +57,21 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3< T, P > const &rgbColor)</td></tr>
<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3< T, P > const &rgbColor)</td></tr>
<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00189.html">GLM_GTX_color_space_YCoCg</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-28 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00013_source.html">color_space_YCoCg.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00013_source.html b/doc/api/a00013_source.html
index cc1aae2..da22584 100644
--- a/doc/api/a00013_source.html
+++ b/doc/api/a00013_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: color_space_YCoCg.hpp Source File</title>
+<title>0.9.8: color_space_YCoCg.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,43 +50,43 @@
</div><!--header-->
<div class="contents">
<a href="a00013.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a>);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a>(</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> tvec3<T, P> <span class="keyword">const</span> & YCoCgColor);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "color_space_YCoCg.inl"</span></div>
-<div class="ttc" id="a00189_html_ga2e534594cc8ad252d23b14fb363ae9e2"><div class="ttname"><a href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
-<div class="ttc" id="a00189_html_ga19481f6947c5b5482debd41e71b8c941"><div class="ttname"><a href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00189_html_ga4bac5462c00df0ae89242ecdbbe5dbad"><div class="ttname"><a href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
-<div class="ttc" id="a00188_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
-<div class="ttc" id="a00189_html_ga6d7e988a79b299ca1fa59f537e13800b"><div class="ttname"><a href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "color_space_YCoCg.inl"</span></div>
+<div class="ttc" id="a00185_html_ga6d7e988a79b299ca1fa59f537e13800b"><div class="ttname"><a href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCg2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga2e534594cc8ad252d23b14fb363ae9e2"><div class="ttname"><a href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCgR(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00185_html_ga19481f6947c5b5482debd41e71b8c941"><div class="ttname"><a href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgb2YCoCg(tvec3< T, P > const &rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
+<div class="ttc" id="a00184_html_ga36b0619e31daf57bc4a54dac2dcf34b7"><div class="ttname"><a href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > rgbColor(tvec3< T, P > const &hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
+<div class="ttc" id="a00185_html_ga4bac5462c00df0ae89242ecdbbe5dbad"><div class="ttname"><a href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > YCoCgR2rgb(tvec3< T, P > const &YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00014.html b/doc/api/a00014.html
index 334c9ed..e30426b 100644
--- a/doc/api/a00014.html
+++ b/doc/api/a00014.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp File Reference</title>
+<title>0.9.8: common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00014_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00014_source.html">common.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00014_source.html b/doc/api/a00014_source.html
index c0c5351..ce900ea 100644
--- a/doc/api/a00014_source.html
+++ b/doc/api/a00014_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp Source File</title>
+<title>0.9.8: common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,10 +50,10 @@
</div><!--header-->
<div class="contents">
<a href="a00014.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">detail/func_common.hpp</a>"</span></div>
-<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">detail/func_common.hpp</a>"</span></div>
+<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00015.html b/doc/api/a00015.html
index 5011e02..b58716c 100644
--- a/doc/api/a00015.html
+++ b/doc/api/a00015.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp File Reference</title>
+<title>0.9.8: common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,22 +57,15 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &x)</td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &x)</td></tr>
<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00190.html">GLM_GTX_common</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-08 / 2014-09-08 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00186.html">GLM_GTX_common</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00015_source.html b/doc/api/a00015_source.html
index 45397b0..61e22f7 100644
--- a/doc/api/a00015_source.html
+++ b/doc/api/a00015_source.html
@@ -1,88 +1,88 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: common.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">gtx/common.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_common extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include "common.inl"</span></div>
-<div class="ttc" id="a00190_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
-<div class="ttc" id="a00190_html_ga2580f50d4064557d62f4a533dfc6c7e3"><div class="ttname"><a href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fmod(vecType< T, P > const &v)</div><div class="ttdoc">Similiar to 'mod' but with a different rounding and integer support. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: common.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">gtx/common.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_common extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "common.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00186_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
+<div class="ttc" id="a00186_html_ga2580f50d4064557d62f4a533dfc6c7e3"><div class="ttname"><a href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fmod(vecType< T, P > const &v)</div><div class="ttdoc">Similar to 'mod' but with a different rounding and integer support. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/a00016.html b/doc/api/a00016.html
index 52ff2af..36a0921 100644
--- a/doc/api/a00016.html
+++ b/doc/api/a00016.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: compatibility.hpp File Reference</title>
+<title>0.9.8: compatibility.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -58,267 +58,260 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
-typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
-typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
-typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
+typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
-typedef tmat2x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
+typedef tmat2x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
-typedef tmat2x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
+typedef tmat2x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
-typedef tmat2x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
+typedef tmat2x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
-typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
+typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
-typedef tmat3x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
+typedef tmat3x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
-typedef tmat3x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
+typedef tmat3x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
-typedef tmat3x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
+typedef tmat3x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
-typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
+typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
-typedef tmat4x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
+typedef tmat4x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
-typedef tmat4x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
+typedef tmat4x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
-typedef tmat4x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
+typedef tmat4x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
-typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
-typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
-typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
+typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
-typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
+typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
-typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
+typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
-typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
+typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
-typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
+typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
-typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
+typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
-typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
+typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
-typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
+typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
-typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
+typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
-typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
+typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
-typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
+typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
-typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
+typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
-typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
-typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
-typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
+typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
-typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
+typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
-typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
+typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
-typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
+typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
-typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
+typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
-typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
+typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
-typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
+typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
-typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
+typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
-typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
+typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
-typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
+typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
-typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
+typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
-typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
+typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
-typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
-typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
-typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
+typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
-typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
+typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
-typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
+typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
-typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
+typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
-typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
+typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
-typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
+typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
-typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
+typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
-typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
+typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
-typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
+typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
-typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
+typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
-typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
+typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
-typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
+typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2< T, P > &x, const tvec2< T, P > &y)</td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2< T, P > &x, const tvec2< T, P > &y)</td></tr>
<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3< T, P > &x, const tvec3< T, P > &y)</td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3< T, P > &x, const tvec3< T, P > &y)</td></tr>
<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4< T, P > &x, const tvec4< T, P > &y)</td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4< T, P > &x, const tvec4< T, P > &y)</td></tr>
<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
template<typename genType > </td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &x)</td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &x)</td></tr>
<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1< T, P > &x)</td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1< T, P > &x)</td></tr>
<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2< T, P > &x)</td></tr>
<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3< T, P > &x)</td></tr>
<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4< T, P > &x)</td></tr>
<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
template<typename T > </td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)</td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)</td></tr>
<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)</td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)</td></tr>
<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)</td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)</td></tr>
<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)</td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)</td></tr>
<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)</td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)</td></tr>
<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</td></tr>
<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2< T, P > &x)</td></tr>
<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3< T, P > &x)</td></tr>
<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4< T, P > &x)</td></tr>
<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00191.html">GLM_GTX_compatibility</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-01-24 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00187.html">GLM_GTX_compatibility</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00016_source.html b/doc/api/a00016_source.html
index a4054ed..6a6d190 100644
--- a/doc/api/a00016_source.html
+++ b/doc/api/a00016_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: compatibility.hpp Source File</title>
+<title>0.9.8: compatibility.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,184 +50,184 @@
</div><!--header-->
<div class="contents">
<a href="a00016.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_compatibility extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># include <cfloat></span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#elif(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># include <cmath></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># undef isfinite</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864"> 67</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} [...]
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe"> 68</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& [...]
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9"> 70</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& [...]
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60"> 71</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& [...]
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070"> 72</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& [...]
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1"> 73</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& [...]
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379"> 74</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& [...]
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 76</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T [...]
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107"> 77</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec2<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b"> 78</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec3<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00191.html#ga63791409bdef9745b956406afe3157f1"> 79</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec4<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00191.html#gac63011205bf6d0be82589dc56dd26708"> 81</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, [...]
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9"> 82</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>&am [...]
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0"> 83</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>&am [...]
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5"> 84</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>&am [...]
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(genType <span class="keyword">const</span> & x); </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec1<bool, P> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec1<T, P>& x); </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec2<bool, P> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec2<T, P>& x); </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec3<bool, P> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec3<T, P>& x); </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec4<T, P>& x); </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e"> 92</a></span> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d"> 93</a></span> <span class="keyword">typedef</span> tvec2<bool, highp> <a class="code" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a>; </div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659"> 94</a></span> <span class="keyword">typedef</span> tvec3<bool, highp> <a class="code" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a>; </div>
-<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e"> 95</a></span> <span class="keyword">typedef</span> tvec4<bool, highp> <a class="code" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a>; </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090"> 97</a></span> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d"> 98</a></span> <span class="keyword">typedef</span> tmat2x2<bool, highp> <a class="code" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a>; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe"> 99</a></span> <span class="keyword">typedef</span> tmat2x3<bool, highp> <a class="code" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a>; </div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7"> 100</a></span> <span class="keyword">typedef</span> tmat2x4<bool, highp> <a class="code" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a>; </div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7"> 101</a></span> <span class="keyword">typedef</span> tmat3x2<bool, highp> <a class="code" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a>; </div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605"> 102</a></span> <span class="keyword">typedef</span> tmat3x3<bool, highp> <a class="code" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a>; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17"> 103</a></span> <span class="keyword">typedef</span> tmat3x4<bool, highp> <a class="code" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a>; </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db"> 104</a></span> <span class="keyword">typedef</span> tmat4x2<bool, highp> <a class="code" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a>; </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb"> 105</a></span> <span class="keyword">typedef</span> tmat4x3<bool, highp> <a class="code" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a>; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e"> 106</a></span> <span class="keyword">typedef</span> tmat4x4<bool, highp> <a class="code" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a>; </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 108</a></span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700"> 109</a></span> <span class="keyword">typedef</span> tvec2<int, highp> <a class="code" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a>; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88"> 110</a></span> <span class="keyword">typedef</span> tvec3<int, highp> <a class="code" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a>; </div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00191.html#gab19c2df22e9b14081390fabd074081f1"> 111</a></span> <span class="keyword">typedef</span> tvec4<int, highp> <a class="code" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a>; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a"> 113</a></span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc"> 114</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a>; </div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434"> 115</a></span> <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a>; </div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e"> 116</a></span> <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a>; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db"> 117</a></span> <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a>; </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f"> 118</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a>; </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00191.html#ga7b00c53838143bce963177122ab92c39"> 119</a></span> <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a>; </div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00191.html#gaa53815539021200c4e10fd282832dcd3"> 120</a></span> <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a>; </div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe"> 121</a></span> <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a>; </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d"> 122</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a>; </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 124</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42"> 125</a></span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a>; </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00191.html#ga2bfa618285894e34f299e4984f092d56"> 126</a></span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a>; </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b"> 127</a></span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a>; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c"> 129</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e"> 130</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a>; </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b"> 131</a></span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a>; </div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde"> 132</a></span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a>; </div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff"> 133</a></span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a>; </div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363"> 134</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a>; </div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e"> 135</a></span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a>; </div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8"> 136</a></span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a>; </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="a00191.html#gad749b26be059f35394fd71c7f7a44034"> 137</a></span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a>; </div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136"> 138</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a>; </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b"> 140</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e"> 141</a></span> <span class="keyword">typedef</span> tvec2<double, highp> <a class="code" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a>; </div>
-<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391"> 142</a></span> <span class="keyword">typedef</span> tvec3<double, highp> <a class="code" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a>; </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56"> 143</a></span> <span class="keyword">typedef</span> tvec4<double, highp> <a class="code" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a>; </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 145</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7"> 146</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a>; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7"> 147</a></span> <span class="keyword">typedef</span> tmat2x3<double, highp> <a class="code" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a>; </div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e"> 148</a></span> <span class="keyword">typedef</span> tmat2x4<double, highp> <a class="code" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a>; </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6"> 149</a></span> <span class="keyword">typedef</span> tmat3x2<double, highp> <a class="code" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a>; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a"> 150</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a>; </div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413"> 151</a></span> <span class="keyword">typedef</span> tmat3x4<double, highp> <a class="code" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a>; </div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd"> 152</a></span> <span class="keyword">typedef</span> tmat4x2<double, highp> <a class="code" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a>; </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37"> 153</a></span> <span class="keyword">typedef</span> tmat4x3<double, highp> <a class="code" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a>; </div>
-<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6"> 154</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a>; </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#include "compatibility.inl"</span></div>
-<div class="ttc" id="a00191_html_gab1c5d0631a6ae34e28bfb2851da387cc"><div class="ttname"><a href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">glm::int2x2</a></div><div class="ttdeci">tmat2x2< int, highp > int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00114">compatibility.hpp:114</a></div></div>
-<div class="ttc" id="a00191_html_gaa53815539021200c4e10fd282832dcd3"><div class="ttname"><a href="a00191.html#gaa53815539021200c4e10fd282832dcd3">glm::int4x2</a></div><div class="ttdeci">tmat4x2< int, highp > int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00120">compatibility.hpp:120</a></div></div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00191_html_gad13f8250579ebf79760dcf64215ddb17"><div class="ttname"><a href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">glm::bool3x4</a></div><div class="ttdeci">tmat3x4< bool, highp > bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00103">compatibility.hpp:103</a></div></div>
-<div class="ttc" id="a00191_html_gac38c8929ccc87a2dc81eaab97ad5190e"><div class="ttname"><a href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">glm::float3x4</a></div><div class="ttdeci">tmat3x4< float, highp > float3x4</div><div class="ttdoc">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00135">compatibility.hpp:135</a></div></div>
-<div class="ttc" id="a00191_html_ga3bacf576b4b29f2f2959abff7a36652d"><div class="ttname"><a href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">glm::int4x4</a></div><div class="ttdeci">tmat4x4< int, highp > int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00122">compatibility.hpp:122</a></div></div>
-<div class="ttc" id="a00191_html_gaa4e6d53c03780dfa76bd399324f9fe37"><div class="ttname"><a href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">glm::double4x3</a></div><div class="ttdeci">tmat4x3< double, highp > double4x3</div><div class="ttdoc">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00153">compatibility.hpp:153</a></div></div>
-<div class="ttc" id="a00191_html_gab8d74ea4c4f4bd980b650ffb27cdb659"><div class="ttname"><a href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">glm::bool3</a></div><div class="ttdeci">tvec3< bool, highp > bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00094">compatibility.hpp:94</a></div></div>
-<div class="ttc" id="a00191_html_gab2ce4c366abc06c8bf7fe097ecea0dde"><div class="ttname"><a href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">glm::float2x4</a></div><div class="ttdeci">tmat2x4< float, highp > float2x4</div><div class="ttdoc">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00132">compatibility.hpp:132</a></div></div>
-<div class="ttc" id="a00191_html_gaf923922adf744404d5bfb3fafb7d0d8e"><div class="ttname"><a href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">glm::double2x4</a></div><div class="ttdeci">tmat2x4< double, highp > double2x4</div><div class="ttdoc">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00148">compatibility.hpp:148</a></div></div>
-<div class="ttc" id="a00191_html_gad02e7dff74039bb1454643e293d85dfe"><div class="ttname"><a href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">glm::bool2x3</a></div><div class="ttdeci">tmat2x3< bool, highp > bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00099">compatibility.hpp:99</a></div></div>
-<div class="ttc" id="a00191_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00140">compatibility.hpp:140</a></div></div>
-<div class="ttc" id="a00191_html_ga83e4c62ab1addfe708dc3409cc0e5dfb"><div class="ttname"><a href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">glm::bool4x3</a></div><div class="ttdeci">tmat4x3< bool, highp > bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00105">compatibility.hpp:105</a></div></div>
-<div class="ttc" id="a00191_html_ga098c33a30f901f4f6a76969d6db6b01b"><div class="ttname"><a href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">glm::float2x3</a></div><div class="ttdeci">tmat2x3< float, highp > float2x3</div><div class="ttdoc">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00131">compatibility.hpp:131</a></div></div>
-<div class="ttc" id="a00191_html_ga7b00c53838143bce963177122ab92c39"><div class="ttname"><a href="a00191.html#ga7b00c53838143bce963177122ab92c39">glm::int3x4</a></div><div class="ttdeci">tmat3x4< int, highp > int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00119">compatibility.hpp:119</a></div></div>
-<div class="ttc" id="a00191_html_ga6dc93f0794eb5fadd7f68b85141a2434"><div class="ttname"><a href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">glm::int2x3</a></div><div class="ttdeci">tmat2x3< int, highp > int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00115">compatibility.hpp:115</a></div></div>
-<div class="ttc" id="a00191_html_ga686a3a5590f0a0e721faba08bda301d6"><div class="ttname"><a href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">glm::double4x4</a></div><div class="ttdeci">tmat4x4< double, highp > double4x4</div><div class="ttdoc">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00154">compatibility.hpp:154</a></div></div>
-<div class="ttc" id="a00191_html_ga184ee05ac2bbbf0a91dd364ba8e528db"><div class="ttname"><a href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">glm::bool4x2</a></div><div class="ttdeci">tmat4x2< bool, highp > bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00104">compatibility.hpp:104</a></div></div>
-<div class="ttc" id="a00191_html_ga09d39c391a509a045b6c7061f15bdff5"><div class="ttname"><a href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > atan2(const tvec4< T, P > &x, const tvec4< T, P > &y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_sourc [...]
-<div class="ttc" id="a00191_html_ga6e79dbfab5917c467a154638ba27898e"><div class="ttname"><a href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">glm::bool4</a></div><div class="ttdeci">tvec4< bool, highp > bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00095">compatibility.hpp:95</a></div></div>
-<div class="ttc" id="a00191_html_gaeaac4d0e18164e4d2fe54432c0fbbcf6"><div class="ttname"><a href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">glm::double3x2</a></div><div class="ttdeci">tmat3x2< double, highp > double3x2</div><div class="ttdoc">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00149">compatibility.hpp:149</a></div></div>
-<div class="ttc" id="a00191_html_gaed4bc64196bd25d46f6a1f417320a391"><div class="ttname"><a href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">glm::double3</a></div><div class="ttdeci">tvec3< double, highp > double3</div><div class="ttdoc">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00142">compatibility.hpp:142</a></div></div>
-<div class="ttc" id="a00191_html_gae4b0244b0d882657bed0a99dfa33f379"><div class="ttname"><a href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > lerp(const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Defin [...]
-<div class="ttc" id="a00191_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00129">compatibility.hpp:129</a></div></div>
-<div class="ttc" id="a00191_html_gaad93cbc2b863e363d53d405d0451d03e"><div class="ttname"><a href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">glm::float2x2</a></div><div class="ttdeci">tmat2x2< float, highp > float2x2</div><div class="ttdoc">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00130">compatibility.hpp:130</a></div></div>
-<div class="ttc" id="a00191_html_ga4a3bf0ecd6f6ff60836c5bee26c14abe"><div class="ttname"><a href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">glm::int4x3</a></div><div class="ttdeci">tmat4x3< int, highp > int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00121">compatibility.hpp:121</a></div></div>
-<div class="ttc" id="a00191_html_ga2692a729a69615d72dbebbdd0eba2363"><div class="ttname"><a href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">glm::float3x3</a></div><div class="ttdeci">tmat3x3< float, highp > float3x3</div><div class="ttdoc">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00134">compatibility.hpp:134</a></div></div>
-<div class="ttc" id="a00191_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00113">compatibility.hpp:113</a></div></div>
-<div class="ttc" id="a00191_html_ga39a2af7aa8f2d29ca40afd2256c0e7c8"><div class="ttname"><a href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">glm::float4x2</a></div><div class="ttdeci">tmat4x2< float, highp > float4x2</div><div class="ttdoc">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00136">compatibility.hpp:136</a></div></div>
-<div class="ttc" id="a00191_html_gab8bbb086c9a6c2deffbe0e80afd6be56"><div class="ttname"><a href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">glm::double4</a></div><div class="ttdeci">tvec4< double, highp > double4</div><div class="ttdoc">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00143">compatibility.hpp:143</a></div></div>
-<div class="ttc" id="a00191_html_ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><div class="ttname"><a href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > isfinite(const tvec4< T, P > &x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
-<div class="ttc" id="a00191_html_gad5da9e1b4e0c64c5436b5696ab49540e"><div class="ttname"><a href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">glm::int2x4</a></div><div class="ttdeci">tmat2x4< int, highp > int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00116">compatibility.hpp:116</a></div></div>
-<div class="ttc" id="a00191_html_gad749b26be059f35394fd71c7f7a44034"><div class="ttname"><a href="a00191.html#gad749b26be059f35394fd71c7f7a44034">glm::float4x3</a></div><div class="ttdeci">tmat4x3< float, highp > float4x3</div><div class="ttdoc">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00137">compatibility.hpp:137</a></div></div>
-<div class="ttc" id="a00191_html_gaaa6ceedf08a85e5fd73a482bc8b77b88"><div class="ttname"><a href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">glm::int3</a></div><div class="ttdeci">tvec3< int, highp > int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00110">compatibility.hpp:110</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00191_html_gaad84a1ea83be8fce04c1570c5e719413"><div class="ttname"><a href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">glm::double3x4</a></div><div class="ttdeci">tmat3x4< double, highp > double3x4</div><div class="ttdoc">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00151">compatibility.hpp:151</a></div></div>
-<div class="ttc" id="a00191_html_gac934f579ee5cf3cbdbb25b73f2640c0a"><div class="ttname"><a href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">glm::double3x3</a></div><div class="ttdeci">tmat3x3< double, highp > double3x3</div><div class="ttdoc">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00150">compatibility.hpp:150</a></div></div>
-<div class="ttc" id="a00191_html_ga2f87500119da15e35e4a74780ba512bd"><div class="ttname"><a href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">glm::double4x2</a></div><div class="ttdeci">tmat4x2< double, highp > double4x2</div><div class="ttdoc">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00152">compatibility.hpp:152</a></div></div>
-<div class="ttc" id="a00191_html_ga2bfa618285894e34f299e4984f092d56"><div class="ttname"><a href="a00191.html#ga2bfa618285894e34f299e4984f092d56">glm::float3</a></div><div class="ttdeci">tvec3< float, highp > float3</div><div class="ttdoc">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00126">compatibility.hpp:126</a></div></div>
-<div class="ttc" id="a00191_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00097">compatibility.hpp:97</a></div></div>
-<div class="ttc" id="a00191_html_gab19c2df22e9b14081390fabd074081f1"><div class="ttname"><a href="a00191.html#gab19c2df22e9b14081390fabd074081f1">glm::int4</a></div><div class="ttdeci">tvec4< int, highp > int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00111">compatibility.hpp:111</a></div></div>
-<div class="ttc" id="a00191_html_gae621c9eabcba552eea5f6ade1f403605"><div class="ttname"><a href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">glm::bool3x3</a></div><div class="ttdeci">tmat3x3< bool, highp > bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00102">compatibility.hpp:102</a></div></div>
-<div class="ttc" id="a00191_html_gaa16a13c6f2768e83ca133430e82ab89e"><div class="ttname"><a href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">glm::double2</a></div><div class="ttdeci">tvec2< double, highp > double2</div><div class="ttdoc">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00141">compatibility.hpp:141</a></div></div>
-<div class="ttc" id="a00191_html_gaa98b1a06b802c975f02a5583f43632db"><div class="ttname"><a href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">glm::int3x2</a></div><div class="ttdeci">tmat3x2< int, highp > int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00117">compatibility.hpp:117</a></div></div>
-<div class="ttc" id="a00191_html_ga5d49ed44dd9a9e944abc30371fc9045b"><div class="ttname"><a href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">glm::float4</a></div><div class="ttdeci">tvec4< float, highp > float4</div><div class="ttdoc">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00127">compatibility.hpp:127</a></div></div>
-<div class="ttc" id="a00191_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00108">compatibility.hpp:108</a></div></div>
-<div class="ttc" id="a00191_html_gaf40529862492ded2f3b96a6c886f6136"><div class="ttname"><a href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">glm::float4x4</a></div><div class="ttdeci">tmat4x4< float, highp > float4x4</div><div class="ttdoc">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00138">compatibility.hpp:138</a></div></div>
-<div class="ttc" id="a00191_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00124">compatibility.hpp:124</a></div></div>
-<div class="ttc" id="a00191_html_ga872a70333dd25af68b1ebba485be9e42"><div class="ttname"><a href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">glm::float2</a></div><div class="ttdeci">tvec2< float, highp > float2</div><div class="ttdoc">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00125">compatibility.hpp:125</a></div></div>
-<div class="ttc" id="a00191_html_ga379c0869949e8a69c3d06d7637caa5d7"><div class="ttname"><a href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">glm::bool2x4</a></div><div class="ttdeci">tmat2x4< bool, highp > bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00100">compatibility.hpp:100</a></div></div>
-<div class="ttc" id="a00191_html_ga320d0a71a4ad9f14a1992d40546cffa7"><div class="ttname"><a href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">glm::double2x2</a></div><div class="ttdeci">tmat2x2< double, highp > double2x2</div><div class="ttdoc">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00146">compatibility.hpp:146</a></div></div>
-<div class="ttc" id="a00158_html_ga461e769acb8b8cb695a5a89334546611"><div class="ttname"><a href="a00158.html#ga461e769acb8b8cb695a5a89334546611">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y, vecType< T, P > const &x)</div><div class="ttdoc">Arc tangent. </div></div>
-<div class="ttc" id="a00191_html_ga63791409bdef9745b956406afe3157f1"><div class="ttname"><a href="a00191.html#ga63791409bdef9745b956406afe3157f1">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > saturate(const tvec4< T, P > &x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00079">compatibility.hpp:79</a></div></div>
-<div class="ttc" id="a00191_html_ga2bfb53bc320966c85149934fffb0329d"><div class="ttname"><a href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">glm::bool2x2</a></div><div class="ttdeci">tmat2x2< bool, highp > bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00098">compatibility.hpp:98</a></div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00191_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00092">compatibility.hpp:92</a></div></div>
-<div class="ttc" id="a00191_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00145">compatibility.hpp:145</a></div></div>
-<div class="ttc" id="a00191_html_gafa8d0bc8dfa7eeb928208305714f648d"><div class="ttname"><a href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">glm::bool2</a></div><div class="ttdeci">tvec2< bool, highp > bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00093">compatibility.hpp:93</a></div></div>
-<div class="ttc" id="a00191_html_ga2eca687990bf3a08ef28bc4a9f2fe700"><div class="ttname"><a href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">glm::int2</a></div><div class="ttdeci">tvec2< int, highp > int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00109">compatibility.hpp:109</a></div></div>
-<div class="ttc" id="a00191_html_gade37cf30c69bacb41ceea7e32717eac7"><div class="ttname"><a href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">glm::double2x3</a></div><div class="ttdeci">tmat2x3< double, highp > double2x3</div><div class="ttdoc">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00147">compatibility.hpp:147</a></div></div>
-<div class="ttc" id="a00191_html_ga0fc7ecb53df5be5f9d766fbbfe5190d7"><div class="ttname"><a href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">glm::bool3x2</a></div><div class="ttdeci">tmat3x2< bool, highp > bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00101">compatibility.hpp:101</a></div></div>
-<div class="ttc" id="a00191_html_ga20c4d23defbc123ac4745c9b4262156f"><div class="ttname"><a href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">glm::int3x3</a></div><div class="ttdeci">tmat3x3< int, highp > int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00118">compatibility.hpp:118</a></div></div>
-<div class="ttc" id="a00191_html_gaf30014e7b6874f45d58eb580d04764ff"><div class="ttname"><a href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">glm::float3x2</a></div><div class="ttdeci">tmat3x2< float, highp > float3x2</div><div class="ttdoc">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00133">compatibility.hpp:133</a></div></div>
-<div class="ttc" id="a00191_html_ga9770607032813e7b0ca7362a47efea1e"><div class="ttname"><a href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">glm::bool4x4</a></div><div class="ttdeci">tmat4x4< bool, highp > bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00106">compatibility.hpp:106</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_compatibility extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># include <cfloat></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># include <cmath></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># undef isfinite</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864"> 38</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(x, y, a);} [...]
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe"> 39</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& [...]
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9"> 41</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& [...]
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60"> 42</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& [...]
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070"> 43</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>& [...]
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1"> 44</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>& [...]
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379"> 45</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>& [...]
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 47</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(x, T [...]
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107"> 48</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec2<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b"> 49</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec3<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00187.html#ga63791409bdef9745b956406afe3157f1"> 50</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a>(<span class="keyword">const</span> tvec4<T, P>& x){<span class="keywordflow">return</span> <a class="co [...]
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00187.html#gac63011205bf6d0be82589dc56dd26708"> 52</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER T <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a>(x, [...]
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9"> 53</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec2<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec2<T, P>& x, <span class="keyword">const</span> tvec2<T, P>&am [...]
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0"> 54</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec3<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec3<T, P>& x, <span class="keyword">const</span> tvec3<T, P>&am [...]
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5"> 55</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_QUALIFIER tvec4<T, P> <a class="code" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a>(<span class="keyword">const</span> tvec4<T, P>& x, <span class="keyword">const</span> tvec4<T, P>&am [...]
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(genType <span class="keyword">const</span> & x); </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec1<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec1<T, P>& x); </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec2<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec2<T, P>& x); </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec3<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec3<T, P>& x); </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a>(<span class="keyword">const</span> tvec4<T, P>& x); </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e"> 63</a></span> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d"> 64</a></span> <span class="keyword">typedef</span> tvec2<bool, highp> <a class="code" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a>; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659"> 65</a></span> <span class="keyword">typedef</span> tvec3<bool, highp> <a class="code" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a>; </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e"> 66</a></span> <span class="keyword">typedef</span> tvec4<bool, highp> <a class="code" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a>; </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090"> 68</a></span> <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d"> 69</a></span> <span class="keyword">typedef</span> tmat2x2<bool, highp> <a class="code" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a>; </div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe"> 70</a></span> <span class="keyword">typedef</span> tmat2x3<bool, highp> <a class="code" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a>; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7"> 71</a></span> <span class="keyword">typedef</span> tmat2x4<bool, highp> <a class="code" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a>; </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7"> 72</a></span> <span class="keyword">typedef</span> tmat3x2<bool, highp> <a class="code" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a>; </div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605"> 73</a></span> <span class="keyword">typedef</span> tmat3x3<bool, highp> <a class="code" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a>; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17"> 74</a></span> <span class="keyword">typedef</span> tmat3x4<bool, highp> <a class="code" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a>; </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db"> 75</a></span> <span class="keyword">typedef</span> tmat4x2<bool, highp> <a class="code" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a>; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb"> 76</a></span> <span class="keyword">typedef</span> tmat4x3<bool, highp> <a class="code" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a>; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e"> 77</a></span> <span class="keyword">typedef</span> tmat4x4<bool, highp> <a class="code" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a>; </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 79</a></span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700"> 80</a></span> <span class="keyword">typedef</span> tvec2<int, highp> <a class="code" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a>; </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88"> 81</a></span> <span class="keyword">typedef</span> tvec3<int, highp> <a class="code" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a>; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00187.html#gab19c2df22e9b14081390fabd074081f1"> 82</a></span> <span class="keyword">typedef</span> tvec4<int, highp> <a class="code" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a>; </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a"> 84</a></span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc"> 85</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a>; </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434"> 86</a></span> <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a>; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e"> 87</a></span> <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a>; </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db"> 88</a></span> <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a>; </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f"> 89</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a>; </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00187.html#ga7b00c53838143bce963177122ab92c39"> 90</a></span> <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a>; </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="a00187.html#gaa53815539021200c4e10fd282832dcd3"> 91</a></span> <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a>; </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe"> 92</a></span> <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a>; </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d"> 93</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a>; </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 95</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42"> 96</a></span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a>; </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00187.html#ga2bfa618285894e34f299e4984f092d56"> 97</a></span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a>; </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b"> 98</a></span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a>; </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c"> 100</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e"> 101</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a>; </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b"> 102</a></span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a>; </div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde"> 103</a></span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a>; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff"> 104</a></span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a>; </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363"> 105</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a>; </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e"> 106</a></span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a>; </div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8"> 107</a></span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a>; </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00187.html#gad749b26be059f35394fd71c7f7a44034"> 108</a></span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a>; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136"> 109</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a>; </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b"> 111</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e"> 112</a></span> <span class="keyword">typedef</span> tvec2<double, highp> <a class="code" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a>; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391"> 113</a></span> <span class="keyword">typedef</span> tvec3<double, highp> <a class="code" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a>; </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56"> 114</a></span> <span class="keyword">typedef</span> tvec4<double, highp> <a class="code" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a>; </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 116</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7"> 117</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a>; </div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7"> 118</a></span> <span class="keyword">typedef</span> tmat2x3<double, highp> <a class="code" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a>; </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e"> 119</a></span> <span class="keyword">typedef</span> tmat2x4<double, highp> <a class="code" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a>; </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6"> 120</a></span> <span class="keyword">typedef</span> tmat3x2<double, highp> <a class="code" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a>; </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a"> 121</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a>; </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413"> 122</a></span> <span class="keyword">typedef</span> tmat3x4<double, highp> <a class="code" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a>; </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd"> 123</a></span> <span class="keyword">typedef</span> tmat4x2<double, highp> <a class="code" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a>; </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37"> 124</a></span> <span class="keyword">typedef</span> tmat4x3<double, highp> <a class="code" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a>; </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6"> 125</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a>; </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#include "compatibility.inl"</span></div>
+<div class="ttc" id="a00187_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00084">compatibility.hpp:84</a></div></div>
+<div class="ttc" id="a00187_html_gae621c9eabcba552eea5f6ade1f403605"><div class="ttname"><a href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">glm::bool3x3</a></div><div class="ttdeci">tmat3x3< bool, highp > bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00073">compatibility.hpp:73</a></div></div>
+<div class="ttc" id="a00187_html_ga2692a729a69615d72dbebbdd0eba2363"><div class="ttname"><a href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">glm::float3x3</a></div><div class="ttdeci">tmat3x3< float, highp > float3x3</div><div class="ttdoc">single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00105">compatibility.hpp:105</a></div></div>
+<div class="ttc" id="a00187_html_gad5da9e1b4e0c64c5436b5696ab49540e"><div class="ttname"><a href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">glm::int2x4</a></div><div class="ttdeci">tmat2x4< int, highp > int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00087">compatibility.hpp:87</a></div></div>
+<div class="ttc" id="a00187_html_gab2ce4c366abc06c8bf7fe097ecea0dde"><div class="ttname"><a href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">glm::float2x4</a></div><div class="ttdeci">tmat2x4< float, highp > float2x4</div><div class="ttdoc">single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00103">compatibility.hpp:103</a></div></div>
+<div class="ttc" id="a00187_html_gad749b26be059f35394fd71c7f7a44034"><div class="ttname"><a href="a00187.html#gad749b26be059f35394fd71c7f7a44034">glm::float4x3</a></div><div class="ttdeci">tmat4x3< float, highp > float4x3</div><div class="ttdoc">single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00108">compatibility.hpp:108</a></div></div>
+<div class="ttc" id="a00187_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00111">compatibility.hpp:111</a></div></div>
+<div class="ttc" id="a00187_html_ga320d0a71a4ad9f14a1992d40546cffa7"><div class="ttname"><a href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">glm::double2x2</a></div><div class="ttdeci">tmat2x2< double, highp > double2x2</div><div class="ttdoc">double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00117">compatibility.hpp:117</a></div></div>
+<div class="ttc" id="a00187_html_gaad84a1ea83be8fce04c1570c5e719413"><div class="ttname"><a href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">glm::double3x4</a></div><div class="ttdeci">tmat3x4< double, highp > double3x4</div><div class="ttdoc">double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00122">compatibility.hpp:122</a></div></div>
+<div class="ttc" id="a00187_html_gab1c5d0631a6ae34e28bfb2851da387cc"><div class="ttname"><a href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">glm::int2x2</a></div><div class="ttdeci">tmat2x2< int, highp > int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00085">compatibility.hpp:85</a></div></div>
+<div class="ttc" id="a00187_html_ga2eca687990bf3a08ef28bc4a9f2fe700"><div class="ttname"><a href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">glm::int2</a></div><div class="ttdeci">tvec2< int, highp > int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00080">compatibility.hpp:80</a></div></div>
+<div class="ttc" id="a00187_html_gaed4bc64196bd25d46f6a1f417320a391"><div class="ttname"><a href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">glm::double3</a></div><div class="ttdeci">tvec3< double, highp > double3</div><div class="ttdoc">double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00113">compatibility.hpp:113</a></div></div>
+<div class="ttc" id="a00187_html_gae4b0244b0d882657bed0a99dfa33f379"><div class="ttname"><a href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > lerp(const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Defin [...]
+<div class="ttc" id="a00187_html_ga20c4d23defbc123ac4745c9b4262156f"><div class="ttname"><a href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">glm::int3x3</a></div><div class="ttdeci">tmat3x3< int, highp > int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00089">compatibility.hpp:89</a></div></div>
+<div class="ttc" id="a00187_html_gac934f579ee5cf3cbdbb25b73f2640c0a"><div class="ttname"><a href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">glm::double3x3</a></div><div class="ttdeci">tmat3x3< double, highp > double3x3</div><div class="ttdoc">double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00121">compatibility.hpp:121</a></div></div>
+<div class="ttc" id="a00187_html_gad02e7dff74039bb1454643e293d85dfe"><div class="ttname"><a href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">glm::bool2x3</a></div><div class="ttdeci">tmat2x3< bool, highp > bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00070">compatibility.hpp:70</a></div></div>
+<div class="ttc" id="a00187_html_ga9770607032813e7b0ca7362a47efea1e"><div class="ttname"><a href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">glm::bool4x4</a></div><div class="ttdeci">tmat4x4< bool, highp > bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00077">compatibility.hpp:77</a></div></div>
+<div class="ttc" id="a00187_html_ga83e4c62ab1addfe708dc3409cc0e5dfb"><div class="ttname"><a href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">glm::bool4x3</a></div><div class="ttdeci">tmat4x3< bool, highp > bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00076">compatibility.hpp:76</a></div></div>
+<div class="ttc" id="a00187_html_gaad93cbc2b863e363d53d405d0451d03e"><div class="ttname"><a href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">glm::float2x2</a></div><div class="ttdeci">tmat2x2< float, highp > float2x2</div><div class="ttdoc">single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00101">compatibility.hpp:101</a></div></div>
+<div class="ttc" id="a00187_html_ga63791409bdef9745b956406afe3157f1"><div class="ttname"><a href="a00187.html#ga63791409bdef9745b956406afe3157f1">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > saturate(const tvec4< T, P > &x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00050">compatibility.hpp:50</a></div></div>
+<div class="ttc" id="a00187_html_gafa8d0bc8dfa7eeb928208305714f648d"><div class="ttname"><a href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">glm::bool2</a></div><div class="ttdeci">tvec2< bool, highp > bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00064">compatibility.hpp:64</a></div></div>
+<div class="ttc" id="a00187_html_ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><div class="ttname"><a href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > isfinite(const tvec4< T, P > &x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
+<div class="ttc" id="a00187_html_ga5d49ed44dd9a9e944abc30371fc9045b"><div class="ttname"><a href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">glm::float4</a></div><div class="ttdeci">tvec4< float, highp > float4</div><div class="ttdoc">single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00098">compatibility.hpp:98</a></div></div>
+<div class="ttc" id="a00187_html_gaf40529862492ded2f3b96a6c886f6136"><div class="ttname"><a href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">glm::float4x4</a></div><div class="ttdeci">tmat4x4< float, highp > float4x4</div><div class="ttdoc">single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00109">compatibility.hpp:109</a></div></div>
+<div class="ttc" id="a00187_html_ga39a2af7aa8f2d29ca40afd2256c0e7c8"><div class="ttname"><a href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">glm::float4x2</a></div><div class="ttdeci">tmat4x2< float, highp > float4x2</div><div class="ttdoc">single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00107">compatibility.hpp:107</a></div></div>
+<div class="ttc" id="a00187_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00095">compatibility.hpp:95</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00187_html_gaf30014e7b6874f45d58eb580d04764ff"><div class="ttname"><a href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">glm::float3x2</a></div><div class="ttdeci">tmat3x2< float, highp > float3x2</div><div class="ttdoc">single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00104">compatibility.hpp:104</a></div></div>
+<div class="ttc" id="a00187_html_ga2f87500119da15e35e4a74780ba512bd"><div class="ttname"><a href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">glm::double4x2</a></div><div class="ttdeci">tmat4x2< double, highp > double4x2</div><div class="ttdoc">double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00123">compatibility.hpp:123</a></div></div>
+<div class="ttc" id="a00187_html_gaa4e6d53c03780dfa76bd399324f9fe37"><div class="ttname"><a href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">glm::double4x3</a></div><div class="ttdeci">tmat4x3< double, highp > double4x3</div><div class="ttdoc">double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00124">compatibility.hpp:124</a></div></div>
+<div class="ttc" id="a00187_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00116">compatibility.hpp:116</a></div></div>
+<div class="ttc" id="a00187_html_gaa53815539021200c4e10fd282832dcd3"><div class="ttname"><a href="a00187.html#gaa53815539021200c4e10fd282832dcd3">glm::int4x2</a></div><div class="ttdeci">tmat4x2< int, highp > int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00091">compatibility.hpp:91</a></div></div>
+<div class="ttc" id="a00187_html_gab19c2df22e9b14081390fabd074081f1"><div class="ttname"><a href="a00187.html#gab19c2df22e9b14081390fabd074081f1">glm::int4</a></div><div class="ttdeci">tvec4< int, highp > int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00082">compatibility.hpp:82</a></div></div>
+<div class="ttc" id="a00187_html_gab8d74ea4c4f4bd980b650ffb27cdb659"><div class="ttname"><a href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">glm::bool3</a></div><div class="ttdeci">tvec3< bool, highp > bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00065">compatibility.hpp:65</a></div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00152_html_ga461e769acb8b8cb695a5a89334546611"><div class="ttname"><a href="a00152.html#ga461e769acb8b8cb695a5a89334546611">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y, vecType< T, P > const &x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00187_html_gaa98b1a06b802c975f02a5583f43632db"><div class="ttname"><a href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">glm::int3x2</a></div><div class="ttdeci">tmat3x2< int, highp > int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00088">compatibility.hpp:88</a></div></div>
+<div class="ttc" id="a00187_html_gaeaac4d0e18164e4d2fe54432c0fbbcf6"><div class="ttname"><a href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">glm::double3x2</a></div><div class="ttdeci">tmat3x2< double, highp > double3x2</div><div class="ttdoc">double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00120">compatibility.hpp:120</a></div></div>
+<div class="ttc" id="a00187_html_ga09d39c391a509a045b6c7061f15bdff5"><div class="ttname"><a href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tvec4< T, P > atan2(const tvec4< T, P > &x, const tvec4< T, P > &y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_sourc [...]
+<div class="ttc" id="a00187_html_gab8bbb086c9a6c2deffbe0e80afd6be56"><div class="ttname"><a href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">glm::double4</a></div><div class="ttdeci">tvec4< double, highp > double4</div><div class="ttdoc">double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00114">compatibility.hpp:114</a></div></div>
+<div class="ttc" id="a00187_html_ga184ee05ac2bbbf0a91dd364ba8e528db"><div class="ttname"><a href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">glm::bool4x2</a></div><div class="ttdeci">tmat4x2< bool, highp > bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00075">compatibility.hpp:75</a></div></div>
+<div class="ttc" id="a00187_html_gaf923922adf744404d5bfb3fafb7d0d8e"><div class="ttname"><a href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">glm::double2x4</a></div><div class="ttdeci">tmat2x4< double, highp > double2x4</div><div class="ttdoc">double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00119">compatibility.hpp:119</a></div></div>
+<div class="ttc" id="a00187_html_ga4a3bf0ecd6f6ff60836c5bee26c14abe"><div class="ttname"><a href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">glm::int4x3</a></div><div class="ttdeci">tmat4x3< int, highp > int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00092">compatibility.hpp:92</a></div></div>
+<div class="ttc" id="a00187_html_gade37cf30c69bacb41ceea7e32717eac7"><div class="ttname"><a href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">glm::double2x3</a></div><div class="ttdeci">tmat2x3< double, highp > double2x3</div><div class="ttdoc">double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00118">compatibility.hpp:118</a></div></div>
+<div class="ttc" id="a00187_html_ga098c33a30f901f4f6a76969d6db6b01b"><div class="ttname"><a href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">glm::float2x3</a></div><div class="ttdeci">tmat2x3< float, highp > float2x3</div><div class="ttdoc">single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00102">compatibility.hpp:102</a></div></div>
+<div class="ttc" id="a00187_html_ga7b00c53838143bce963177122ab92c39"><div class="ttname"><a href="a00187.html#ga7b00c53838143bce963177122ab92c39">glm::int3x4</a></div><div class="ttdeci">tmat3x4< int, highp > int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00090">compatibility.hpp:90</a></div></div>
+<div class="ttc" id="a00187_html_ga379c0869949e8a69c3d06d7637caa5d7"><div class="ttname"><a href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">glm::bool2x4</a></div><div class="ttdeci">tmat2x4< bool, highp > bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00071">compatibility.hpp:71</a></div></div>
+<div class="ttc" id="a00187_html_ga3bacf576b4b29f2f2959abff7a36652d"><div class="ttname"><a href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">glm::int4x4</a></div><div class="ttdeci">tmat4x4< int, highp > int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00093">compatibility.hpp:93</a></div></div>
+<div class="ttc" id="a00187_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00079">compatibility.hpp:79</a></div></div>
+<div class="ttc" id="a00187_html_ga872a70333dd25af68b1ebba485be9e42"><div class="ttname"><a href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">glm::float2</a></div><div class="ttdeci">tvec2< float, highp > float2</div><div class="ttdoc">single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00096">compatibility.hpp:96</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfb53bc320966c85149934fffb0329d"><div class="ttname"><a href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">glm::bool2x2</a></div><div class="ttdeci">tmat2x2< bool, highp > bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00069">compatibility.hpp:69</a></div></div>
+<div class="ttc" id="a00187_html_ga6e79dbfab5917c467a154638ba27898e"><div class="ttname"><a href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">glm::bool4</a></div><div class="ttdeci">tvec4< bool, highp > bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00066">compatibility.hpp:66</a></div></div>
+<div class="ttc" id="a00187_html_ga686a3a5590f0a0e721faba08bda301d6"><div class="ttname"><a href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">glm::double4x4</a></div><div class="ttdeci">tmat4x4< double, highp > double4x4</div><div class="ttdoc">double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00125">compatibility.hpp:125</a></div></div>
+<div class="ttc" id="a00187_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00063">compatibility.hpp:63</a></div></div>
+<div class="ttc" id="a00187_html_gad13f8250579ebf79760dcf64215ddb17"><div class="ttname"><a href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">glm::bool3x4</a></div><div class="ttdeci">tmat3x4< bool, highp > bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00074">compatibility.hpp:74</a></div></div>
+<div class="ttc" id="a00187_html_ga0fc7ecb53df5be5f9d766fbbfe5190d7"><div class="ttname"><a href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">glm::bool3x2</a></div><div class="ttdeci">tmat3x2< bool, highp > bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00072">compatibility.hpp:72</a></div></div>
+<div class="ttc" id="a00187_html_gac38c8929ccc87a2dc81eaab97ad5190e"><div class="ttname"><a href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">glm::float3x4</a></div><div class="ttdeci">tmat3x4< float, highp > float3x4</div><div class="ttdoc">single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00106">compatibility.hpp:106</a></div></div>
+<div class="ttc" id="a00187_html_ga6dc93f0794eb5fadd7f68b85141a2434"><div class="ttname"><a href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">glm::int2x3</a></div><div class="ttdeci">tmat2x3< int, highp > int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00086">compatibility.hpp:86</a></div></div>
+<div class="ttc" id="a00187_html_ga2bfa618285894e34f299e4984f092d56"><div class="ttname"><a href="a00187.html#ga2bfa618285894e34f299e4984f092d56">glm::float3</a></div><div class="ttdeci">tvec3< float, highp > float3</div><div class="ttdoc">single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00097">compatibility.hpp:97</a></div></div>
+<div class="ttc" id="a00146_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00187_html_gaaa6ceedf08a85e5fd73a482bc8b77b88"><div class="ttname"><a href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">glm::int3</a></div><div class="ttdeci">tvec3< int, highp > int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00081">compatibility.hpp:81</a></div></div>
+<div class="ttc" id="a00187_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00100">compatibility.hpp:100</a></div></div>
+<div class="ttc" id="a00187_html_gaa16a13c6f2768e83ca133430e82ab89e"><div class="ttname"><a href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">glm::double2</a></div><div class="ttdeci">tvec2< double, highp > double2</div><div class="ttdoc">double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00112">compatibility.hpp:112</a></div></div>
+<div class="ttc" id="a00187_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00016_source.html#l00068">compatibility.hpp:68</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00017.html b/doc/api/a00017.html
index 30cad0c..aa96a11 100644
--- a/doc/api/a00017.html
+++ b/doc/api/a00017.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: component_wise.hpp File Reference</title>
+<title>0.9.8: component_wise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,28 +57,29 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &v)</td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &v)</td></tr>
<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &v)</td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &v)</td></tr>
<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &v)</td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &v)</td></tr>
<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &v)</td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &v)</td></tr>
<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplParams" colspan="2">template<typename floatType , typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplParams" colspan="2">template<typename T , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:gaea99a3271016bfd331d9fa7587f3db37"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00192.html">GLM_GTX_component_wise</a></p>
+<div class="textblock"><p><a class="el" href="a00188.html">GLM_GTX_component_wise</a> </p>
<dl class="section date"><dt>Date</dt><dd>2007-05-21 / 2011-06-07 </dd></dl>
<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00017_source.html">component_wise.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00017_source.html b/doc/api/a00017_source.html
index 627ad7d..de76ebb 100644
--- a/doc/api/a00017_source.html
+++ b/doc/api/a00017_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: component_wise.hpp Source File</title>
+<title>0.9.8: component_wise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,43 +50,47 @@
</div><!--header-->
<div class="contents">
<a href="a00017.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_component_wise extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_component_wise extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">float</span>Type, <span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL vecType<floatType, P> <a class="code" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a>(vecType<floatType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a>(genType <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a>(genType <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> genType <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> genType <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> genType <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> genType <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "component_wise.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00192_html_gaf71833350e15e74d31cbf8a3e7f27051"><div class="ttname"><a href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">glm::compAdd</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compAdd(genType const &v)</div><div class="ttdoc">Add all vector components together. </div></div>
-<div class="ttc" id="a00192_html_gab5d0832b5c7bb01b8d7395973bfb1425"><div class="ttname"><a href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">glm::compMin</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMin(genType const &v)</div><div class="ttdoc">Find the minimum value between single vector components. </div></div>
-<div class="ttc" id="a00192_html_gabfa4bb19298c8c73d4217ba759c496b6"><div class="ttname"><a href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">glm::compMax</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMax(genType const &v)</div><div class="ttdoc">Find the maximum value between single vector components. </div></div>
-<div class="ttc" id="a00192_html_gae8ab88024197202c9479d33bdc5a8a5d"><div class="ttname"><a href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">glm::compMul</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMul(genType const &v)</div><div class="ttdoc">Multiply all vector components together. </div></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a>(genType <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "component_wise.inl"</span></div>
+<div class="ttc" id="a00188_html_gaf71833350e15e74d31cbf8a3e7f27051"><div class="ttname"><a href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">glm::compAdd</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compAdd(genType const &v)</div><div class="ttdoc">Add all vector components together. </div></div>
+<div class="ttc" id="a00188_html_gaea99a3271016bfd331d9fa7587f3db37"><div class="ttname"><a href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">glm::compScale</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > compScale(vecType< floatType, P > const &v)</div><div class="ttdoc">Convert a normalized float vector to an integer vector. </div></div>
+<div class="ttc" id="a00188_html_gae8ab88024197202c9479d33bdc5a8a5d"><div class="ttname"><a href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">glm::compMul</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMul(genType const &v)</div><div class="ttdoc">Multiply all vector components together. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00188_html_gaeb34fdf090d2d4da9babcdfec267f09e"><div class="ttname"><a href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">glm::compNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< floatType, P > compNormalize(vecType< T, P > const &v)</div><div class="ttdoc">Convert an integer vector to a normalized float vector. </div></div>
+<div class="ttc" id="a00188_html_gab5d0832b5c7bb01b8d7395973bfb1425"><div class="ttname"><a href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">glm::compMin</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMin(genType const &v)</div><div class="ttdoc">Find the minimum value between single vector components. </div></div>
+<div class="ttc" id="a00188_html_gabfa4bb19298c8c73d4217ba759c496b6"><div class="ttname"><a href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">glm::compMax</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type compMax(genType const &v)</div><div class="ttdoc">Find the maximum value between single vector components. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00018.html b/doc/api/a00018.html
index 99ea57e..76b2c5a 100644
--- a/doc/api/a00018.html
+++ b/doc/api/a00018.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: constants.hpp File Reference</title>
+<title>0.9.8: constants.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -56,104 +56,97 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a> ()</td></tr>
-<tr class="separator:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a> ()</td></tr>
-<tr class="separator:gacb41049b8d22c8aa90e362b96c524feb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a> ()</td></tr>
-<tr class="separator:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a> ()</td></tr>
-<tr class="separator:gafb68d06c9c9dc234210ce91d6707faac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a> ()</td></tr>
-<tr class="separator:gafd53093ef2d756333865d774bea3cdf9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a> ()</td></tr>
-<tr class="separator:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a> ()</td></tr>
-<tr class="separator:ga650774609debe4a90bcac449b574de2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a> ()</td></tr>
-<tr class="separator:ga48addf0cb0980277d208a71a1c59c073"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a> ()</td></tr>
-<tr class="separator:ga22fae798430edc3022766af4fd83e8a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a> ()</td></tr>
-<tr class="separator:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a> ()</td></tr>
-<tr class="separator:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a> ()</td></tr>
-<tr class="separator:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a> ()</td></tr>
-<tr class="separator:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a> ()</td></tr>
-<tr class="separator:gae671930537266a9a650ccb4b88757692"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a> ()</td></tr>
-<tr class="separator:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a> ()</td></tr>
-<tr class="separator:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a> ()</td></tr>
-<tr class="separator:gaec5af85e2148c118aad7e797430fdeb0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a> ()</td></tr>
-<tr class="separator:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a> ()</td></tr>
-<tr class="separator:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a> ()</td></tr>
-<tr class="separator:gab3183635ac615473e2f95852f491be83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a> ()</td></tr>
-<tr class="separator:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a> ()</td></tr>
-<tr class="separator:gae991b4d39c57b57990054eec3677597c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a> ()</td></tr>
-<tr class="separator:gabf280496105e0ad070287417f840ebd8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a> ()</td></tr>
-<tr class="separator:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a> ()</td></tr>
-<tr class="separator:ga85729d38c47351686e8659f80447a7ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a> ()</td></tr>
-<tr class="separator:ga767e539c20585bf60aa63595b0f0b259"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a> ()</td></tr>
-<tr class="separator:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a> ()</td></tr>
-<tr class="separator:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a> ()</td></tr>
-<tr class="separator:ga5cc97dd01d37fc199264ff6030578435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> ()</td></tr>
+<tr class="separator:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a> ()</td></tr>
+<tr class="separator:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a> ()</td></tr>
+<tr class="separator:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a> ()</td></tr>
+<tr class="separator:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a> ()</td></tr>
+<tr class="separator:ga748cf8642830657c5b7eae04d0a80899"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a> ()</td></tr>
+<tr class="separator:ga0c36b41d462e45641faf7d7938948bac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a> ()</td></tr>
+<tr class="separator:gaca94292c839ed31a405ab7a81ae7e850"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a> ()</td></tr>
+<tr class="separator:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a> ()</td></tr>
+<tr class="separator:ga24f4d27765678116f41a2f336ab7975c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a> ()</td></tr>
+<tr class="separator:ga39c2fb227631ca25894326529bdd1ee5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a> ()</td></tr>
+<tr class="separator:ga555150da2b06d23c8738981d5013e0eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a> ()</td></tr>
+<tr class="separator:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a> ()</td></tr>
+<tr class="separator:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a> ()</td></tr>
+<tr class="separator:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a> ()</td></tr>
+<tr class="separator:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a> ()</td></tr>
+<tr class="separator:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a> ()</td></tr>
+<tr class="separator:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a> ()</td></tr>
+<tr class="separator:ga4129412e96b33707a77c1a07652e23e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a> ()</td></tr>
+<tr class="separator:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a> ()</td></tr>
+<tr class="separator:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a> ()</td></tr>
+<tr class="separator:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a> ()</td></tr>
+<tr class="separator:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a> ()</td></tr>
+<tr class="separator:ga3077c6311010a214b69ddc8214ec13b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a> ()</td></tr>
+<tr class="separator:gae94950df74b0ce382b1fc1d978ef7394"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a> ()</td></tr>
+<tr class="separator:ga74eadc8a211253079683219a3ea0462a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a> ()</td></tr>
+<tr class="separator:ga5827301817640843cf02026a8d493894"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a> ()</td></tr>
+<tr class="separator:gaa5276a4617566abcfe49286f40e3a256"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a> ()</td></tr>
+<tr class="separator:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a> ()</td></tr>
+<tr class="separator:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00168.html">GLM_GTC_constants</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-09-30 / 2012-01-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00162.html">GLM_GTC_constants</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00018_source.html b/doc/api/a00018_source.html
index b408761..2468481 100644
--- a/doc/api/a00018_source.html
+++ b/doc/api/a00018_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: constants.hpp Source File</title>
+<title>0.9.8: constants.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,138 +50,138 @@
</div><!--header-->
<div class="contents">
<a href="a00018.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_constants extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a>();</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a>();</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_constants extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>();</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a>();</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a>();</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>();</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a>();</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a>();</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a>();</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a>();</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a>();</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a>();</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a>();</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a>();</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a>();</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a>();</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a>();</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a>();</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a>();</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a>();</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a>();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a>();</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a>();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a>();</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a>();</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a>();</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a>();</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a>();</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a>();</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a>();</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#include "constants.inl"</span></div>
-<div class="ttc" id="a00168_html_ga6f14b46653b7ead1edcbd0fc6c9c5289"><div class="ttname"><a href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">glm::euler</a></div><div class="ttdeci">GLM_FUNC_DECL genType euler()</div><div class="ttdoc">Return Euler's constant. </div></div>
-<div class="ttc" id="a00168_html_ga85729d38c47351686e8659f80447a7ea"><div class="ttname"><a href="a00168.html#ga85729d38c47351686e8659f80447a7ea">glm::two_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_over_pi()</div><div class="ttdoc">Return 2 / pi. </div></div>
-<div class="ttc" id="a00168_html_ga9f3732bc75c0d0892f72e21cfe4f938b"><div class="ttname"><a href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">glm::three_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType three_over_two_pi()</div><div class="ttdoc">Return pi / 2 * 3. </div></div>
-<div class="ttc" id="a00168_html_ga1cfeb345f34f72697d14f4db8d5d4c6c"><div class="ttname"><a href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">glm::root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_pi()</div><div class="ttdoc">Return square root of pi. </div></div>
-<div class="ttc" id="a00168_html_ga8186ec2c330457d41d9686c47cd3b2d1"><div class="ttname"><a href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">glm::one</a></div><div class="ttdeci">GLM_FUNC_DECL genType one()</div><div class="ttdoc">Return 1. </div></div>
-<div class="ttc" id="a00168_html_ga9cae3fad9314e34c1d3aab71fcdef05f"><div class="ttname"><a href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">glm::root_ln_four</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_ln_four()</div><div class="ttdoc">Return sqrt(ln(4)). </div></div>
-<div class="ttc" id="a00168_html_ga00c3f7bc750ff62bbf47c8913a53daa5"><div class="ttname"><a href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">glm::two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_pi()</div><div class="ttdoc">Return pi * 2. </div></div>
-<div class="ttc" id="a00168_html_gace2b8dfed1ab9fabbb67dde08e7e5b58"><div class="ttname"><a href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">glm::root_five</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_five()</div><div class="ttdoc">Return sqrt(5). </div></div>
-<div class="ttc" id="a00168_html_gab83fb6de0f05d6c0d11bdf0479f8319e"><div class="ttname"><a href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL genType e()</div><div class="ttdoc">Return e constant. </div></div>
-<div class="ttc" id="a00168_html_ga0148d757b4bfda4d86251b8d1ea1dad3"><div class="ttname"><a href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">glm::quarter_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType quarter_pi()</div><div class="ttdoc">Return pi / 4. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00168_html_ga22fae798430edc3022766af4fd83e8a4"><div class="ttname"><a href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">glm::ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_two()</div><div class="ttdoc">Return ln(2). </div></div>
-<div class="ttc" id="a00168_html_gab91b7799f88f9f2be33e385dec11b9c2"><div class="ttname"><a href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">glm::root_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_two()</div><div class="ttdoc">Return sqrt(2). </div></div>
-<div class="ttc" id="a00168_html_gab3183635ac615473e2f95852f491be83"><div class="ttname"><a href="a00168.html#gab3183635ac615473e2f95852f491be83">glm::root_three</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_three()</div><div class="ttdoc">Return sqrt(3). </div></div>
-<div class="ttc" id="a00168_html_gadde7f2efce3b14c8b26944fbafed4a10"><div class="ttname"><a href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">glm::two_thirds</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_thirds()</div><div class="ttdoc">Return 2 / 3. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00168_html_ga650774609debe4a90bcac449b574de2c"><div class="ttname"><a href="a00168.html#ga650774609debe4a90bcac449b574de2c">glm::ln_ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_ln_two()</div><div class="ttdoc">Return ln(ln(2)). </div></div>
-<div class="ttc" id="a00168_html_ga5cc97dd01d37fc199264ff6030578435"><div class="ttname"><a href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">glm::zero</a></div><div class="ttdeci">GLM_FUNC_DECL genType zero()</div><div class="ttdoc">Return 0. </div></div>
-<div class="ttc" id="a00168_html_gac1a9b3248357fd9e9b740bed90e0b1b7"><div class="ttname"><a href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">glm::one_over_root_two</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_root_two()</div><div class="ttdoc">Return 1 / sqrt(2). </div></div>
-<div class="ttc" id="a00168_html_gae991b4d39c57b57990054eec3677597c"><div class="ttname"><a href="a00168.html#gae991b4d39c57b57990054eec3677597c">glm::root_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_two_pi()</div><div class="ttdoc">Return sqrt(2 * pi). </div></div>
-<div class="ttc" id="a00168_html_gaec5af85e2148c118aad7e797430fdeb0"><div class="ttname"><a href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">glm::root_half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType root_half_pi()</div><div class="ttdoc">Return sqrt(pi / 2). </div></div>
-<div class="ttc" id="a00168_html_ga9ba09a027db6d4f4e259b01cf5d6c178"><div class="ttname"><a href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">glm::one_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_pi()</div><div class="ttdoc">Return 1 / pi. </div></div>
-<div class="ttc" id="a00168_html_gafb68d06c9c9dc234210ce91d6707faac"><div class="ttname"><a href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">glm::four_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType four_over_pi()</div><div class="ttdoc">Return 4 / pi. </div></div>
-<div class="ttc" id="a00168_html_ga767e539c20585bf60aa63595b0f0b259"><div class="ttname"><a href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">glm::two_over_root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType two_over_root_pi()</div><div class="ttdoc">Return 2 / sqrt(pi). </div></div>
-<div class="ttc" id="a00168_html_ga48addf0cb0980277d208a71a1c59c073"><div class="ttname"><a href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">glm::ln_ten</a></div><div class="ttdeci">GLM_FUNC_DECL genType ln_ten()</div><div class="ttdoc">Return ln(10). </div></div>
-<div class="ttc" id="a00168_html_gac1e7dcb42b09c66df7a299c0f007b27d"><div class="ttname"><a href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">glm::one_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType one_over_two_pi()</div><div class="ttdoc">Return 1 / (pi * 2). </div></div>
-<div class="ttc" id="a00168_html_gae671930537266a9a650ccb4b88757692"><div class="ttname"><a href="a00168.html#gae671930537266a9a650ccb4b88757692">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
-<div class="ttc" id="a00168_html_gabf280496105e0ad070287417f840ebd8"><div class="ttname"><a href="a00168.html#gabf280496105e0ad070287417f840ebd8">glm::third</a></div><div class="ttdeci">GLM_FUNC_DECL genType third()</div><div class="ttdoc">Return 1 / 3. </div></div>
-<div class="ttc" id="a00168_html_gafd53093ef2d756333865d774bea3cdf9"><div class="ttname"><a href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">glm::golden_ratio</a></div><div class="ttdeci">GLM_FUNC_DECL genType golden_ratio()</div><div class="ttdoc">Return the golden ratio constant. </div></div>
-<div class="ttc" id="a00168_html_ga7f7a1050729f3b03b1873a06ba4a472f"><div class="ttname"><a href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">glm::half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType half_pi()</div><div class="ttdoc">Return pi / 2. </div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a>();</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a>();</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a>();</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a>();</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a>();</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a>();</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a>();</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a>();</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a>();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a>();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a>();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a>();</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>();</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a>();</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a>();</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a>();</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a>();</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a>();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a>();</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a>();</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a>();</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a>();</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a>();</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "constants.inl"</span></div>
+<div class="ttc" id="a00162_html_ga74e607d29020f100c0d0dc46ce2ca950"><div class="ttname"><a href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">glm::root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two()</div><div class="ttdoc">Return sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_ga261380796b2cd496f68d2cf1d08b8eb9"><div class="ttname"><a href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">glm::root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi()</div><div class="ttdoc">Return square root of pi. </div></div>
+<div class="ttc" id="a00162_html_ga788f5a421fc0f40a1296ebc094cbaa8a"><div class="ttname"><a href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">glm::zero</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType zero()</div><div class="ttdoc">Return 0. </div></div>
+<div class="ttc" id="a00162_html_ga39c2fb227631ca25894326529bdd1ee5"><div class="ttname"><a href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">glm::one</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one()</div><div class="ttdoc">Return 1. </div></div>
+<div class="ttc" id="a00162_html_gad8fe2e6f90bce9d829e9723b649fbd42"><div class="ttname"><a href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">glm::euler</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType euler()</div><div class="ttdoc">Return Euler's constant. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00162_html_ga4b7956eb6e2fbedfc7cf2e46e85c5139"><div class="ttname"><a href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">glm::e</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType e()</div><div class="ttdoc">Return e constant. </div></div>
+<div class="ttc" id="a00162_html_ga5827301817640843cf02026a8d493894"><div class="ttname"><a href="a00162.html#ga5827301817640843cf02026a8d493894">glm::two_over_root_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi()</div><div class="ttdoc">Return 2 / sqrt(pi). </div></div>
+<div class="ttc" id="a00162_html_ga4f286be4abe88be1eed7d2a9f6cb193e"><div class="ttname"><a href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">glm::root_three</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_three()</div><div class="ttdoc">Return sqrt(3). </div></div>
+<div class="ttc" id="a00162_html_gaf97ebc6c059ffd788e6c4946f71ef66c"><div class="ttname"><a href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">glm::ln_ten</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten()</div><div class="ttdoc">Return ln(10). </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00162_html_ga3077c6311010a214b69ddc8214ec13b5"><div class="ttname"><a href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">glm::third</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType third()</div><div class="ttdoc">Return 1 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga24f4d27765678116f41a2f336ab7975c"><div class="ttname"><a href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">glm::ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two()</div><div class="ttdoc">Return ln(2). </div></div>
+<div class="ttc" id="a00162_html_ga788fa23a0939bac4d1d0205fb4f35818"><div class="ttname"><a href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">glm::one_over_root_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two()</div><div class="ttdoc">Return 1 / sqrt(2). </div></div>
+<div class="ttc" id="a00162_html_gaca94292c839ed31a405ab7a81ae7e850"><div class="ttname"><a href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">glm::ln_ln_two</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two()</div><div class="ttdoc">Return ln(ln(2)). </div></div>
+<div class="ttc" id="a00162_html_gae94950df74b0ce382b1fc1d978ef7394"><div class="ttname"><a href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">glm::three_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi()</div><div class="ttdoc">Return pi / 2 * 3. </div></div>
+<div class="ttc" id="a00162_html_ga0c36b41d462e45641faf7d7938948bac"><div class="ttname"><a href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">glm::half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()</div><div class="ttdoc">Return pi / 2. </div></div>
+<div class="ttc" id="a00162_html_ga7c922b427986cbb2e4c6ac69874eefbc"><div class="ttname"><a href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">glm::one_over_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi()</div><div class="ttdoc">Return 1 / (pi * 2). </div></div>
+<div class="ttc" id="a00162_html_gae9ebbded75b53d4faeb1e4ef8b3347a2"><div class="ttname"><a href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">glm::root_five</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_five()</div><div class="ttdoc">Return sqrt(5). </div></div>
+<div class="ttc" id="a00162_html_ga4e276cb823cc5e612d4f89ed99c75039"><div class="ttname"><a href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">glm::root_half_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi()</div><div class="ttdoc">Return sqrt(pi / 2). </div></div>
+<div class="ttc" id="a00162_html_ga2bcedc575039fe0cd765742f8bbb0bd3"><div class="ttname"><a href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">glm::root_two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi()</div><div class="ttdoc">Return sqrt(2 * pi). </div></div>
+<div class="ttc" id="a00162_html_ga753950e5140e4ea6a88e4a18ba61dc09"><div class="ttname"><a href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">glm::four_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi()</div><div class="ttdoc">Return 4 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga4129412e96b33707a77c1a07652e23e2"><div class="ttname"><a href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">glm::root_ln_four</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four()</div><div class="ttdoc">Return sqrt(ln(4)). </div></div>
+<div class="ttc" id="a00162_html_ga555150da2b06d23c8738981d5013e0eb"><div class="ttname"><a href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">glm::one_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi()</div><div class="ttdoc">Return 1 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga9b4d2f4322edcf63a6737b92a29dd1f5"><div class="ttname"><a href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">glm::two_thirds</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds()</div><div class="ttdoc">Return 2 / 3. </div></div>
+<div class="ttc" id="a00162_html_ga3c9df42bd73c519a995c43f0f99e77e0"><div class="ttname"><a href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">glm::quarter_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi()</div><div class="ttdoc">Return pi / 4. </div></div>
+<div class="ttc" id="a00162_html_ga94bafeb2a0f23ab6450fed1f98ee4e45"><div class="ttname"><a href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
+<div class="ttc" id="a00162_html_ga74eadc8a211253079683219a3ea0462a"><div class="ttname"><a href="a00162.html#ga74eadc8a211253079683219a3ea0462a">glm::two_over_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi()</div><div class="ttdoc">Return 2 / pi. </div></div>
+<div class="ttc" id="a00162_html_ga748cf8642830657c5b7eae04d0a80899"><div class="ttname"><a href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">glm::golden_ratio</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio()</div><div class="ttdoc">Return the golden ratio constant. </div></div>
+<div class="ttc" id="a00162_html_gaa5276a4617566abcfe49286f40e3a256"><div class="ttname"><a href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">glm::two_pi</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()</div><div class="ttdoc">Return pi * 2. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00019.html b/doc/api/a00019.html
index 2e7e60a..07d7a1b 100644
--- a/doc/api/a00019.html
+++ b/doc/api/a00019.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: dual_quaternion.hpp File Reference</title>
+<title>0.9.8: dual_quaternion.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,71 +57,65 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
+<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
+<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
+<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
+<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
+<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
+<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
+<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
+<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
+<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
+<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
+<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
+<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4< T, P > const &x)</td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4< T, P > const &x)</td></tr>
<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4< T, P > const &x)</td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4< T, P > const &x)</td></tr>
<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat< T, P > const &q)</td></tr>
<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</td></tr>
<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat< T, P > const &q)</td></tr>
<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00193.html">GLM_GTX_dual_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-10 / 2013-02-20 </dd></dl>
+<div class="textblock"><p><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> </p>
<dl class="section author"><dt>Author</dt><dd>Maksim Vorobiev (<a href="#" onclick="location.href='mai'+'lto:'+'mso'+'me'+'one'+'@g'+'mai'+'l.'+'com'; return false;">msome<span style="display: none;">.nosp at m.</span>one@<span style="display: none;">.nosp at m.</span>gmail<span style="display: none;">.nosp at m.</span>.com</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd>
<dd>
-<a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd>
+<a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd>
<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00019_source.html b/doc/api/a00019_source.html
index fcc5e32..9e03752 100644
--- a/doc/api/a00019_source.html
+++ b/doc/api/a00019_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: dual_quaternion.hpp Source File</title>
+<title>0.9.8: dual_quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,218 +50,216 @@
</div><!--header-->
<div class="contents">
<a href="a00019.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_dual_quaternion extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">struct </span>tdualquat</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> glm::tquat<T, P> part_type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> glm::tquat<T, P> real, dual;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// -- Component accesses --</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_dual_quaternion extension included")</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL part_type & operator[](length_type i);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL part_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// -- Implicit basic constructors --</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> template <precision Q></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const & d);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">struct </span>tdualquat</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> glm::tquat<T, P> part_type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tdualquat(ctor);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> const & translation);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4<T, P> const & holder_mat);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4<T, P> const & aug_mat);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> glm::tquat<T, P> real, dual;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<T, P> const & m) GLM_DEFAULT;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL part_type & operator[](size_type i);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL part_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL part_type & operator[](length_type i);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL part_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> template <typename U></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<U, P> const & m);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> template <typename U></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL tdualquat<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> template <typename U></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tdualquat<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> };</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> template <typename T, precision P></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename T, precision P></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tdualquat<T, P> operator-(tdualquat<T, P> const & q);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tdualquat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <precision Q></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tdualquat(tdualquat<T, Q> const & d);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL explicit tdualquat(ctor);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tdualquat(tquat<T, P> const & real);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tdualquat(tquat<T, P> const & <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> const & translation);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename T, precision P></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename T, precision P></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> template <typename T, precision P></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL tvec3<T, P> operator*(tdualquat<T, P> const & q, tvec3<T, P> const & v);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> template <typename T, precision P></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tdualquat<T, P> const & q);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL explicit tdualquat(tmat2x4<T, P> const & holder_mat);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL explicit tdualquat(tmat3x4<T, P> const & aug_mat);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> template <typename T, precision P></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tvec4<T, P> operator*(tdualquat<T, P> const & q, tvec4<T, P> const & v);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> template <typename T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> template <typename T, precision P></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, T const & s);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> template <typename T, precision P></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tdualquat<T, P> operator*(T const & s, tdualquat<T, P> const & q);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename U></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tdualquat<T, P> & operator=(tdualquat<U, P> const & m);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> template <typename U></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tdualquat<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> template <typename U></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL tdualquat<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tdualquat<T, P> operator/(tdualquat<T, P> const & q, T const & s);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> template <typename T, precision P></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> const & q);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename T, precision P></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tdualquat<T, P> operator+(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename T, precision P></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, tdualquat<T, P> const & p);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <typename T, precision P></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tvec3<T, P> operator*(tquat<T, P> const & q, tvec3<T, P> const & v);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename T, precision P></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tquat<T, P> const & q);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> template <typename T, precision P></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tvec4<T, P> operator*(tquat<T, P> const & q, tvec4<T, P> const & v);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> template <typename T, precision P></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> const & v, tquat<T, P> const & q);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> template <typename T, precision P></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tdualquat<T, P> operator*(tdualquat<T, P> const & q, T const & s);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> template <typename T, precision P></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tdualquat<T, P> operator*(T const & s, tdualquat<T, P> const & q);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> template <typename T, precision P></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tdualquat<T, P> operator/(tdualquat<T, P> const & q, T const & s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> template <typename T, precision P></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a>(tdualquat<T, P> const & q);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> template <typename T, precision P></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a>(tdualquat<T, P> const & x, tdualquat<T, P> const & y, T const & a);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tdualquat<T, P> const & q1, tdualquat<T, P> const & q2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a>(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a>(tdualquat<T, P> const & x, tdualquat<T, P> const & y, T const & a);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a>(tdualquat<T, P> const & q);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat2x4<T, P> <a class="code" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a>(tdualquat<T, P> const & x);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat3x4<T, P> <a class="code" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a>(tdualquat<T, P> const & x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> template <typename T, precision P></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> template <typename T, precision P></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a>(tdualquat<T, P> const & q);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> template <typename T, precision P></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tmat2x4<T, P> <a class="code" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a>(tdualquat<T, P> const & x);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> template <typename T, precision P></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tmat3x4<T, P> <a class="code" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a>(tdualquat<T, P> const & x);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> template <typename T, precision P></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> template <typename T, precision P></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL tdualquat<T, P> <a class="code" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a>(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa"> 179</a></span> typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad"> 184</a></span> typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf"> 189</a></span> typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860"> 195</a></span> typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431"> 200</a></span> typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564"> 205</a></span> typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa"> 210</a></span> typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a>;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad"> 215</a></span> typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf"> 220</a></span> typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a>;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a"> 211</a></span> typedef tdualquat<<span class="keywordtype">double</span>, lowp> <a class="code" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4"> 216</a></span> typedef tdualquat<<span class="keywordtype">double</span>, mediump> <a class="code" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a"> 221</a></span> typedef tdualquat<<span class="keywordtype">double</span>, highp> <a class="code" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a>;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860"> 226</a></span> typedef tdualquat<<span class="keywordtype">float</span>, lowp> <a class="code" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431"> 231</a></span> typedef tdualquat<<span class="keywordtype">float</span>, mediump> <a class="code" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a>;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564"> 236</a></span> typedef tdualquat<<span class="keywordtype">float</span>, highp> <a class="code" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a>;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a"> 242</a></span> typedef tdualquat<<span class="keywordtype">double</span>, lowp> <a class="code" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4"> 247</a></span> typedef tdualquat<<span class="keywordtype">double</span>, mediump> <a class="code" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a>;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a"> 252</a></span> typedef tdualquat<<span class="keywordtype">double</span>, highp> <a class="code" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a>;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930"> 264</a></span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for single-precision floating-point types"</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">typedef</span> mediump_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">typedef</span> lowp_ddualquat <a class="code" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># error "GLM error: Multiple default precision requested for double-precision floating-point types"</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor">#include "dual_quaternion.inl"</span></div>
-<div class="ttc" id="a00193_html_ga20eb5758beb73cc6dbc2d9104f03ec20"><div class="ttname"><a href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">glm::dualquat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > dualquat_cast(tmat3x4< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </div></div>
-<div class="ttc" id="a00193_html_gab4c5103338af3dac7e0fbc86895a3f1a"><div class="ttname"><a href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">glm::lowp_ddualquat</a></div><div class="ttdeci">tdualquat< double, lowp > lowp_ddualquat</div><div class="ttdoc">Dual-quaternion of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00242">dual_quaternion.hpp:242</a></div></div>
-<div class="ttc" id="a00193_html_ga495818aa48c23e9e730f87a3c337d1d5"><div class="ttname"><a href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > normalize(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
-<div class="ttc" id="a00193_html_ga9ef5bf1da52a9d4932335a517086ceaf"><div class="ttname"><a href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">glm::highp_dualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_dualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00220">dual_quaternion.hpp:220</a></div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00193_html_ga4a6b594ff7e81150d8143001367a9431"><div class="ttname"><a href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">glm::mediump_fdualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_fdualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00231">dual_quaternion.hpp:231</a></div></div>
-<div class="ttc" id="a00193_html_ga237c2b9b42c9a930e49de5840ae0f930"><div class="ttname"><a href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">glm::fdualquat</a></div><div class="ttdeci">highp_fdualquat fdualquat</div><div class="ttdoc">Dual-quaternion of single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00264">dual_quaternion.hpp:264</a></div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00193_html_gade05d29ebd4deea0f883d0e1bb4169aa"><div class="ttname"><a href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">glm::lowp_dualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_dualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00210">dual_quaternion.hpp:210</a></div></div>
-<div class="ttc" id="a00193_html_ga8039b88397ca09275be924a26a806a59"><div class="ttname"><a href="a00193.html#ga8039b88397ca09275be924a26a806a59">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > lerp(tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</div><div class="ttdoc">Returns the linear interpolation of two dual quaternion. </div></div>
-<div class="ttc" id="a00193_html_ga2d124748183e12db8288eeaca350298e"><div class="ttname"><a href="a00193.html#ga2d124748183e12db8288eeaca350298e">glm::mat2x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 2 * 4 matrix. </div></div>
-<div class="ttc" id="a00193_html_ga3d71f98d84ba59dfe4e369fde4714cd6"><div class="ttname"><a href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">glm::ddualquat</a></div><div class="ttdeci">highp_ddualquat ddualquat</div><div class="ttdoc">Dual-quaternion of default double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00283">dual_quaternion.hpp:283</a></div></div>
-<div class="ttc" id="a00193_html_ga8f67eafa7197d7a668dad5105a463d2a"><div class="ttname"><a href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">glm::highp_ddualquat</a></div><div class="ttdeci">tdualquat< double, highp > highp_ddualquat</div><div class="ttdoc">Dual-quaternion of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00252">dual_quaternion.hpp:252</a></div></div>
-<div class="ttc" id="a00193_html_ga4c4e55e9c99dc57b299ed590968da564"><div class="ttname"><a href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">glm::highp_fdualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_fdualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00236">dual_quaternion.hpp:236</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00193_html_ga2149d3cb8af04d9530de0cd16aa1aab2"><div class="ttname"><a href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > inverse(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the q inverse. </div></div>
-<div class="ttc" id="a00193_html_gaa7aeb54c167712b38f2178a1be2360ad"><div class="ttname"><a href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">glm::mediump_dualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_dualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00215">dual_quaternion.hpp:215</a></div></div>
-<div class="ttc" id="a00193_html_ga0fb11e48e2d16348ccb06a25213641b4"><div class="ttname"><a href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">glm::mediump_ddualquat</a></div><div class="ttdeci">tdualquat< double, mediump > mediump_ddualquat</div><div class="ttdoc">Dual-quaternion of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00247">dual_quaternion.hpp:247</a></div></div>
-<div class="ttc" id="a00193_html_ga576745d979e3c079a64152490c816954"><div class="ttname"><a href="a00193.html#ga576745d979e3c079a64152490c816954">glm::mat3x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 4 matrix. </div></div>
-<div class="ttc" id="a00193_html_gaa38f671be25a7f3b136a452a8bb42860"><div class="ttname"><a href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">glm::lowp_fdualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_fdualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00226">dual_quaternion.hpp:226</a></div></div>
-<div class="ttc" id="a00193_html_gae93abee0c979902fbec6a7bee0f6fae1"><div class="ttname"><a href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">glm::dualquat</a></div><div class="ttdeci">highp_fdualquat dualquat</div><div class="ttdoc">Dual-quaternion of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00259">dual_quaternion.hpp:259</a></div></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930"> 233</a></span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">typedef</span> highp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">typedef</span> mediump_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">typedef</span> lowp_fdualquat <a class="code" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for single-precision floating-point types"</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">typedef</span> highp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">typedef</span> mediump_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">typedef</span> lowp_ddualquat <a class="code" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a>;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># error "GLM error: Multiple default precision requested for double-precision floating-point types"</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor">#include "dual_quaternion.inl"</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00189_html_gaa38f671be25a7f3b136a452a8bb42860"><div class="ttname"><a href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">glm::lowp_fdualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_fdualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00195">dual_quaternion.hpp:195</a></div></div>
+<div class="ttc" id="a00189_html_ga20eb5758beb73cc6dbc2d9104f03ec20"><div class="ttname"><a href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">glm::dualquat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > dualquat_cast(tmat3x4< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga237c2b9b42c9a930e49de5840ae0f930"><div class="ttname"><a href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">glm::fdualquat</a></div><div class="ttdeci">highp_fdualquat fdualquat</div><div class="ttdoc">Dual-quaternion of single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00233">dual_quaternion.hpp:233</a></div></div>
+<div class="ttc" id="a00189_html_ga0fb11e48e2d16348ccb06a25213641b4"><div class="ttname"><a href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">glm::mediump_ddualquat</a></div><div class="ttdeci">tdualquat< double, mediump > mediump_ddualquat</div><div class="ttdoc">Dual-quaternion of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00216">dual_quaternion.hpp:216</a></div></div>
+<div class="ttc" id="a00189_html_ga495818aa48c23e9e730f87a3c337d1d5"><div class="ttname"><a href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > normalize(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga4a6b594ff7e81150d8143001367a9431"><div class="ttname"><a href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">glm::mediump_fdualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_fdualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00200">dual_quaternion.hpp:200</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00189_html_gab4c5103338af3dac7e0fbc86895a3f1a"><div class="ttname"><a href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">glm::lowp_ddualquat</a></div><div class="ttdeci">tdualquat< double, lowp > lowp_ddualquat</div><div class="ttdoc">Dual-quaternion of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00211">dual_quaternion.hpp:211</a></div></div>
+<div class="ttc" id="a00189_html_ga3d71f98d84ba59dfe4e369fde4714cd6"><div class="ttname"><a href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">glm::ddualquat</a></div><div class="ttdeci">highp_ddualquat ddualquat</div><div class="ttdoc">Dual-quaternion of default double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00252">dual_quaternion.hpp:252</a></div></div>
+<div class="ttc" id="a00189_html_gae93abee0c979902fbec6a7bee0f6fae1"><div class="ttname"><a href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">glm::dualquat</a></div><div class="ttdeci">highp_fdualquat dualquat</div><div class="ttdoc">Dual-quaternion of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00228">dual_quaternion.hpp:228</a></div></div>
+<div class="ttc" id="a00189_html_ga4c4e55e9c99dc57b299ed590968da564"><div class="ttname"><a href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">glm::highp_fdualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_fdualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00205">dual_quaternion.hpp:205</a></div></div>
+<div class="ttc" id="a00189_html_gaa7aeb54c167712b38f2178a1be2360ad"><div class="ttname"><a href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">glm::mediump_dualquat</a></div><div class="ttdeci">tdualquat< float, mediump > mediump_dualquat</div><div class="ttdoc">Dual-quaternion of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00184">dual_quaternion.hpp:184</a></div></div>
+<div class="ttc" id="a00189_html_ga8039b88397ca09275be924a26a806a59"><div class="ttname"><a href="a00189.html#ga8039b88397ca09275be924a26a806a59">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > lerp(tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</div><div class="ttdoc">Returns the linear interpolation of two dual quaternion. </div></div>
+<div class="ttc" id="a00189_html_ga576745d979e3c079a64152490c816954"><div class="ttname"><a href="a00189.html#ga576745d979e3c079a64152490c816954">glm::mat3x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, P > mat3x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 4 matrix. </div></div>
+<div class="ttc" id="a00189_html_ga9ef5bf1da52a9d4932335a517086ceaf"><div class="ttname"><a href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">glm::highp_dualquat</a></div><div class="ttdeci">tdualquat< float, highp > highp_dualquat</div><div class="ttdoc">Dual-quaternion of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00189">dual_quaternion.hpp:189</a></div></div>
+<div class="ttc" id="a00189_html_ga2d124748183e12db8288eeaca350298e"><div class="ttname"><a href="a00189.html#ga2d124748183e12db8288eeaca350298e">glm::mat2x4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, P > mat2x4_cast(tdualquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 2 * 4 matrix. </div></div>
+<div class="ttc" id="a00189_html_gade05d29ebd4deea0f883d0e1bb4169aa"><div class="ttname"><a href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">glm::lowp_dualquat</a></div><div class="ttdeci">tdualquat< float, lowp > lowp_dualquat</div><div class="ttdoc">Dual-quaternion of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00179">dual_quaternion.hpp:179</a></div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00189_html_ga2149d3cb8af04d9530de0cd16aa1aab2"><div class="ttname"><a href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tdualquat< T, P > inverse(tdualquat< T, P > const &q)</div><div class="ttdoc">Returns the q inverse. </div></div>
+<div class="ttc" id="a00189_html_ga8f67eafa7197d7a668dad5105a463d2a"><div class="ttname"><a href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">glm::highp_ddualquat</a></div><div class="ttdeci">tdualquat< double, highp > highp_ddualquat</div><div class="ttdoc">Dual-quaternion of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00019_source.html#l00221">dual_quaternion.hpp:221</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00020.html b/doc/api/a00020.html
index 9972355..351c770 100644
--- a/doc/api/a00020.html
+++ b/doc/api/a00020.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: epsilon.hpp File Reference</title>
+<title>0.9.8: epsilon.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,32 +57,25 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)</td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)</td></tr>
<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &x, genType const &y, typename genType::value_type const &epsilon)</td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &x, genType const &y, typename genType::value_type const &epsilon)</td></tr>
<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00169.html">GLM_GTC_epsilon</a></p>
-<dl class="section date"><dt>Date</dt><dd>2012-04-07 / 2012-04-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00163.html">GLM_GTC_epsilon</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd>
<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00020_source.html">epsilon.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00020_source.html b/doc/api/a00020_source.html
index 423bb84..9444656 100644
--- a/doc/api/a00020_source.html
+++ b/doc/api/a00020_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: epsilon.hpp Source File</title>
+<title>0.9.8: epsilon.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,50 +50,50 @@
</div><!--header-->
<div class="contents">
<a href="a00020.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_epsilon extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> vecType<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> genType <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_epsilon extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> genType <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> genType <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> genType <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::boolType <a class="code" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> genType <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> genType <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> genType <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> genType <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> genType <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "epsilon.inl"</span></div>
-<div class="ttc" id="a00169_html_ga50a92103fb0cbd796908e1bf20c79aaf"><div class="ttname"><a href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">glm::epsilonNotEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| >= epsilon. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00169_html_gaa7f227999ca09e7ca994e8b35aba47bb"><div class="ttname"><a href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">glm::epsilonEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| < epsilon. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::boolType <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a>(</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> genType <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> genType <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "epsilon.inl"</span></div>
+<div class="ttc" id="a00163_html_ga50a92103fb0cbd796908e1bf20c79aaf"><div class="ttname"><a href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">glm::epsilonNotEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| >= epsilon. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00163_html_gaa7f227999ca09e7ca994e8b35aba47bb"><div class="ttname"><a href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">glm::epsilonEqual</a></div><div class="ttdeci">GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)</div><div class="ttdoc">Returns the component-wise comparison of |x - y| < epsilon. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00021.html b/doc/api/a00021.html
index b690e8d..cc8303b 100644
--- a/doc/api/a00021.html
+++ b/doc/api/a00021.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: euler_angles.hpp File Reference</title>
+<title>0.9.8: euler_angles.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,67 +57,60 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &angleX)</td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &angleX)</td></tr>
<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &angleX, T const &angleY)</td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &angleX, T const &angleY)</td></tr>
<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &t1, T const &t2, T const &t3)</td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &t1, T const &t2, T const &t3)</td></tr>
<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &angleX, T const &angleZ)</td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &angleX, T const &angleZ)</td></tr>
<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &angleY)</td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &angleY)</td></tr>
<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &angleY, T const &angleX)</td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &angleY, T const &angleX)</td></tr>
<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &angleY, T const &angleZ)</td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &angleY, T const &angleZ)</td></tr>
<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &angleZ)</td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &angleZ)</td></tr>
<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &angle, T const &angleX)</td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &angle, T const &angleX)</td></tr>
<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &angleZ, T const &angleY)</td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &angleZ, T const &angleY)</td></tr>
<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a> (tmat4x4< T, defaultp > &M, T &t1, T &t2, T &t3)</td></tr>
-<tr class="separator:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a> (tmat4x4< T, defaultp > const &M, T &t1, T &t2, T &t3)</td></tr>
+<tr class="separator:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &angle)</td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &angle)</td></tr>
<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &angle)</td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &angle)</td></tr>
<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3< T, P > const &angles)</td></tr>
<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3< T, P > const &angles)</td></tr>
<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00194.html">GLM_GTX_euler_angles</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00021_source.html b/doc/api/a00021_source.html
index 96ff6eb..8436efb 100644
--- a/doc/api/a00021_source.html
+++ b/doc/api/a00021_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: euler_angles.hpp Source File</title>
+<title>0.9.8: euler_angles.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,120 +50,120 @@
</div><!--header-->
<div class="contents">
<a href="a00021.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_euler_angles extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> T <span class="keyword">const</span> & angleX);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> T <span class="keyword">const</span> & angleY);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> T <span class="keyword">const</span> & angleZ);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> T <span class="keyword">const</span> & angleX,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> T <span class="keyword">const</span> & angleY);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T <span class="keyword">const</span> & angleY,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> T <span class="keyword">const</span> & angleX);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a>(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> T <span class="keyword">const</span> & angleX,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> T <span class="keyword">const</span> & angleZ);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_euler_angles extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> T <span class="keyword">const</span> & angleX,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> T <span class="keyword">const</span> & angleY,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a>(</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> T <span class="keyword">const</span> & angleX,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> T <span class="keyword">const</span> & angleX);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T <span class="keyword">const</span> & angleY,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> T <span class="keyword">const</span> & angleZ);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a>(</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T <span class="keyword">const</span> & angleZ,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a>(</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> T <span class="keyword">const</span> & t1,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> T <span class="keyword">const</span> & t2,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> T <span class="keyword">const</span> & t3);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a>(</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> T <span class="keyword">const</span> & angleX);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> T <span class="keyword">const</span> & angleY,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> T <span class="keyword">const</span> & angleZ);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a>(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> T <span class="keyword">const</span> & angleZ,</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> T <span class="keyword">const</span> & angleY);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a>(</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a>(T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a>(</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> T <span class="keyword">const</span> & t1,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> T <span class="keyword">const</span> & t2,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> T <span class="keyword">const</span> & t3);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a>(</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>,</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>,</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a>(T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a>(tmat4x4<T, defaultp> & M,</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> T & t1,</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> T & t2,</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> T & t3);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#include "euler_angles.inl"</span></div>
-<div class="ttc" id="a00194_html_gaef83cf40bd9ae780011b29970f16f622"><div class="ttname"><a href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">glm::eulerAngleZX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </div></div>
-<div class="ttc" id="a00177_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat< T, P > const &x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00194_html_ga4e25c9468b6f002c76e9a2412bcfa503"><div class="ttname"><a href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">glm::orientate4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientate4(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga1033f84f51d61646145352ef0c1bb58c"><div class="ttname"><a href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">glm::eulerAngleYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </div></div>
-<div class="ttc" id="a00194_html_gafdd02f9a37511190962119adef5c1c25"><div class="ttname"><a href="a00194.html#gafdd02f9a37511190962119adef5c1c25">glm::eulerAngleYX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </div></div>
-<div class="ttc" id="a00194_html_ga77ab6440250bd8b7e87a06c5643d6e74"><div class="ttname"><a href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">glm::extractEulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4< T, defaultp > &M, T &t1, T &t2, T &t3)</div><div class="ttdoc">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </div></div>
-<div class="ttc" id="a00194_html_ga8bf84f92ca976a7f50dbe4b30ceb72dd"><div class="ttname"><a href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">glm::eulerAngleXY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </div></div>
-<div class="ttc" id="a00194_html_ga02f037926568bbd12dfece3b28b20343"><div class="ttname"><a href="a00194.html#ga02f037926568bbd12dfece3b28b20343">glm::eulerAngleZY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </div></div>
-<div class="ttc" id="a00194_html_ga33f0d790cecd8337ee83f8e3a8109b11"><div class="ttname"><a href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">glm::orientate3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > orientate3(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga6f465681cbbc575ad93a53ec918dacf3"><div class="ttname"><a href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">glm::orientate2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > orientate2(T const &angle)</div><div class="ttdoc">Creates a 2D 2 * 2 rotation matrix from an euler angle. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00194_html_gab59c4fe7f735568255cc19fddd3ddfcd"><div class="ttname"><a href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">glm::eulerAngleZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </div></div>
-<div class="ttc" id="a00194_html_gaf9c8d0f1df88c5344165600774489bc5"><div class="ttname"><a href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">glm::yawPitchRoll</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00194_html_ga82cd3b8a04943f1a0d1a562aff358dc8"><div class="ttname"><a href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">glm::eulerAngleX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleX(T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00194_html_gab2d7dc94b9a7519d741aaa208c7a335b"><div class="ttname"><a href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">glm::eulerAngleXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </div></div>
-<div class="ttc" id="a00177_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat< T, P > const &x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00194_html_gaeb193af1184bdf39c23636d756e1ff33"><div class="ttname"><a href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">glm::eulerAngleY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleY(T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </div></div>
-<div class="ttc" id="a00194_html_gaaedda1657a1aebe0a904d864b33844e8"><div class="ttname"><a href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">glm::eulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </div></div>
-<div class="ttc" id="a00194_html_ga0242b5ab68651db70c6025815549427f"><div class="ttname"><a href="a00194.html#ga0242b5ab68651db70c6025815549427f">glm::eulerAngleYXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
-<div class="ttc" id="a00177_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat< T, P > const &x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a>(tvec3<T, P> <span class="keyword">const</span> & angles);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a>(tmat4x4<T, defaultp> <span class="keyword">const</span> & M,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> T & t1,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T & t2,</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> T & t3);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#include "euler_angles.inl"</span></div>
+<div class="ttc" id="a00172_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat< T, P > const &x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga82cd3b8a04943f1a0d1a562aff358dc8"><div class="ttname"><a href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">glm::eulerAngleX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleX(T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </div></div>
+<div class="ttc" id="a00190_html_gab2d7dc94b9a7519d741aaa208c7a335b"><div class="ttname"><a href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">glm::eulerAngleXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga1033f84f51d61646145352ef0c1bb58c"><div class="ttname"><a href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">glm::eulerAngleYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </div></div>
+<div class="ttc" id="a00172_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat< T, P > const &x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_gaf9c8d0f1df88c5344165600774489bc5"><div class="ttname"><a href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">glm::yawPitchRoll</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaaedda1657a1aebe0a904d864b33844e8"><div class="ttname"><a href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">glm::eulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00190_html_ga0242b5ab68651db70c6025815549427f"><div class="ttname"><a href="a00190.html#ga0242b5ab68651db70c6025815549427f">glm::eulerAngleYXZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gaeb193af1184bdf39c23636d756e1ff33"><div class="ttname"><a href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">glm::eulerAngleY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleY(T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </div></div>
+<div class="ttc" id="a00190_html_ga02f037926568bbd12dfece3b28b20343"><div class="ttname"><a href="a00190.html#ga02f037926568bbd12dfece3b28b20343">glm::eulerAngleZY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </div></div>
+<div class="ttc" id="a00190_html_gaef83cf40bd9ae780011b29970f16f622"><div class="ttname"><a href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">glm::eulerAngleZX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZX(T const &angle, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </div></div>
+<div class="ttc" id="a00190_html_ga4e25c9468b6f002c76e9a2412bcfa503"><div class="ttname"><a href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">glm::orientate4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientate4(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_gab59c4fe7f735568255cc19fddd3ddfcd"><div class="ttname"><a href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">glm::eulerAngleZ</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleZ(T const &angleZ)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00190_html_gafdd02f9a37511190962119adef5c1c25"><div class="ttname"><a href="a00190.html#gafdd02f9a37511190962119adef5c1c25">glm::eulerAngleYX</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </div></div>
+<div class="ttc" id="a00190_html_ga33f0d790cecd8337ee83f8e3a8109b11"><div class="ttname"><a href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">glm::orientate3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > orientate3(tvec3< T, P > const &angles)</div><div class="ttdoc">Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </div></div>
+<div class="ttc" id="a00190_html_ga8bf84f92ca976a7f50dbe4b30ceb72dd"><div class="ttname"><a href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">glm::eulerAngleXY</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)</div><div class="ttdoc">Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </div></div>
+<div class="ttc" id="a00190_html_gad5838a4c87ce2b8ee4c4e17bd162fd14"><div class="ttname"><a href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">glm::extractEulerAngleXYZ</a></div><div class="ttdeci">GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4< T, defaultp > const &M, T &t1, T &t2, T &t3)</div><div class="ttdoc">Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </div></div>
+<div class="ttc" id="a00172_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat< T, P > const &x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00190_html_ga6f465681cbbc575ad93a53ec918dacf3"><div class="ttname"><a href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">glm::orientate2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > orientate2(T const &angle)</div><div class="ttdoc">Creates a 2D 2 * 2 rotation matrix from an euler angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00022.html b/doc/api/a00022.html
index d4fca8e..1a875f0 100644
--- a/doc/api/a00022.html
+++ b/doc/api/a00022.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: exponential.hpp File Reference</title>
+<title>0.9.8: exponential.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00022_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00022_source.html">exponential.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00022_source.html b/doc/api/a00022_source.html
index 7f9c7c3..ecad960 100644
--- a/doc/api/a00022_source.html
+++ b/doc/api/a00022_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: exponential.hpp Source File</title>
+<title>0.9.8: exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,10 +50,10 @@
</div><!--header-->
<div class="contents">
<a href="a00022.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00030.html">detail/func_exponential.hpp</a>"</span></div>
-<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00030.html">detail/func_exponential.hpp</a>"</span></div>
+<div class="ttc" id="a00030_html"><div class="ttname"><a href="a00030.html">func_exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00141_source.html b/doc/api/a00023.html
similarity index 71%
rename from doc/api/a00141_source.html
rename to doc/api/a00023.html
index 9a74293..d873328 100644
--- a/doc/api/a00141_source.html
+++ b/doc/api/a00023.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec4.hpp Source File</title>
+<title>0.9.8: ext.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,15 +46,16 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec4.hpp</div> </div>
+<div class="title">ext.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00141.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">detail/type_vec4.hpp</a>"</span></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-</div><!-- fragment --></div><!-- contents -->
+
+<p><a href="a00023_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> (Dependence) </p>
+
+<p>Definition in file <a class="el" href="a00023_source.html">ext.hpp</a>.</p>
+</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">
diff --git a/doc/api/a00023_source.html b/doc/api/a00023_source.html
index 43858df..6638219 100644
--- a/doc/api/a00023_source.html
+++ b/doc/api/a00023_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ext.hpp Source File</title>
+<title>0.9.8: ext.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -49,162 +49,165 @@
<div class="title">ext.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># pragma message("GLM: All extensions included (not recommanded)")</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "<a class="code" href="a00009.html">./gtc/bitfield.hpp</a>"</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "<a class="code" href="a00018.html">./gtc/constants.hpp</a>"</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "<a class="code" href="a00020.html">./gtc/epsilon.hpp</a>"</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "<a class="code" href="a00044.html">./gtc/integer.hpp</a>"</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "<a class="code" href="a00068.html">./gtc/matrix_access.hpp</a>"</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="a00071.html">./gtc/matrix_integer.hpp</a>"</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="a00073.html">./gtc/matrix_inverse.hpp</a>"</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="a00077.html">./gtc/matrix_transform.hpp</a>"</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "<a class="code" href="a00080.html">./gtc/noise.hpp</a>"</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="a00087.html">./gtc/packing.hpp</a>"</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "<a class="code" href="a00094.html">./gtc/quaternion.hpp</a>"</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="a00096.html">./gtc/random.hpp</a>"</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="a00099.html">./gtc/reciprocal.hpp</a>"</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "<a class="code" href="a00102.html">./gtc/round.hpp</a>"</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">./gtc/type_precision.hpp</a>"</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">./gtc/type_ptr.hpp</a>"</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#include "<a class="code" href="a00137.html">./gtc/ulp.hpp</a>"</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00138.html">./gtc/vec1.hpp</a>"</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include "<a class="code" href="a00007.html">./gtx/associated_min_max.hpp</a>"</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="a00008.html">./gtx/bit.hpp</a>"</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "<a class="code" href="a00010.html">./gtx/closest_point.hpp</a>"</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="a00012.html">./gtx/color_space.hpp</a>"</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "<a class="code" href="a00013.html">./gtx/color_space_YCoCg.hpp</a>"</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="a00016.html">./gtx/compatibility.hpp</a>"</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "<a class="code" href="a00017.html">./gtx/component_wise.hpp</a>"</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "<a class="code" href="a00019.html">./gtx/dual_quaternion.hpp</a>"</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "<a class="code" href="a00021.html">./gtx/euler_angles.hpp</a>"</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "<a class="code" href="a00024.html">./gtx/extend.hpp</a>"</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#include "<a class="code" href="a00025.html">./gtx/extented_min_max.hpp</a>"</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#include "<a class="code" href="a00026.html">./gtx/fast_exponential.hpp</a>"</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#include "<a class="code" href="a00027.html">./gtx/fast_square_root.hpp</a>"</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#include "<a class="code" href="a00028.html">./gtx/fast_trigonometry.hpp</a>"</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "<a class="code" href="a00041.html">./gtx/gradient_paint.hpp</a>"</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#include "<a class="code" href="a00042.html">./gtx/handed_coordinate_space.hpp</a>"</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#include "<a class="code" href="a00045.html">./gtx/integer.hpp</a>"</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#include "<a class="code" href="a00047.html">./gtx/intersect.hpp</a>"</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#include "<a class="code" href="a00056.html">./gtx/log_base.hpp</a>"</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "<a class="code" href="a00069.html">./gtx/matrix_cross_product.hpp</a>"</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#include "<a class="code" href="a00072.html">./gtx/matrix_interpolation.hpp</a>"</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#include "<a class="code" href="a00074.html">./gtx/matrix_major_storage.hpp</a>"</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#include "<a class="code" href="a00075.html">./gtx/matrix_operation.hpp</a>"</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#include "<a class="code" href="a00076.html">./gtx/matrix_query.hpp</a>"</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "<a class="code" href="a00079.html">./gtx/mixed_product.hpp</a>"</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#include "<a class="code" href="a00081.html">./gtx/norm.hpp</a>"</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#include "<a class="code" href="a00082.html">./gtx/normal.hpp</a>"</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#include "<a class="code" href="a00083.html">./gtx/normalize_dot.hpp</a>"</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#include "<a class="code" href="a00084.html">./gtx/number_precision.hpp</a>"</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">./gtx/optimum_pow.hpp</a>"</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#include "<a class="code" href="a00086.html">./gtx/orthonormalize.hpp</a>"</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#include "<a class="code" href="a00090.html">./gtx/perpendicular.hpp</a>"</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#include "<a class="code" href="a00091.html">./gtx/polar_coordinates.hpp</a>"</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#include "<a class="code" href="a00093.html">./gtx/projection.hpp</a>"</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include "<a class="code" href="a00095.html">./gtx/quaternion.hpp</a>"</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">./gtx/raw_data.hpp</a>"</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#include "<a class="code" href="a00101.html">./gtx/rotate_vector.hpp</a>"</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#include "<a class="code" href="a00109.html">./gtx/spline.hpp</a>"</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#include "<a class="code" href="a00110.html">./gtx/std_based_type.hpp</a>"</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#if !(GLM_COMPILER & GLM_COMPILER_CUDA)</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"># include "<a class="code" href="a00111.html">./gtx/string_cast.hpp</a>"</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#include "<a class="code" href="a00112.html">./gtx/transform.hpp</a>"</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">./gtx/transform2.hpp</a>"</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#include "<a class="code" href="a00115.html">./gtx/type_aligned.hpp</a>"</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#include "<a class="code" href="a00142.html">./gtx/vector_angle.hpp</a>"</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#include "<a class="code" href="a00143.html">./gtx/vector_query.hpp</a>"</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#include "<a class="code" href="a00145.html">./gtx/wrap.hpp</a>"</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#if GLM_HAS_TEMPLATE_ALIASES</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"># include "<a class="code" href="a00103.html">./gtx/scalar_multiplication.hpp</a>"</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#if GLM_HAS_RANGE_FOR</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"># include "<a class="code" href="a00097.html">./gtx/range.hpp</a>"</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_SSE2</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"># include "<a class="code" href="a00108.html">./gtx/simd_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"># include "<a class="code" href="a00106.html">./gtx/simd_mat4.hpp</a>"</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00024_html"><div class="ttname"><a href="a00024.html">extend.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00010_html"><div class="ttname"><a href="a00010.html">closest_point.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00093_html"><div class="ttname"><a href="a00093.html">projection.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00110_html"><div class="ttname"><a href="a00110.html">std_based_type.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">matrix_access.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00091_html"><div class="ttname"><a href="a00091.html">polar_coordinates.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">log_base.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">fast_square_root.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00044_html"><div class="ttname"><a href="a00044.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00115_html"><div class="ttname"><a href="a00115.html">type_aligned.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00042_html"><div class="ttname"><a href="a00042.html">handed_coordinate_space.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00142_html"><div class="ttname"><a href="a00142.html">vector_angle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00103_html"><div class="ttname"><a href="a00103.html">scalar_multiplication.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00101_html"><div class="ttname"><a href="a00101.html">rotate_vector.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00076_html"><div class="ttname"><a href="a00076.html">matrix_query.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">intersect.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00021_html"><div class="ttname"><a href="a00021.html">euler_angles.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00079_html"><div class="ttname"><a href="a00079.html">mixed_product.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00096_html"><div class="ttname"><a href="a00096.html">random.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00084_html"><div class="ttname"><a href="a00084.html">number_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00082_html"><div class="ttname"><a href="a00082.html">normal.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00018_html"><div class="ttname"><a href="a00018.html">constants.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00143_html"><div class="ttname"><a href="a00143.html">vector_query.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00041_html"><div class="ttname"><a href="a00041.html">gradient_paint.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00099_html"><div class="ttname"><a href="a00099.html">reciprocal.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00106_html"><div class="ttname"><a href="a00106.html">simd_mat4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00087_html"><div class="ttname"><a href="a00087.html">packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00075_html"><div class="ttname"><a href="a00075.html">matrix_operation.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">bitfield.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00090_html"><div class="ttname"><a href="a00090.html">perpendicular.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00109_html"><div class="ttname"><a href="a00109.html">spline.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00026_html"><div class="ttname"><a href="a00026.html">fast_exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00012_html"><div class="ttname"><a href="a00012.html">color_space.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00095_html"><div class="ttname"><a href="a00095.html">quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00112_html"><div class="ttname"><a href="a00112.html">transform.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00083_html"><div class="ttname"><a href="a00083.html">normalize_dot.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00081_html"><div class="ttname"><a href="a00081.html">norm.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">component_wise.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">epsilon.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00137_html"><div class="ttname"><a href="a00137.html">ulp.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00025_html"><div class="ttname"><a href="a00025.html">extented_min_max.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">color_space_YCoCg.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">transform2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">raw_data.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00111_html"><div class="ttname"><a href="a00111.html">string_cast.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">matrix_cross_product.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">orthonormalize.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">matrix_major_storage.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00045_html"><div class="ttname"><a href="a00045.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00145_html"><div class="ttname"><a href="a00145.html">wrap.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00072_html"><div class="ttname"><a href="a00072.html">matrix_interpolation.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">bit.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00108_html"><div class="ttname"><a href="a00108.html">simd_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_ptr.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00077_html"><div class="ttname"><a href="a00077.html">matrix_transform.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00094_html"><div class="ttname"><a href="a00094.html">quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">fast_trigonometry.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00080_html"><div class="ttname"><a href="a00080.html">noise.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00016_html"><div class="ttname"><a href="a00016.html">compatibility.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00097_html"><div class="ttname"><a href="a00097.html">range.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">optimum_pow.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00102_html"><div class="ttname"><a href="a00102.html">round.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00073_html"><div class="ttname"><a href="a00073.html">matrix_inverse.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00019_html"><div class="ttname"><a href="a00019.html">dual_quaternion.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00071_html"><div class="ttname"><a href="a00071.html">matrix_integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">associated_min_max.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<a href="a00023.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="a00040.html">glm.hpp</a>"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># pragma message("GLM: All extensions included (not recommanded)")</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00009.html">./gtc/bitfield.hpp</a>"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00011.html">./gtc/color_space.hpp</a>"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="a00018.html">./gtc/constants.hpp</a>"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="a00020.html">./gtc/epsilon.hpp</a>"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="a00037.html">./gtc/functions.hpp</a>"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="a00044.html">./gtc/integer.hpp</a>"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="a00061.html">./gtc/matrix_access.hpp</a>"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00064.html">./gtc/matrix_integer.hpp</a>"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00066.html">./gtc/matrix_inverse.hpp</a>"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00070.html">./gtc/matrix_transform.hpp</a>"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00073.html">./gtc/noise.hpp</a>"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="a00080.html">./gtc/packing.hpp</a>"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "<a class="code" href="a00087.html">./gtc/quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "<a class="code" href="a00089.html">./gtc/random.hpp</a>"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">./gtc/reciprocal.hpp</a>"</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "<a class="code" href="a00095.html">./gtc/round.hpp</a>"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//#include "./gtc/type_aligned.hpp"</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "<a class="code" href="a00124.html">./gtc/type_precision.hpp</a>"</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "<a class="code" href="a00125.html">./gtc/type_ptr.hpp</a>"</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">./gtc/ulp.hpp</a>"</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "<a class="code" href="a00133.html">./gtc/vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># include "<a class="code" href="a00108.html">./gtc/type_aligned.hpp</a>"</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "<a class="code" href="a00007.html">./gtx/associated_min_max.hpp</a>"</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "<a class="code" href="a00008.html">./gtx/bit.hpp</a>"</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "<a class="code" href="a00010.html">./gtx/closest_point.hpp</a>"</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "<a class="code" href="a00012.html">./gtx/color_space.hpp</a>"</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "<a class="code" href="a00013.html">./gtx/color_space_YCoCg.hpp</a>"</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "<a class="code" href="a00016.html">./gtx/compatibility.hpp</a>"</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "<a class="code" href="a00017.html">./gtx/component_wise.hpp</a>"</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="a00019.html">./gtx/dual_quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="a00021.html">./gtx/euler_angles.hpp</a>"</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="a00024.html">./gtx/extend.hpp</a>"</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "<a class="code" href="a00025.html">./gtx/extended_min_max.hpp</a>"</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="a00026.html">./gtx/fast_exponential.hpp</a>"</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "<a class="code" href="a00027.html">./gtx/fast_square_root.hpp</a>"</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="a00028.html">./gtx/fast_trigonometry.hpp</a>"</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="a00041.html">./gtx/gradient_paint.hpp</a>"</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "<a class="code" href="a00042.html">./gtx/handed_coordinate_space.hpp</a>"</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "<a class="code" href="a00045.html">./gtx/integer.hpp</a>"</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="a00047.html">./gtx/intersect.hpp</a>"</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#include "<a class="code" href="a00049.html">./gtx/log_base.hpp</a>"</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00062.html">./gtx/matrix_cross_product.hpp</a>"</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include "<a class="code" href="a00065.html">./gtx/matrix_interpolation.hpp</a>"</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include "<a class="code" href="a00067.html">./gtx/matrix_major_storage.hpp</a>"</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="a00068.html">./gtx/matrix_operation.hpp</a>"</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "<a class="code" href="a00069.html">./gtx/matrix_query.hpp</a>"</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="a00072.html">./gtx/mixed_product.hpp</a>"</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "<a class="code" href="a00074.html">./gtx/norm.hpp</a>"</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="a00075.html">./gtx/normal.hpp</a>"</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "<a class="code" href="a00076.html">./gtx/normalize_dot.hpp</a>"</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "<a class="code" href="a00077.html">./gtx/number_precision.hpp</a>"</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "<a class="code" href="a00078.html">./gtx/optimum_pow.hpp</a>"</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "<a class="code" href="a00079.html">./gtx/orthonormalize.hpp</a>"</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#include "<a class="code" href="a00083.html">./gtx/perpendicular.hpp</a>"</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#include "<a class="code" href="a00084.html">./gtx/polar_coordinates.hpp</a>"</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#include "<a class="code" href="a00086.html">./gtx/projection.hpp</a>"</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#include "<a class="code" href="a00088.html">./gtx/quaternion.hpp</a>"</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "<a class="code" href="a00091.html">./gtx/raw_data.hpp</a>"</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#include "<a class="code" href="a00094.html">./gtx/rotate_vector.hpp</a>"</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#include "<a class="code" href="a00102.html">./gtx/spline.hpp</a>"</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#include "<a class="code" href="a00103.html">./gtx/std_based_type.hpp</a>"</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#if !(GLM_COMPILER & GLM_COMPILER_CUDA)</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># include "<a class="code" href="a00104.html">./gtx/string_cast.hpp</a>"</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">./gtx/transform.hpp</a>"</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#include "<a class="code" href="a00106.html">./gtx/transform2.hpp</a>"</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#include "<a class="code" href="a00137.html">./gtx/vector_angle.hpp</a>"</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "<a class="code" href="a00138.html">./gtx/vector_query.hpp</a>"</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#include "<a class="code" href="a00140.html">./gtx/wrap.hpp</a>"</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#if GLM_HAS_TEMPLATE_ALIASES</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"># include "<a class="code" href="a00096.html">./gtx/scalar_multiplication.hpp</a>"</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#if GLM_HAS_RANGE_FOR</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># include "<a class="code" href="a00090.html">./gtx/range.hpp</a>"</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00024_html"><div class="ttname"><a href="a00024.html">extend.hpp</a></div><div class="ttdoc">GLM_GTX_extend </div></div>
+<div class="ttc" id="a00124_html"><div class="ttname"><a href="a00124.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
+<div class="ttc" id="a00010_html"><div class="ttname"><a href="a00010.html">closest_point.hpp</a></div><div class="ttdoc">GLM_GTX_closest_point </div></div>
+<div class="ttc" id="a00068_html"><div class="ttname"><a href="a00068.html">matrix_operation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_operation </div></div>
+<div class="ttc" id="a00091_html"><div class="ttname"><a href="a00091.html">raw_data.hpp</a></div><div class="ttdoc">GLM_GTX_raw_data </div></div>
+<div class="ttc" id="a00027_html"><div class="ttname"><a href="a00027.html">fast_square_root.hpp</a></div><div class="ttdoc">GLM_GTX_fast_square_root </div></div>
+<div class="ttc" id="a00044_html"><div class="ttname"><a href="a00044.html">integer.hpp</a></div><div class="ttdoc">GLM_GTC_integer </div></div>
+<div class="ttc" id="a00042_html"><div class="ttname"><a href="a00042.html">handed_coordinate_space.hpp</a></div><div class="ttdoc">GLM_GTX_handed_coordinate_space </div></div>
+<div class="ttc" id="a00103_html"><div class="ttname"><a href="a00103.html">std_based_type.hpp</a></div><div class="ttdoc">GLM_GTX_std_based_type </div></div>
+<div class="ttc" id="a00088_html"><div class="ttname"><a href="a00088.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_quaternion </div></div>
+<div class="ttc" id="a00076_html"><div class="ttname"><a href="a00076.html">normalize_dot.hpp</a></div><div class="ttdoc">GLM_GTX_normalize_dot </div></div>
+<div class="ttc" id="a00047_html"><div class="ttname"><a href="a00047.html">intersect.hpp</a></div><div class="ttdoc">GLM_GTX_intersect </div></div>
+<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">matrix_integer.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_integer </div></div>
+<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">matrix_cross_product.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_cross_product </div></div>
+<div class="ttc" id="a00021_html"><div class="ttname"><a href="a00021.html">euler_angles.hpp</a></div><div class="ttdoc">GLM_GTX_euler_angles </div></div>
+<div class="ttc" id="a00079_html"><div class="ttname"><a href="a00079.html">orthonormalize.hpp</a></div><div class="ttdoc">GLM_GTX_orthonormalize </div></div>
+<div class="ttc" id="a00096_html"><div class="ttname"><a href="a00096.html">scalar_multiplication.hpp</a></div><div class="ttdoc">GTX Extensions (Experimental) </div></div>
+<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">matrix_major_storage.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_major_storage </div></div>
+<div class="ttc" id="a00084_html"><div class="ttname"><a href="a00084.html">polar_coordinates.hpp</a></div><div class="ttdoc">GLM_GTX_polar_coordinates </div></div>
+<div class="ttc" id="a00018_html"><div class="ttname"><a href="a00018.html">constants.hpp</a></div><div class="ttdoc">GLM_GTC_constants </div></div>
+<div class="ttc" id="a00070_html"><div class="ttname"><a href="a00070.html">matrix_transform.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_transform </div></div>
+<div class="ttc" id="a00041_html"><div class="ttname"><a href="a00041.html">gradient_paint.hpp</a></div><div class="ttdoc">GLM_GTX_gradient_paint </div></div>
+<div class="ttc" id="a00106_html"><div class="ttname"><a href="a00106.html">transform2.hpp</a></div><div class="ttdoc">GLM_GTX_transform2 </div></div>
+<div class="ttc" id="a00087_html"><div class="ttname"><a href="a00087.html">quaternion.hpp</a></div><div class="ttdoc">GLM_GTC_quaternion </div></div>
+<div class="ttc" id="a00075_html"><div class="ttname"><a href="a00075.html">normal.hpp</a></div><div class="ttdoc">GLM_GTX_normal </div></div>
+<div class="ttc" id="a00009_html"><div class="ttname"><a href="a00009.html">bitfield.hpp</a></div><div class="ttdoc">GLM_GTC_bitfield </div></div>
+<div class="ttc" id="a00138_html"><div class="ttname"><a href="a00138.html">vector_query.hpp</a></div><div class="ttdoc">GLM_GTX_vector_query </div></div>
+<div class="ttc" id="a00090_html"><div class="ttname"><a href="a00090.html">range.hpp</a></div><div class="ttdoc">GLM_GTX_range </div></div>
+<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">matrix_access.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_access </div></div>
+<div class="ttc" id="a00026_html"><div class="ttname"><a href="a00026.html">fast_exponential.hpp</a></div><div class="ttdoc">GLM_GTX_fast_exponential </div></div>
+<div class="ttc" id="a00012_html"><div class="ttname"><a href="a00012.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTX_color_space </div></div>
+<div class="ttc" id="a00095_html"><div class="ttname"><a href="a00095.html">round.hpp</a></div><div class="ttdoc">GLM_GTC_round </div></div>
+<div class="ttc" id="a00083_html"><div class="ttname"><a href="a00083.html">perpendicular.hpp</a></div><div class="ttdoc">GLM_GTX_perpendicular </div></div>
+<div class="ttc" id="a00017_html"><div class="ttname"><a href="a00017.html">component_wise.hpp</a></div><div class="ttdoc">GLM_GTX_component_wise </div></div>
+<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">transform.hpp</a></div><div class="ttdoc">GLM_GTX_transform </div></div>
+<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">ulp.hpp</a></div><div class="ttdoc">GLM_GTC_ulp </div></div>
+<div class="ttc" id="a00020_html"><div class="ttname"><a href="a00020.html">epsilon.hpp</a></div><div class="ttdoc">GLM_GTC_epsilon </div></div>
+<div class="ttc" id="a00078_html"><div class="ttname"><a href="a00078.html">optimum_pow.hpp</a></div><div class="ttdoc">GLM_GTX_optimum_pow </div></div>
+<div class="ttc" id="a00049_html"><div class="ttname"><a href="a00049.html">log_base.hpp</a></div><div class="ttdoc">GLM_GTX_log_base </div></div>
+<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">matrix_inverse.hpp</a></div><div class="ttdoc">GLM_GTC_matrix_inverse </div></div>
+<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">functions.hpp</a></div><div class="ttdoc">GLM_GTC_functions </div></div>
+<div class="ttc" id="a00137_html"><div class="ttname"><a href="a00137.html">vector_angle.hpp</a></div><div class="ttdoc">GLM_GTX_vector_angle </div></div>
+<div class="ttc" id="a00025_html"><div class="ttname"><a href="a00025.html">extended_min_max.hpp</a></div><div class="ttdoc">gtx_extended_min_max </div></div>
+<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_ptr.hpp</a></div><div class="ttdoc">GLM_GTC_type_ptr </div></div>
+<div class="ttc" id="a00013_html"><div class="ttname"><a href="a00013.html">color_space_YCoCg.hpp</a></div><div class="ttdoc">GLM_GTX_color_space_YCoCg </div></div>
+<div class="ttc" id="a00040_html"><div class="ttname"><a href="a00040.html">glm.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00011_html"><div class="ttname"><a href="a00011.html">color_space.hpp</a></div><div class="ttdoc">GLM_GTC_color_space </div></div>
+<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">wrap.hpp</a></div><div class="ttdoc">GLM_GTX_wrap </div></div>
+<div class="ttc" id="a00069_html"><div class="ttname"><a href="a00069.html">matrix_query.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_query </div></div>
+<div class="ttc" id="a00086_html"><div class="ttname"><a href="a00086.html">projection.hpp</a></div><div class="ttdoc">GLM_GTX_projection </div></div>
+<div class="ttc" id="a00074_html"><div class="ttname"><a href="a00074.html">norm.hpp</a></div><div class="ttdoc">GLM_GTX_norm </div></div>
+<div class="ttc" id="a00045_html"><div class="ttname"><a href="a00045.html">integer.hpp</a></div><div class="ttdoc">GLM_GTX_integer </div></div>
+<div class="ttc" id="a00072_html"><div class="ttname"><a href="a00072.html">mixed_product.hpp</a></div><div class="ttdoc">GLM_GTX_mixed_producte </div></div>
+<div class="ttc" id="a00008_html"><div class="ttname"><a href="a00008.html">bit.hpp</a></div><div class="ttdoc">GLM_GTX_bit </div></div>
+<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">vec1.hpp</a></div><div class="ttdoc">GLM_GTC_vec1 </div></div>
+<div class="ttc" id="a00108_html"><div class="ttname"><a href="a00108.html">type_aligned.hpp</a></div><div class="ttdoc">GLM_GTC_type_aligned </div></div>
+<div class="ttc" id="a00089_html"><div class="ttname"><a href="a00089.html">random.hpp</a></div><div class="ttdoc">GLM_GTC_random </div></div>
+<div class="ttc" id="a00077_html"><div class="ttname"><a href="a00077.html">number_precision.hpp</a></div><div class="ttdoc">GLM_GTX_number_precision </div></div>
+<div class="ttc" id="a00094_html"><div class="ttname"><a href="a00094.html">rotate_vector.hpp</a></div><div class="ttdoc">GLM_GTX_rotate_vector </div></div>
+<div class="ttc" id="a00065_html"><div class="ttname"><a href="a00065.html">matrix_interpolation.hpp</a></div><div class="ttdoc">GLM_GTX_matrix_interpolation </div></div>
+<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">reciprocal.hpp</a></div><div class="ttdoc">GLM_GTC_reciprocal </div></div>
+<div class="ttc" id="a00028_html"><div class="ttname"><a href="a00028.html">fast_trigonometry.hpp</a></div><div class="ttdoc">GLM_GTX_fast_trigonometry </div></div>
+<div class="ttc" id="a00080_html"><div class="ttname"><a href="a00080.html">packing.hpp</a></div><div class="ttdoc">GLM_GTC_packing </div></div>
+<div class="ttc" id="a00016_html"><div class="ttname"><a href="a00016.html">compatibility.hpp</a></div><div class="ttdoc">GLM_GTX_compatibility </div></div>
+<div class="ttc" id="a00104_html"><div class="ttname"><a href="a00104.html">string_cast.hpp</a></div><div class="ttdoc">GLM_GTX_string_cast </div></div>
+<div class="ttc" id="a00102_html"><div class="ttname"><a href="a00102.html">spline.hpp</a></div><div class="ttdoc">GLM_GTX_spline </div></div>
+<div class="ttc" id="a00073_html"><div class="ttname"><a href="a00073.html">noise.hpp</a></div><div class="ttdoc">GLM_GTC_noise </div></div>
+<div class="ttc" id="a00019_html"><div class="ttname"><a href="a00019.html">dual_quaternion.hpp</a></div><div class="ttdoc">GLM_GTX_dual_quaternion </div></div>
+<div class="ttc" id="a00007_html"><div class="ttname"><a href="a00007.html">associated_min_max.hpp</a></div><div class="ttdoc">GLM_GTX_associated_min_max </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00024.html b/doc/api/a00024.html
index f7f44b4..a06b629 100644
--- a/doc/api/a00024.html
+++ b/doc/api/a00024.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extend.hpp File Reference</title>
+<title>0.9.8: extend.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,19 +57,12 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &Origin, genType const &Source, typename genType::value_type const Length)</td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &Origin, genType const &Source, typename genType::value_type const Length)</td></tr>
<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00195.html">GLM_GTX_extend</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00191.html">GLM_GTX_extend</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00024_source.html">extend.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00024_source.html b/doc/api/a00024_source.html
index ea344a1..e82d146 100644
--- a/doc/api/a00024_source.html
+++ b/doc/api/a00024_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extend.hpp Source File</title>
+<title>0.9.8: extend.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,29 +50,29 @@
</div><!--header-->
<div class="contents">
<a href="a00024.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extend extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> genType <span class="keyword">const</span> & Origin, </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> genType <span class="keyword">const</span> & Source, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "extend.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00195_html_ga8140caae613b0f847ab0d7175dc03a37"><div class="ttname"><a href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">glm::extend</a></div><div class="ttdeci">GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)</div><div class="ttdoc">Extends of Length the Origin position using the (Source - Origin) direction. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extend extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL genType <a class="code" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> genType <span class="keyword">const</span> & Origin, </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> genType <span class="keyword">const</span> & Source, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> Length);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "extend.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00191_html_ga8140caae613b0f847ab0d7175dc03a37"><div class="ttname"><a href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">glm::extend</a></div><div class="ttdeci">GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)</div><div class="ttdoc">Extends of Length the Origin position using the (Source - Origin) direction. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00025.html b/doc/api/a00025.html
index d8974ad..e99d60e 100644
--- a/doc/api/a00025.html
+++ b/doc/api/a00025.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extented_min_max.hpp File Reference</title>
+<title>0.9.8: extended_min_max.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">extented_min_max.hpp File Reference</div> </div>
+<div class="title">extended_min_max.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -57,56 +57,49 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &x, T const &y, T const &z)</td></tr>
<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &x, T const &y, T const &z)</td></tr>
<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga95466987024d03039607f09e69813d69">min</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga95466987024d03039607f09e69813d69">min</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00196.html">GLM_GTX_extented_min_max</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-14 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p>gtx_extended_min_max </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtx_half_float (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00025_source.html">extented_min_max.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00025_source.html">extended_min_max.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00025_source.html b/doc/api/a00025_source.html
index 495dfce..ff10605 100644
--- a/doc/api/a00025_source.html
+++ b/doc/api/a00025_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: extented_min_max.hpp Source File</title>
+<title>0.9.8: extended_min_max.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,106 +46,106 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">extented_min_max.hpp</div> </div>
+<div class="title">extended_min_max.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00025.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extented_min_max extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extented_min_max extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> C<T> <span class="keyword">const</span> & z);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> T <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> T <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> C<T> <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> C<T> <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> T <span class="keyword">const</span> & z, </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> T <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> C<T> <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> C<T> <span class="keyword">const</span> & z,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> C<T> <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> T <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> T <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> C<T> <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> C<T> <span class="keyword">const</span> & z);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> T <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> T <span class="keyword">const</span> & z, </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> T <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL C<T> <a class="code" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> C<T> <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> C<T> <span class="keyword">const</span> & y, </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> C<T> <span class="keyword">const</span> & z, </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> C<T> <span class="keyword">const</span> & w);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#include "extented_min_max.inl"</span></div>
-<div class="ttc" id="a00196_html_gaacffbc466c2d08c140b181e7fd8a4858"><div class="ttname"><a href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the maximum component-wise values of 4 inputs. </div></div>
-<div class="ttc" id="a00196_html_ga7471ea4159eed8dd9ea4ac5d46c2fead"><div class="ttname"><a href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the minimum component-wise values of 4 inputs. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL T <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> C<T> <span class="keyword">const</span> & z,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> C<T> <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> C<T> <span class="keyword">const</span> & z);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL T <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> T <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typename</span> C<T>::T <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>C></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL C<T> <a class="code" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a>(</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> C<T> <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> C<T> <span class="keyword">const</span> & y, </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> C<T> <span class="keyword">const</span> & z, </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> C<T> <span class="keyword">const</span> & w);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#include "extended_min_max.inl"</span></div>
+<div class="ttc" id="a00192_html_ga7471ea4159eed8dd9ea4ac5d46c2fead"><div class="ttname"><a href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the minimum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00192_html_gaacffbc466c2d08c140b181e7fd8a4858"><div class="ttname"><a href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</div><div class="ttdoc">Return the maximum component-wise values of 4 inputs. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00026.html b/doc/api/a00026.html
index 2de7c62..fe6542d 100644
--- a/doc/api/a00026.html
+++ b/doc/api/a00026.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_exponential.hpp File Reference</title>
+<title>0.9.8: fast_exponential.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,52 +57,45 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template<typename genTypeT , typename genTypeU > </td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00197.html">GLM_GTX_fast_exponential</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-09 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtx_half_float (dependence) </dd></dl>
diff --git a/doc/api/a00026_source.html b/doc/api/a00026_source.html
index 1d11cdd..67bf8b8 100644
--- a/doc/api/a00026_source.html
+++ b/doc/api/a00026_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_exponential.hpp Source File</title>
+<title>0.9.8: fast_exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,63 +50,63 @@
</div><!--header-->
<div class="contents">
<a href="a00026.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_exponential extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL genType <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genType x, genType y);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL genTypeT <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genTypeT x, genTypeU y);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_exponential extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL genType <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genType x, genType y);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL genTypeT <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(genTypeT x, genTypeU y);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL T <a class="code" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(T x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL T <a class="code" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(T x);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL T <a class="code" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(T x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL T <a class="code" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(T x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#include "fast_exponential.inl"</span></div>
-<div class="ttc" id="a00197_html_ga789abcbc34d08008d2f5a4547dd6e5e3"><div class="ttname"><a href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">glm::fastLog</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_ga29924aea1aa11c5c504fb2d621221906"><div class="ttname"><a href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">glm::fastPow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastPow(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common pow function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00197_html_ga4faf0b61115de36efcf47c4ecb55a5fa"><div class="ttname"><a href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">glm::fastExp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_gabc46086fe6636b8be87f09e6c5d2bb58"><div class="ttname"><a href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">glm::fastLog2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common log2 function but less accurate. </div></div>
-<div class="ttc" id="a00197_html_ga9e6219327b7a33077dbec7620d981fff"><div class="ttname"><a href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">glm::fastExp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL T <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(T x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL T <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(T x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL T <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(T x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(T x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "fast_exponential.inl"</span></div>
+<div class="ttc" id="a00193_html_ga789abcbc34d08008d2f5a4547dd6e5e3"><div class="ttname"><a href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">glm::fastLog</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga29924aea1aa11c5c504fb2d621221906"><div class="ttname"><a href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">glm::fastPow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastPow(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common pow function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00193_html_ga4faf0b61115de36efcf47c4ecb55a5fa"><div class="ttname"><a href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">glm::fastExp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_ga9e6219327b7a33077dbec7620d981fff"><div class="ttname"><a href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">glm::fastExp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastExp2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common exp2 function but less accurate. </div></div>
+<div class="ttc" id="a00193_html_gabc46086fe6636b8be87f09e6c5d2bb58"><div class="ttname"><a href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">glm::fastLog2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastLog2(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common log2 function but less accurate. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00027.html b/doc/api/a00027.html
index ceb1755..7efc7ac 100644
--- a/doc/api/a00027.html
+++ b/doc/api/a00027.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_square_root.hpp File Reference</title>
+<title>0.9.8: fast_square_root.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,43 +57,36 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &x)</td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &x)</td></tr>
<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00198.html">GLM_GTX_fast_square_root</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-04 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00027_source.html">fast_square_root.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00027_source.html b/doc/api/a00027_source.html
index dcced69..4b314ef 100644
--- a/doc/api/a00027_source.html
+++ b/doc/api/a00027_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_square_root.hpp Source File</title>
+<title>0.9.8: fast_square_root.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,56 +50,56 @@
</div><!--header-->
<div class="contents">
<a href="a00027.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../common.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_square_root extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../exponential.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_square_root extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL genType <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(genType x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(genType x);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL genType <a class="code" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(genType x);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(genType x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL genType <a class="code" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(genType x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL T <a class="code" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(genType x, genType y);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL T <a class="code" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL genType <a class="code" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include "fast_square_root.inl"</span></div>
-<div class="ttc" id="a00198_html_gaad9f601bbc3faa04dda384e4c4e1592c"><div class="ttname"><a href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_gae28a3099cbd6404a4ea8ef22147ed7b0"><div class="ttname"><a href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL T fastLength(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga6d1ac559cd77d69119e30c3aca0e14b5"><div class="ttname"><a href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">glm::fastDistance</a></div><div class="ttdeci">GLM_FUNC_DECL T fastDistance(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Faster than the common distance function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga903878071f92e51e551791e584a171a1"><div class="ttname"><a href="a00198.html#ga903878071f92e51e551791e584a171a1">glm::fastInverseSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastInverseSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common inversesqrt function but less accurate. </div></div>
-<div class="ttc" id="a00198_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(genType x);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL T <a class="code" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(genType x, genType y);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL T <a class="code" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL genType <a class="code" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "fast_square_root.inl"</span></div>
+<div class="ttc" id="a00194_html_ga6d1ac559cd77d69119e30c3aca0e14b5"><div class="ttname"><a href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">glm::fastDistance</a></div><div class="ttdeci">GLM_FUNC_DECL T fastDistance(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Faster than the common distance function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga903878071f92e51e551791e584a171a1"><div class="ttname"><a href="a00194.html#ga903878071f92e51e551791e584a171a1">glm::fastInverseSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastInverseSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common inversesqrt function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00194_html_gaad9f601bbc3faa04dda384e4c4e1592c"><div class="ttname"><a href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > fastSqrt(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_gae28a3099cbd6404a4ea8ef22147ed7b0"><div class="ttname"><a href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL T fastLength(vecType< T, P > const &x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00028.html b/doc/api/a00028.html
index 7e007d7..11c45da 100644
--- a/doc/api/a00028.html
+++ b/doc/api/a00028.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_trigonometry.hpp File Reference</title>
+<title>0.9.8: fast_trigonometry.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,40 +57,33 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00199.html">GLM_GTX_fast_trigonometry</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-01-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00028_source.html">fast_trigonometry.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00028_source.html b/doc/api/a00028_source.html
index e37c39e..8e2af01 100644
--- a/doc/api/a00028_source.html
+++ b/doc/api/a00028_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fast_trigonometry.hpp Source File</title>
+<title>0.9.8: fast_trigonometry.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,54 +50,54 @@
</div><!--header-->
<div class="contents">
<a href="a00028.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_trigonometry extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_fast_trigonometry extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T y, T x);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T y, T x);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL T <a class="code" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#include "fast_trigonometry.inl"</span></div>
-<div class="ttc" id="a00199_html_gae25de86a968490ff56856fa425ec9d30"><div class="ttname"><a href="a00199.html#gae25de86a968490ff56856fa425ec9d30">glm::fastAtan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAtan(T angle)</div><div class="ttdoc">Faster than the common atan function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_ga9721d63356e5d94fdc4b393a426ab26b"><div class="ttname"><a href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">glm::fastAcos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAcos(T angle)</div><div class="ttdoc">Faster than the common acos function but less accurate. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00199_html_gab34c8b45c23c0165a64dcecfcc3b302a"><div class="ttname"><a href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">glm::fastCos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastCos(T angle)</div><div class="ttdoc">Faster than the common cos function but less accurate. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00199_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_ga069527c6dbd64f53435b8ebc4878b473"><div class="ttname"><a href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">glm::wrapAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T wrapAngle(T angle)</div><div class="ttdoc">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </div></div>
-<div class="ttc" id="a00199_html_ga562cb62c51fbfe7fac7db0bce706b81f"><div class="ttname"><a href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">glm::fastAsin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAsin(T angle)</div><div class="ttdoc">Faster than the common asin function but less accurate. </div></div>
-<div class="ttc" id="a00199_html_gaf29b9c1101a10007b4f79ee89df27ba2"><div class="ttname"><a href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">glm::fastTan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastTan(T angle)</div><div class="ttdoc">Faster than the common tan function but less accurate. </div></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL T <a class="code" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a>(T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "fast_trigonometry.inl"</span></div>
+<div class="ttc" id="a00195_html_ga9721d63356e5d94fdc4b393a426ab26b"><div class="ttname"><a href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">glm::fastAcos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAcos(T angle)</div><div class="ttdoc">Faster than the common acos function but less accurate. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00195_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_ga069527c6dbd64f53435b8ebc4878b473"><div class="ttname"><a href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">glm::wrapAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T wrapAngle(T angle)</div><div class="ttdoc">Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </div></div>
+<div class="ttc" id="a00195_html_ga562cb62c51fbfe7fac7db0bce706b81f"><div class="ttname"><a href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">glm::fastAsin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAsin(T angle)</div><div class="ttdoc">Faster than the common asin function but less accurate. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00195_html_gaf29b9c1101a10007b4f79ee89df27ba2"><div class="ttname"><a href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">glm::fastTan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastTan(T angle)</div><div class="ttdoc">Faster than the common tan function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gab34c8b45c23c0165a64dcecfcc3b302a"><div class="ttname"><a href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">glm::fastCos</a></div><div class="ttdeci">GLM_FUNC_DECL T fastCos(T angle)</div><div class="ttdoc">Faster than the common cos function but less accurate. </div></div>
+<div class="ttc" id="a00195_html_gae25de86a968490ff56856fa425ec9d30"><div class="ttname"><a href="a00195.html#gae25de86a968490ff56856fa425ec9d30">glm::fastAtan</a></div><div class="ttdeci">GLM_FUNC_DECL T fastAtan(T angle)</div><div class="ttdoc">Faster than the common atan function but less accurate. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00029.html b/doc/api/a00029.html
index 3cfde3b..984be42 100644
--- a/doc/api/a00029.html
+++ b/doc/api/a00029.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_common.hpp File Reference</title>
+<title>0.9.8: func_common.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,110 +57,103 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
+<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
+<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
+<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
+<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-08 / 2010-01-26 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00029_source.html">func_common.hpp</a>.</p>
diff --git a/doc/api/a00029_source.html b/doc/api/a00029_source.html
index 7dec686..7818dbb 100644
--- a/doc/api/a00029_source.html
+++ b/doc/api/a00029_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_common.hpp Source File</title>
+<title>0.9.8: func_common.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,183 +50,183 @@
</div><!--header-->
<div class="contents">
<a href="a00029.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00119.html">type_int.hpp</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">_fixes.hpp</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(genType x);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(genType x);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL genType <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(genType x, genType y);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType & i);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(genType x, genType y);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(genType x, genType y);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(genType x, genType minVal, genType maxVal);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, T minVal, T maxVal);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & minVal, vecType<T, P> <span class="keyword">const</span> & maxVal);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & a);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, U a);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> GLM_FUNC_DECL genTypeT <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(genType edge, genType x);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(T edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a>(vecType<T, P> <span class="keyword">const</span> & edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vecType<T, P> <span class="keyword">const</span> & edge0, vecType<T, P> <span class="keyword">const</span> & edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(vecType<int, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(vecType<uint, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span> & a, genType <span class="keyword">const</span> & b, genType <span class="keyword">const</span> & c);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a>(genType <span class="keyword">const</span> & x, genIType & <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> GLM_FUNC_DECL genType <a class="code" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a>(genType <span class="keyword">const</span> & x, genIType <span class="keyword">const</span> & <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor">#include "func_common.inl"</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00151_html_ga3acab37650ecd792dc84548094b58684"><div class="ttname"><a href="a00151.html#ga3acab37650ecd792dc84548094b58684">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > uintBitsToFloat(vecType< uint, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
-<div class="ttc" id="a00151_html_gac4a0710238ae54c67931dd29a0b0f873"><div class="ttname"><a href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > floatBitsToInt(vecType< float, P > const &v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
-<div class="ttc" id="a00151_html_ga52e319d7289b849ec92055abd4830533"><div class="ttname"><a href="a00151.html#ga52e319d7289b849ec92055abd4830533">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
-<div class="ttc" id="a00151_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga6cb8f202a52eed2331724a3800198ebf"><div class="ttname"><a href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isnan(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
-<div class="ttc" id="a00151_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
-<div class="ttc" id="a00151_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
-<div class="ttc" id="a00151_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
-<div class="ttc" id="a00151_html_ga1804d4c443605d8a27be644aa461afe4"><div class="ttname"><a href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > floatBitsToUint(vecType< float, P > const &v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
-<div class="ttc" id="a00151_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00151.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00151_html_ga655598104195a60a950291485e84a97e"><div class="ttname"><a href="a00151.html#ga655598104195a60a950291485e84a97e">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundEven(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00151_html_ga20620e83544d1a988857a3bc4ebe0e1d"><div class="ttname"><a href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType const &x, genIType &exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00151_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
-<div class="ttc" id="a00151_html_gad21ab176dd0e6b59d923db5efca87f4e"><div class="ttname"><a href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > intBitsToFloat(vecType< int, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
-<div class="ttc" id="a00151_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00170_html_gaf5ae5330f6b30b4a35fb95f9a73d6134"><div class="ttname"><a href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mod(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00151_html_ga6d84170051fb87c183c38883ec85b411"><div class="ttname"><a href="a00151.html#ga6d84170051fb87c183c38883ec85b411">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > step(vecType< T, P > const &edge, vecType< T, P > const &x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
-<div class="ttc" id="a00151_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00151.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
-<div class="ttc" id="a00151_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00151_html_gaf28f7a4696746f081685c9fd05c7e2de"><div class="ttname"><a href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isinf(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
-<div class="ttc" id="a00152_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00151_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">type_int.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">_fixes.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a>(genType x);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga655598104195a60a950291485e84a97e">roundEven</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(genType x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL genType <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(genType x, genType y);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType & i);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(genType x, genType y);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(genType x, genType y);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(genType x, genType minVal, genType maxVal);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, T minVal, T maxVal);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & minVal, vecType<T, P> <span class="keyword">const</span> & maxVal);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, vecType<U, P> <span class="keyword">const</span> & a);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y, U a);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> GLM_FUNC_DECL genTypeT <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(genType edge, genType x);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(T edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a>(vecType<T, P> <span class="keyword">const</span> & edge, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vecType<T, P> <span class="keyword">const</span> & edge0, vecType<T, P> <span class="keyword">const</span> & edge1, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a>(vecType<int, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType, precision P></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a>(vecType<uint, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span> & a, genType <span class="keyword">const</span> & b, genType <span class="keyword">const</span> & c);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a>(genType <span class="keyword">const</span> & x, genIType & <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType, <span class="keyword">typename</span> genIType></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> GLM_FUNC_DECL genType <a class="code" href="a00146.html#ga52e319d7289b849ec92055abd4830533">ldexp</a>(genType <span class="keyword">const</span> & x, genIType <span class="keyword">const</span> & <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor">#include "func_common.inl"</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="ttc" id="a00146_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
+<div class="ttc" id="a00146_html_ga52e319d7289b849ec92055abd4830533"><div class="ttname"><a href="a00146.html#ga52e319d7289b849ec92055abd4830533">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &x, genIType const &exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
+<div class="ttc" id="a00146_html_gad21ab176dd0e6b59d923db5efca87f4e"><div class="ttname"><a href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > intBitsToFloat(vecType< int, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00146_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
+<div class="ttc" id="a00146_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
+<div class="ttc" id="a00146_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
+<div class="ttc" id="a00146_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00146.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00146_html_ga655598104195a60a950291485e84a97e"><div class="ttname"><a href="a00146.html#ga655598104195a60a950291485e84a97e">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundEven(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00146_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
+<div class="ttc" id="a00146_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00146.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
+<div class="ttc" id="a00146_html_ga6cb8f202a52eed2331724a3800198ebf"><div class="ttname"><a href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isnan(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
+<div class="ttc" id="a00146_html_ga20620e83544d1a988857a3bc4ebe0e1d"><div class="ttname"><a href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType const &x, genIType &exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga1804d4c443605d8a27be644aa461afe4"><div class="ttname"><a href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > floatBitsToUint(vecType< float, P > const &v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga3acab37650ecd792dc84548094b58684"><div class="ttname"><a href="a00146.html#ga3acab37650ecd792dc84548094b58684">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > uintBitsToFloat(vecType< uint, P > const &v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
+<div class="ttc" id="a00146_html_ga6d84170051fb87c183c38883ec85b411"><div class="ttname"><a href="a00146.html#ga6d84170051fb87c183c38883ec85b411">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > step(vecType< T, P > const &edge, vecType< T, P > const &x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
+<div class="ttc" id="a00147_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00146_html_gaf28f7a4696746f081685c9fd05c7e2de"><div class="ttname"><a href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isinf(vecType< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="a00165_html_gaf5ae5330f6b30b4a35fb95f9a73d6134"><div class="ttname"><a href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mod(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00146_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00146_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00146_html_gac4a0710238ae54c67931dd29a0b0f873"><div class="ttname"><a href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > floatBitsToInt(vecType< float, P > const &v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
+<div class="ttc" id="a00146_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00146_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00030.html b/doc/api/a00030.html
index c1cff09..aafc203 100644
--- a/doc/api/a00030.html
+++ b/doc/api/a00030.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_exponential.hpp File Reference</title>
+<title>0.9.8: func_exponential.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,36 +57,29 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-08 / 2011-06-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00030_source.html">func_exponential.hpp</a>.</p>
diff --git a/doc/api/a00030_source.html b/doc/api/a00030_source.html
index 437f34e..589a3b4 100644
--- a/doc/api/a00030_source.html
+++ b/doc/api/a00030_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_exponential.hpp Source File</title>
+<title>0.9.8: func_exponential.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,55 +50,55 @@
</div><!--header-->
<div class="contents">
<a href="a00030.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="a00133.html">type_vec1.hpp</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <cmath></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a>(vecType<T, P> <span class="keyword">const</span> & base, vecType<T, P> <span class="keyword">const</span> & exponent);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">//template <typename genType></span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//GLM_FUNC_DECL genType sqrt(genType const & x);</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#include "func_exponential.inl"</span></div>
-<div class="ttc" id="a00152_html_ga082b332a4b7c6ad1d43e09ff19e214dd"><div class="ttname"><a href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > pow(vecType< T, P > const &base, vecType< T, P > const &exponent)</div><div class="ttdoc">Returns 'base' raised to the power 'exponent'. </div></div>
-<div class="ttc" id="a00152_html_ga21efca311e62d233de0ae96bab126b83"><div class="ttname"><a href="a00152.html#ga21efca311e62d233de0ae96bab126b83">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...</div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00152_html_ga42ca440d9062f1f456f5a9e896378f9c"><div class="ttname"><a href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp2(vecType< T, P > const &v)</div><div class="ttdoc">Returns 2 raised to the v power. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00152_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
-<div class="ttc" id="a00152_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
-<div class="ttc" id="a00152_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
-<div class="ttc" id="a00152_html_gabae30945338a555a03733f00dad95d0d"><div class="ttname"><a href="a00152.html#gabae30945338a555a03733f00dad95d0d">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log2(vecType< T, P > const &v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...</div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">type_vec1.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a>(vecType<T, P> <span class="keyword">const</span> & base, vecType<T, P> <span class="keyword">const</span> & exponent);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga21efca311e62d233de0ae96bab126b83">log</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#gabae30945338a555a03733f00dad95d0d">log2</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">//template <typename genType></span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">//GLM_FUNC_DECL genType sqrt(genType const & x);</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#include "func_exponential.inl"</span></div>
+<div class="ttc" id="a00147_html_ga082b332a4b7c6ad1d43e09ff19e214dd"><div class="ttname"><a href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > pow(vecType< T, P > const &base, vecType< T, P > const &exponent)</div><div class="ttdoc">Returns 'base' raised to the power 'exponent'. </div></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga21efca311e62d233de0ae96bab126b83"><div class="ttname"><a href="a00147.html#ga21efca311e62d233de0ae96bab126b83">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...</div></div>
+<div class="ttc" id="a00147_html_ga42ca440d9062f1f456f5a9e896378f9c"><div class="ttname"><a href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">glm::exp2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp2(vecType< T, P > const &v)</div><div class="ttdoc">Returns 2 raised to the v power. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_gabae30945338a555a03733f00dad95d0d"><div class="ttname"><a href="a00147.html#gabae30945338a555a03733f00dad95d0d">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > log2(vecType< T, P > const &v)</div><div class="ttdoc">Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...</div></div>
+<div class="ttc" id="a00147_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga25e54a7f44fc49ec6ac6ffc7675cf04a"><div class="ttname"><a href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > exp(vecType< T, P > const &v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
+<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_vec1.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00147_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00031.html b/doc/api/a00031.html
index c2d5b2b..8ba48c7 100644
--- a/doc/api/a00031.html
+++ b/doc/api/a00031.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_geometric.hpp File Reference</title>
+<title>0.9.8: func_geometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,39 +57,32 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-14 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00031_source.html">func_geometric.hpp</a>.</p>
diff --git a/doc/api/a00031_source.html b/doc/api/a00031_source.html
index 6cdd1af..71f4c42 100644
--- a/doc/api/a00031_source.html
+++ b/doc/api/a00031_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_geometric.hpp Source File</title>
+<title>0.9.8: func_geometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,66 +50,66 @@
</div><!--header-->
<div class="contents">
<a href="a00031.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL T <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL T <a class="code" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> vecType<T, P> <span class="keyword">const</span> & p0,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> vecType<T, P> <span class="keyword">const</span> & p1);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL T <a class="code" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a>(</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> vecType<T, P> <span class="keyword">const</span> & N,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> vecType<T, P> <span class="keyword">const</span> & I,</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> vecType<T, P> <span class="keyword">const</span> & Nref);</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> GLM_FUNC_DECL T <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL T <a class="code" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> vecType<T, P> <span class="keyword">const</span> & p0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> vecType<T, P> <span class="keyword">const</span> & p1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL T <a class="code" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> vecType<T, P> <span class="keyword">const</span> & N,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> vecType<T, P> <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> vecType<T, P> <span class="keyword">const</span> & Nref);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL genType <a class="code" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> genType <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> genType <span class="keyword">const</span> & N);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> vecType<T, P> <span class="keyword">const</span> & I,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> vecType<T, P> <span class="keyword">const</span> & N,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> T eta);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL genType <a class="code" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> genType <span class="keyword">const</span> & I,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> genType <span class="keyword">const</span> & N);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> vecType<T, P> <span class="keyword">const</span> & I,</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> vecType<T, P> <span class="keyword">const</span> & N,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T eta);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#include "func_geometric.inl"</span></div>
-<div class="ttc" id="a00153_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00153_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00153_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
-<div class="ttc" id="a00153_html_gaea854e5aec1b5839832ac2dfc7cd3c0d"><div class="ttname"><a href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">glm::faceforward</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > faceforward(vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</div><div class="ttdoc">If dot(Nref, I) < 0.0, return N, otherwise, return -N. </div></div>
-<div class="ttc" id="a00153_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
-<div class="ttc" id="a00153_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#include "func_geometric.inl"</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00148_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
+<div class="ttc" id="a00148_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="ttc" id="a00148_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
+<div class="ttc" id="a00148_html_gaea854e5aec1b5839832ac2dfc7cd3c0d"><div class="ttname"><a href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">glm::faceforward</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > faceforward(vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</div><div class="ttdoc">If dot(Nref, I) < 0.0, return N, otherwise, return -N. </div></div>
+<div class="ttc" id="a00148_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00148.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
+<div class="ttc" id="a00148_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00148_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00032.html b/doc/api/a00032.html
index c06dd61..3d67986 100644
--- a/doc/api/a00032.html
+++ b/doc/api/a00032.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_integer.hpp File Reference</title>
+<title>0.9.8: func_integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,54 +57,47 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-03-17 / 2011-06-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00032_source.html">func_integer.hpp</a>.</p>
diff --git a/doc/api/a00032_source.html b/doc/api/a00032_source.html
index 5b30d62..ef3d916 100644
--- a/doc/api/a00032_source.html
+++ b/doc/api/a00032_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_integer.hpp Source File</title>
+<title>0.9.8: func_integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,94 +50,94 @@
</div><!--header-->
<div class="contents">
<a href="a00032.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">func_common.hpp</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00037.html">func_vector_relational.hpp</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType<uint, P> & carry);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="a00029.html">func_common.hpp</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00036.html">func_vector_relational.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a>(</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> vecType<uint, P> & carry);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> vecType<uint, P> & borrow);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> vecType<uint, P> & msb,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType<uint, P> & lsb);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> vecType<uint, P> & borrow);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> vecType<uint, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> vecType<uint, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> vecType<uint, P> & msb,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> vecType<uint, P> & lsb);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> vecType<int, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> vecType<int, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> vecType<int, P> & msb,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> vecType<int, P> & lsb);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> vecType<T, P> <span class="keyword">const</span> & Value,</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">int</span> Offset,</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keywordtype">int</span> Bits);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a>(</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> vecType<T, P> <span class="keyword">const</span> & Base,</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> vecType<T, P> <span class="keyword">const</span> & Insert,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">int</span> Offset,</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a>(</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> vecType<int, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> vecType<int, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> vecType<int, P> & msb,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> vecType<int, P> & lsb);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> vecType<T, P> <span class="keyword">const</span> & Value,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a>(</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> vecType<T, P> <span class="keyword">const</span> & Base,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> vecType<T, P> <span class="keyword">const</span> & Insert,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">int</span> Offset,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">int</span> Bits);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(genType v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(genIUType x);</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(genType v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(genIUType x);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(genIUType x);</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor">#include "func_integer.inl"</span></div>
-<div class="ttc" id="a00154_html_ga5681dfac9239beb1b8bd995e3c6496d7"><div class="ttname"><a href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">glm::bitfieldInsert</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldInsert(vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</div><div class="ttdoc">Returns the insertion the bits least-significant bits of insert into base. </div></div>
-<div class="ttc" id="a00154_html_ga22a889bf08313b7e547e2cdb8bb15ee4"><div class="ttname"><a href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">glm::usubBorrow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > usubBorrow(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</div><div class="ttdoc">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus th [...]
-<div class="ttc" id="a00154_html_gab84b88f3a8e367774e5dd1c618c353cf"><div class="ttname"><a href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">glm::bitfieldExtract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldExtract(vecType< T, P > const &Value, int Offset, int Bits)</div><div class="ttdoc">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...</div></div>
-<div class="ttc" id="a00154_html_ga014a72009e68233c34c06a6dc2251b8c"><div class="ttname"><a href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">glm::findLSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findLSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the least significant bit set to 1 in the binary representation of value...</div></div>
-<div class="ttc" id="a00154_html_ga433104d77ec2ba58888aaefb77e9183f"><div class="ttname"><a href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">glm::findMSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findMSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the most significant bit in the binary representation of value...</div></div>
-<div class="ttc" id="a00154_html_ga153e7e8d0c035f83cce50fc3e580930f"><div class="ttname"><a href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">glm::bitfieldReverse</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldReverse(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reversal of the bits of value. </div></div>
-<div class="ttc" id="a00154_html_ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><div class="ttname"><a href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">glm::uaddCarry</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > uaddCarry(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</div><div class="ttdoc">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </div></div>
-<div class="ttc" id="a00154_html_ga456ff9dcec42f6769a9ae2a2af7f1ce1"><div class="ttname"><a href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">glm::umulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void umulExtended(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
-<div class="ttc" id="a00154_html_ga6e6e8b29ca40d8ca2df10b58ed17d426"><div class="ttname"><a href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">glm::imulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void imulExtended(vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
-<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00154_html_ga1f29640969a3c54564da06ac67a5392e"><div class="ttname"><a href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">glm::bitCount</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > bitCount(vecType< T, P > const &v)</div><div class="ttdoc">Returns the number of bits set to 1 in the binary representation of value. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(genIUType x);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a>(vecType<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#include "func_integer.inl"</span></div>
+<div class="ttc" id="a00149_html_ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><div class="ttname"><a href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">glm::uaddCarry</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > uaddCarry(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</div><div class="ttdoc">Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </div></div>
+<div class="ttc" id="a00149_html_ga22a889bf08313b7e547e2cdb8bb15ee4"><div class="ttname"><a href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">glm::usubBorrow</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > usubBorrow(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</div><div class="ttdoc">Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus th [...]
+<div class="ttc" id="a00149_html_ga5681dfac9239beb1b8bd995e3c6496d7"><div class="ttname"><a href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">glm::bitfieldInsert</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldInsert(vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</div><div class="ttdoc">Returns the insertion the bits least-significant bits of insert into base. </div></div>
+<div class="ttc" id="a00149_html_ga456ff9dcec42f6769a9ae2a2af7f1ce1"><div class="ttname"><a href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">glm::umulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void umulExtended(vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00149_html_gab84b88f3a8e367774e5dd1c618c353cf"><div class="ttname"><a href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">glm::bitfieldExtract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldExtract(vecType< T, P > const &Value, int Offset, int Bits)</div><div class="ttdoc">Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...</div></div>
+<div class="ttc" id="a00149_html_ga014a72009e68233c34c06a6dc2251b8c"><div class="ttname"><a href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">glm::findLSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findLSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the least significant bit set to 1 in the binary representation of value...</div></div>
+<div class="ttc" id="a00149_html_ga153e7e8d0c035f83cce50fc3e580930f"><div class="ttname"><a href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">glm::bitfieldReverse</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > bitfieldReverse(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reversal of the bits of value. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00029_html"><div class="ttname"><a href="a00029.html">func_common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00149_html_ga1f29640969a3c54564da06ac67a5392e"><div class="ttname"><a href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">glm::bitCount</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > bitCount(vecType< T, P > const &v)</div><div class="ttdoc">Returns the number of bits set to 1 in the binary representation of value. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00149_html_ga6e6e8b29ca40d8ca2df10b58ed17d426"><div class="ttname"><a href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">glm::imulExtended</a></div><div class="ttdeci">GLM_FUNC_DECL void imulExtended(vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</div><div class="ttdoc">Multiplies 32-bit integers x and y, producing a 64-bit result. </div></div>
+<div class="ttc" id="a00149_html_ga433104d77ec2ba58888aaefb77e9183f"><div class="ttname"><a href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">glm::findMSB</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > findMSB(vecType< T, P > const &v)</div><div class="ttdoc">Returns the bit number of the most significant bit in the binary representation of value...</div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00033.html b/doc/api/a00033.html
index a8504c4..3fc46b0 100644
--- a/doc/api/a00033.html
+++ b/doc/api/a00033.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_matrix.hpp File Reference</title>
+<title>0.9.8: func_matrix.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,27 +57,20 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a> (matType< T, P > const &m)</td></tr>
-<tr class="separator:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType< T, P > const &m)</td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB> </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
<p>Definition in file <a class="el" href="a00033_source.html">func_matrix.hpp</a>.</p>
diff --git a/doc/api/a00033_source.html b/doc/api/a00033_source.html
index 8ea2d7c..c3a03bc 100644
--- a/doc/api/a00033_source.html
+++ b/doc/api/a00033_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_matrix.hpp Source File</title>
+<title>0.9.8: func_matrix.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,110 +50,110 @@
</div><!--header-->
<div class="contents">
<a href="a00033.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../detail/type_mat.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec2></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">typedef</span> tmat2x2<T, P> type;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> };</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec3></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> tmat2x3<T, P> type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> };</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec4></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> tmat2x4<T, P> type;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec2></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typedef</span> tmat3x2<T, P> type;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec3></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">typedef</span> tmat3x3<T, P> type;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> };</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/type_mat.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec2></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> tmat2x2<T, P> type;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec3></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tmat3x2<T, P> type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec2, tvec4></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> tmat4x2<T, P> type;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec2></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat2x3<T, P> type;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec3></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> tmat3x3<T, P> type;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec4></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typedef</span> tmat4x3<T, P> type;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec2></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">typedef</span> tmat2x4<T, P> type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec3></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> tmat3x4<T, P> type;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec4></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">typedef</span> tmat4x4<T, P> type;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec3, tvec4></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">typedef</span> tmat3x4<T, P> type;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec2></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">typedef</span> tmat4x2<T, P> type;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec3></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> tmat4x3<T, P> type;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">struct </span>outerProduct_trait<T, P, tvec4, tvec4></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> tmat4x4<T, P> type;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL matType<T, P> <a class="code" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(matType<T, P> <span class="keyword">const</span> & x, matType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeA, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeB></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL <span class="keyword">typename</span> detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type <a class="code" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(vecTypeA<T, P> <span class="keyword">const</span> & c, vecTypeB<T, P> <span class="keyword">const</span> & r);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL matType<T, P> <a class="code" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(matType<T, P> <span class="keyword">const</span> & x, matType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeA, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecTypeB></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL <span class="keyword">typename</span> detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type <a class="code" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(vecTypeA<T, P> <span class="keyword">const</span> & c, vecTypeB<T, P> <span class="keyword">const</span> & r);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"># if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL <span class="keyword">typename</span> matType<T, P>::transpose_type transpose(matType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL T <a class="code" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL matType<T, P> <a class="code" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"># if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL <span class="keyword">typename</span> matType<T, P>::transpose_type transpose(matType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL T <a class="code" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL matType<T, P> <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#include "func_matrix.inl"</span></div>
-<div class="ttc" id="a00155_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType< T, P > const &m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00155_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</d [...]
-<div class="ttc" id="a00155_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#include "func_matrix.inl"</span></div>
+<div class="ttc" id="a00150_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType< T, P > const &m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00150_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00150_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</d [...]
+<div class="ttc" id="a00150_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00034.html b/doc/api/a00034.html
index 8ad5712..71f62da 100644
--- a/doc/api/a00034.html
+++ b/doc/api/a00034.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_noise.hpp File Reference</title>
+<title>0.9.8: func_packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_noise.hpp File Reference</div> </div>
+<div class="title">func_packing.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,31 +56,38 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a> (genType const &x)</td></tr>
-<tr class="separator:gadcbf14e3390990f33fda02bb20836960"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a> (genType const &x)</td></tr>
-<tr class="separator:gad88de7f308dc57edb80690373a1380a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a> (genType const &x)</td></tr>
-<tr class="separator:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a> (genType const &x)</td></tr>
-<tr class="separator:gaed96a491dd0c552040d59f9178bc626d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &v)</td></tr>
+<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-01 / 2011-06-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd>
+<dd>
+<a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00034_source.html">func_noise.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00034_source.html">func_packing.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00034_source.html b/doc/api/a00034_source.html
index 699eb71..be75162 100644
--- a/doc/api/a00034_source.html
+++ b/doc/api/a00034_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_noise.hpp Source File</title>
+<title>0.9.8: func_packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,44 +46,64 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_noise.hpp</div> </div>
+<div class="title">func_packing.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00034.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00133.html">type_vec1.hpp</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL tvec2<typename genType::value_type, defaultp> <a class="code" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tvec3<typename genType::value_type, defaultp> <a class="code" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tvec4<typename genType::value_type, defaultp> <a class="code" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#include "func_noise.inl"</span></div>
-<div class="ttc" id="a00156_html_gaed96a491dd0c552040d59f9178bc626d"><div class="ttname"><a href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">glm::noise4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< typename genType::value_type, defaultp > noise4(genType const &x)</div><div class="ttdoc">Returns a 4D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00156_html_gad88de7f308dc57edb80690373a1380a9"><div class="ttname"><a href="a00156.html#gad88de7f308dc57edb80690373a1380a9">glm::noise2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< typename genType::value_type, defaultp > noise2(genType const &x)</div><div class="ttdoc">Returns a 2D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00133_html"><div class="ttname"><a href="a00133.html">type_vec1.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00156_html_gadcbf14e3390990f33fda02bb20836960"><div class="ttname"><a href="a00156.html#gadcbf14e3390990f33fda02bb20836960">glm::noise1</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type noise1(genType const &x)</div><div class="ttdoc">Returns a 1D noise value based on the input value x. </div></div>
-<div class="ttc" id="a00156_html_ga3359a5e2b61cee8cf4498470a63f7283"><div class="ttname"><a href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">glm::noise3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< typename genType::value_type, defaultp > noise3(genType const &x)</div><div class="ttdoc">Returns a 3D noise value based on the input value x. </div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00151.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL <span class="keywordtype">double</span> <a class="code" href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a>(<a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <a class="code" href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a>(<span class="keywordtype">double</span> v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor">#include "func_packing.inl"</span></div>
+<div class="ttc" id="a00151_html_gaf7d2f7341a9eeb4a436929d6f9ad08f2"><div class="ttname"><a href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">glm::packUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00151_html_gaa916ca426b2bb0343ba17e3753e245c2"><div class="ttname"><a href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">glm::packDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)</div><div class="ttdoc">Returns a double-precision value obtained by packing the components of v into a 64-bit value...</div></div>
+<div class="ttc" id="a00151_html_ga20f134b07db3a3d3a38efb2617388c92"><div class="ttname"><a href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">glm::packHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a two-component floating-point v...</div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00151_html_ga2db488646d48b7c43d3218954523fe82"><div class="ttname"><a href="a00151.html#ga2db488646d48b7c43d3218954523fe82">glm::unpackSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00151_html_gaf59b52e6b28da9335322c4ae19b5d745"><div class="ttname"><a href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">glm::unpackHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)</div><div class="ttdoc">Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...</div></div>
+<div class="ttc" id="a00151_html_ga1f66188e5d65afeb9ffba1ad971e4007"><div class="ttname"><a href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">glm::unpackUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00151_html_ga0e2d107039fe608a209497af867b85fb"><div class="ttname"><a href="a00151.html#ga0e2d107039fe608a209497af867b85fb">glm::packUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00151_html_ga977ab172da5494e5ac63e952afacfbe2"><div class="ttname"><a href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">glm::packSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00151_html_gacd8f8971a3fe28418be0d0fa1f786b38"><div class="ttname"><a href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">glm::unpackSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00151_html_ga7f903259150b67e9466f5f8edffcd197"><div class="ttname"><a href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">glm::unpackUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
+<div class="ttc" id="a00157_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00537">type_vec.hpp:537</a></div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00151_html_ga5f4296dc5f12f0aa67ac05b8bb322483"><div class="ttname"><a href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">glm::unpackDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)</div><div class="ttdoc">Returns a two-component unsigned integer vector representation of v. </div></div>
+<div class="ttc" id="a00151_html_ga85e8f17627516445026ab7a9c2e3531a"><div class="ttname"><a href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">glm::packSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00035.html b/doc/api/a00035.html
index f92d887..7c3313d 100644
--- a/doc/api/a00035.html
+++ b/doc/api/a00035.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_packing.hpp File Reference</title>
+<title>0.9.8: func_trigonometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_packing.hpp File Reference</div> </div>
+<div class="title">func_trigonometric.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,45 +56,57 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &v)</td></tr>
-<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &v)</td></tr>
-<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
-<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
-<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType< T, P > const &y, vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType< T, P > const &y_over_x)</td></tr>
+<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a> (vecType< T, P > const &radians)</td></tr>
+<tr class="separator:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a> (vecType< T, P > const °rees)</td></tr>
+<tr class="separator:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-03-17 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd>
-<dd>
-<a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00035_source.html">func_packing.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00035_source.html">func_trigonometric.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00035_source.html b/doc/api/a00035_source.html
index 794624a..0beb9f9 100644
--- a/doc/api/a00035_source.html
+++ b/doc/api/a00035_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_packing.hpp Source File</title>
+<title>0.9.8: func_trigonometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,64 +46,84 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_packing.hpp</div> </div>
+<div class="title">func_trigonometric.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00035.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> <a class="code" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> <a class="code" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a>);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> p);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL <span class="keywordtype">double</span> <a class="code" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a>(<a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> <a class="code" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a>(<span class="keywordtype">double</span> v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> v);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#include "func_packing.inl"</span></div>
-<div class="ttc" id="a00157_html_ga20f134b07db3a3d3a38efb2617388c92"><div class="ttname"><a href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">glm::packHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a two-component floating-point v...</div></div>
-<div class="ttc" id="a00157_html_ga1f66188e5d65afeb9ffba1ad971e4007"><div class="ttname"><a href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">glm::unpackUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_ga7f903259150b67e9466f5f8edffcd197"><div class="ttname"><a href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">glm::unpackUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_ga5f4296dc5f12f0aa67ac05b8bb322483"><div class="ttname"><a href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">glm::unpackDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)</div><div class="ttdoc">Returns a two-component unsigned integer vector representation of v. </div></div>
-<div class="ttc" id="a00157_html_ga0e2d107039fe608a209497af867b85fb"><div class="ttname"><a href="a00157.html#ga0e2d107039fe608a209497af867b85fb">glm::packUnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00157_html_ga85e8f17627516445026ab7a9c2e3531a"><div class="ttname"><a href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">glm::packSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00157_html_ga977ab172da5494e5ac63e952afacfbe2"><div class="ttname"><a href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">glm::packSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00157_html_gacd8f8971a3fe28418be0d0fa1f786b38"><div class="ttname"><a href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">glm::unpackSnorm2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00157_html_gaf7d2f7341a9eeb4a436929d6f9ad08f2"><div class="ttname"><a href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">glm::packUnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00157_html_gaa916ca426b2bb0343ba17e3753e245c2"><div class="ttname"><a href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">glm::packDouble2x32</a></div><div class="ttdeci">GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)</div><div class="ttdoc">Returns a double-precision value obtained by packing the components of v into a 64-bit value...</div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00157_html_ga2db488646d48b7c43d3218954523fe82"><div class="ttname"><a href="a00157.html#ga2db488646d48b7c43d3218954523fe82">glm::unpackSnorm4x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </div></div>
-<div class="ttc" id="a00157_html_gaf59b52e6b28da9335322c4ae19b5d745"><div class="ttname"><a href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">glm::unpackHalf2x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)</div><div class="ttdoc">Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...</div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">cos</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>); </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga88e29b8289e882859d76a25798dd9490">asin</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y, vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y_over_x);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga234e904a0075f88654a594b5f837711f">tanh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "func_trigonometric.inl"</span></div>
+<div class="ttc" id="a00152_html_gab3ae890c38b7d3aa4d5e00998fd296b2"><div class="ttname"><a href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">glm::tan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tan(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric tangent function. </div></div>
+<div class="ttc" id="a00152_html_ga4a0ddceb6b1e64ce0e4da209dcb021d5"><div class="ttname"><a href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">glm::sin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sin(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric sine function. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00152_html_gae8f22458bba8f2321ceb1bfc4a543216"><div class="ttname"><a href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y_over_x)</div><div class="ttdoc">Arc tangent. </div></div>
+<div class="ttc" id="a00152_html_gaffa8decdd8620759f4e6fe4834768b87"><div class="ttname"><a href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">glm::atanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atanh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic tangent; returns the inverse of tanh. </div></div>
+<div class="ttc" id="a00152_html_ga660582a4e5e843b6c1cd535777e8c295"><div class="ttname"><a href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">glm::cosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cosh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00152_html_gad8f89c12efe6f8d3ae8046625b266254"><div class="ttname"><a href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">glm::sinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sinh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </div></div>
+<div class="ttc" id="a00152_html_ga58ad259b788528fe0a4bd2eeb5e381cc"><div class="ttname"><a href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">glm::acos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acos(vecType< T, P > const &x)</div><div class="ttdoc">Arc cosine. </div></div>
+<div class="ttc" id="a00152_html_ga72bf44c1984e1afb63acf821ba33cac7"><div class="ttname"><a href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">glm::asinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asinh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic sine; returns the inverse of sinh. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_gabccdcc282134fd62af0ff3d6e4bb21f1"><div class="ttname"><a href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">glm::degrees</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > degrees(vecType< T, P > const &radians)</div><div class="ttdoc">Converts radians to degrees and returns the result. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00152_html_ga88e29b8289e882859d76a25798dd9490"><div class="ttname"><a href="a00152.html#ga88e29b8289e882859d76a25798dd9490">glm::asin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asin(vecType< T, P > const &x)</div><div class="ttdoc">Arc sine. </div></div>
+<div class="ttc" id="a00152_html_ga234e904a0075f88654a594b5f837711f"><div class="ttname"><a href="a00152.html#ga234e904a0075f88654a594b5f837711f">glm::tanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tanh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </div></div>
+<div class="ttc" id="a00152_html_ga3f368ad3e1883b60748ca2634d816104"><div class="ttname"><a href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">glm::acosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acosh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic cosine; returns the non-negative inverse of cosh. </div></div>
+<div class="ttc" id="a00152_html_ga728fd86f14609e37d83f82429995b7b3"><div class="ttname"><a href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">glm::cos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cos(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric cosine function. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00152_html_gafffb5e533f75318bdf4e0967d8a6c05c"><div class="ttname"><a href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">glm::radians</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > radians(vecType< T, P > const °rees)</div><div class="ttdoc">Converts degrees to radians and returns the result. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00036.html b/doc/api/a00036.html
index 46779db..d05b9de 100644
--- a/doc/api/a00036.html
+++ b/doc/api/a00036.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_trigonometric.hpp File Reference</title>
+<title>0.9.8: func_vector_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_trigonometric.hpp File Reference</div> </div>
+<div class="title">func_vector_relational.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,64 +56,39 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType< T, P > const &y, vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType< T, P > const &y_over_x)</td></tr>
-<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a> (vecType< T, P > const &radians)</td></tr>
-<tr class="separator:ga402144a18234e642b702bf585599b46d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a> (vecType< T, P > const °rees)</td></tr>
-<tr class="separator:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00036_source.html">func_trigonometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00036_source.html">func_vector_relational.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00036_source.html b/doc/api/a00036_source.html
index 271e567..6ee0fa2 100644
--- a/doc/api/a00036_source.html
+++ b/doc/api/a00036_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_trigonometric.hpp Source File</title>
+<title>0.9.8: func_vector_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,84 +46,60 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_trigonometric.hpp</div> </div>
+<div class="title">func_vector_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00036.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a>);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>); </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y, vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a>(vecType<T, P> <span class="keyword">const</span> & y_over_x);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a>(vecType<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#include "func_trigonometric.inl"</span></div>
-<div class="ttc" id="a00158_html_gae8f22458bba8f2321ceb1bfc4a543216"><div class="ttname"><a href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atan(vecType< T, P > const &y_over_x)</div><div class="ttdoc">Arc tangent. </div></div>
-<div class="ttc" id="a00158_html_ga58ad259b788528fe0a4bd2eeb5e381cc"><div class="ttname"><a href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">glm::acos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acos(vecType< T, P > const &x)</div><div class="ttdoc">Arc cosine. </div></div>
-<div class="ttc" id="a00158_html_ga234e904a0075f88654a594b5f837711f"><div class="ttname"><a href="a00158.html#ga234e904a0075f88654a594b5f837711f">glm::tanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tanh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </div></div>
-<div class="ttc" id="a00158_html_ga660582a4e5e843b6c1cd535777e8c295"><div class="ttname"><a href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">glm::cosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cosh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </div></div>
-<div class="ttc" id="a00158_html_ga72bf44c1984e1afb63acf821ba33cac7"><div class="ttname"><a href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">glm::asinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asinh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic sine; returns the inverse of sinh. </div></div>
-<div class="ttc" id="a00158_html_ga0fd3ad793538521f76fa30db7f6edfed"><div class="ttname"><a href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">glm::radians</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > radians(vecType< T, P > const °rees)</div><div class="ttdoc">Converts degrees to radians and returns the result. </div></div>
-<div class="ttc" id="a00158_html_ga728fd86f14609e37d83f82429995b7b3"><div class="ttname"><a href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">glm::cos</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > cos(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric cosine function. </div></div>
-<div class="ttc" id="a00158_html_ga4a0ddceb6b1e64ce0e4da209dcb021d5"><div class="ttname"><a href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">glm::sin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sin(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric sine function. </div></div>
-<div class="ttc" id="a00158_html_gad8f89c12efe6f8d3ae8046625b266254"><div class="ttname"><a href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">glm::sinh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sinh(vecType< T, P > const &angle)</div><div class="ttdoc">Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </div></div>
-<div class="ttc" id="a00158_html_ga402144a18234e642b702bf585599b46d"><div class="ttname"><a href="a00158.html#ga402144a18234e642b702bf585599b46d">glm::degrees</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > degrees(vecType< T, P > const &radians)</div><div class="ttdoc">Converts radians to degrees and returns the result. </div></div>
-<div class="ttc" id="a00158_html_gab3ae890c38b7d3aa4d5e00998fd296b2"><div class="ttname"><a href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">glm::tan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > tan(vecType< T, P > const &angle)</div><div class="ttdoc">The standard trigonometric tangent function. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00158_html_ga3f368ad3e1883b60748ca2634d816104"><div class="ttname"><a href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">glm::acosh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > acosh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic cosine; returns the non-negative inverse of cosh. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00158_html_ga88e29b8289e882859d76a25798dd9490"><div class="ttname"><a href="a00158.html#ga88e29b8289e882859d76a25798dd9490">glm::asin</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > asin(vecType< T, P > const &x)</div><div class="ttdoc">Arc sine. </div></div>
-<div class="ttc" id="a00158_html_gaffa8decdd8620759f4e6fe4834768b87"><div class="ttname"><a href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">glm::atanh</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > atanh(vecType< T, P > const &x)</div><div class="ttdoc">Arc hyperbolic tangent; returns the inverse of tanh. </div></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00153.html#ga632a2644532d9332011c8860400d30b2">any</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#include "func_vector_relational.inl"</span></div>
+<div class="ttc" id="a00153_html_ga5aca2b745e5eb0096716bbc394846309"><div class="ttname"><a href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > notEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="ttc" id="a00153_html_gadd80263161a308462d3e3e287e79cccd"><div class="ttname"><a href="a00153.html#gadd80263161a308462d3e3e287e79cccd">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
+<div class="ttc" id="a00153_html_ga39c80d8baf49b0ce69f2bb22d45b3801"><div class="ttname"><a href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > equal(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
+<div class="ttc" id="a00153_html_ga6261970937a70b0b747ae0d3ade1c188"><div class="ttname"><a href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="ttc" id="a00153_html_ga632a2644532d9332011c8860400d30b2"><div class="ttname"><a href="a00153.html#ga632a2644532d9332011c8860400d30b2">glm::any</a></div><div class="ttdeci">GLM_FUNC_DECL bool any(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if any component of x is true. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00153_html_gaee7e101f8cc4ea43924f14dcdeb2ef26"><div class="ttname"><a href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00153_html_ga14bbc94f2ae2774a1d64d91f8767773e"><div class="ttname"><a href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">glm::all</a></div><div class="ttdeci">GLM_FUNC_DECL bool all(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if all components of x are true. </div></div>
+<div class="ttc" id="a00153_html_gaaf1d88119f11200c32011de7c5ec0102"><div class="ttname"><a href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00153_html_ga4329ecbc2ef012c9ec704bd09da1f177"><div class="ttname"><a href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">glm::not_</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)</div><div class="ttdoc">Returns the component-wise logical complement of x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00037.html b/doc/api/a00037.html
index 0eddd59..61979e1 100644
--- a/doc/api/a00037.html
+++ b/doc/api/a00037.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_vector_relational.hpp File Reference</title>
+<title>0.9.8: functions.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">func_vector_relational.hpp File Reference</div> </div>
+<div class="title">functions.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,46 +56,22 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">gauss</a> (T x, T ExpectedValue, T StandardDeviation)</td></tr>
+<tr class="separator:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a> (tvec2< T, P > const &Coord, tvec2< T, P > const &ExpectedValue, tvec2< T, P > const &StandardDeviation)</td></tr>
+<tr class="separator:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-03 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00164.html">GLM_GTC_functions</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00037_source.html">func_vector_relational.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00037_source.html">functions.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00037_source.html b/doc/api/a00037_source.html
index 3dd92e8..ea52ded 100644
--- a/doc/api/a00037_source.html
+++ b/doc/api/a00037_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: func_vector_relational.hpp Source File</title>
+<title>0.9.8: functions.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,65 +41,47 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">func_vector_relational.hpp</div> </div>
+<div class="title">functions.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00037.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a>(vecType<bool, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#include "func_vector_relational.inl"</span></div>
-<div class="ttc" id="a00159_html_ga6261970937a70b0b747ae0d3ade1c188"><div class="ttname"><a href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
-<div class="ttc" id="a00159_html_gaee7e101f8cc4ea43924f14dcdeb2ef26"><div class="ttname"><a href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
-<div class="ttc" id="a00159_html_gadd80263161a308462d3e3e287e79cccd"><div class="ttname"><a href="a00159.html#gadd80263161a308462d3e3e287e79cccd">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > greaterThan(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
-<div class="ttc" id="a00159_html_ga14bbc94f2ae2774a1d64d91f8767773e"><div class="ttname"><a href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">glm::all</a></div><div class="ttdeci">GLM_FUNC_DECL bool all(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if all components of x are true. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00159_html_gaaf1d88119f11200c32011de7c5ec0102"><div class="ttname"><a href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > lessThanEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
-<div class="ttc" id="a00159_html_ga39c80d8baf49b0ce69f2bb22d45b3801"><div class="ttname"><a href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > equal(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00159_html_ga632a2644532d9332011c8860400d30b2"><div class="ttname"><a href="a00159.html#ga632a2644532d9332011c8860400d30b2">glm::any</a></div><div class="ttdeci">GLM_FUNC_DECL bool any(vecType< bool, P > const &v)</div><div class="ttdoc">Returns true if any component of x is true. </div></div>
-<div class="ttc" id="a00159_html_ga4329ecbc2ef012c9ec704bd09da1f177"><div class="ttname"><a href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">glm::not_</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > not_(vecType< bool, P > const &v)</div><div class="ttdoc">Returns the component-wise logical complement of x. </div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00159_html_ga5aca2b745e5eb0096716bbc394846309"><div class="ttname"><a href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > notEqual(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/type_vec2.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_functions extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> T x,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> T ExpectedValue,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T StandardDeviation);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL T <a class="code" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> tvec2<T, P> <span class="keyword">const</span>& Coord,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec2<T, P> <span class="keyword">const</span>& ExpectedValue,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> tvec2<T, P> <span class="keyword">const</span>& StandardDeviation);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "functions.inl"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00164_html_ga7448f9eb74bb5924f6330ab532f2899c"><div class="ttname"><a href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">glm::gauss</a></div><div class="ttdeci">GLM_FUNC_DECL T gauss(tvec2< T, P > const &Coord, tvec2< T, P > const &ExpectedValue, tvec2< T, P > const &StandardDeviation)</div><div class="ttdoc">2D gauss function </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00038.html b/doc/api/a00038.html
index b78fc7a..9573eab 100644
--- a/doc/api/a00038.html
+++ b/doc/api/a00038.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fwd.hpp File Reference</title>
+<title>0.9.8: fwd.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -58,115 +58,115 @@
Typedefs</h2></td></tr>
<tr class="memitem:af62ed3862b7f5db4da71756a7b1367be"><td class="memItemLeft" align="right" valign="top">typedef highp_dquat </td><td class="memItemRight" valign="bottom"><b>dquat</b></td></tr>
<tr class="separator:af62ed3862b7f5db4da71756a7b1367be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
+<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
+<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
+<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
+<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
+<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
+<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
+<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
+<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
+<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
+<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
+<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
+<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
+<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
+<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
+<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
+<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
+<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
+<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
+<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
+<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
+<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
+<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
+<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
+<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
+<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
+<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
+<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
+<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
+<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
+<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
+<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
+<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
+<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
+<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
+<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
+<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
+<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
+<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
+<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
+<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
+<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
+<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
+<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
+<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
+<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
+<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
+<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
+<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
+<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
+<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af31dbba5cedde97099c8e30b9661edf0"><td class="memItemLeft" align="right" valign="top">typedef quat </td><td class="memItemRight" valign="bottom"><b>fquat</b></td></tr>
<tr class="separator:af31dbba5cedde97099c8e30b9661edf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
+<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
+<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
+<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
+<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a30d694434c136946d9f98c8baa3d40a1"><td class="memItemLeft" align="right" valign="top">typedef tquat< double, highp > </td><td class="memItemRight" valign="bottom"><b>highp_dquat</b></td></tr>
<tr class="separator:a30d694434c136946d9f98c8baa3d40a1"><td class="memSeparator" colspan="2"> </td></tr>
@@ -284,7 +284,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ab333adb64d923bf12287f0dbc2f12c7f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad473477b31e48387ad77054dfab93040"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_fvec4</b></td></tr>
<tr class="separator:ad473477b31e48387ad77054dfab93040"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
+<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2287f1712b96207a66cc858e930fb77a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec1</b></td></tr>
<tr class="separator:a2287f1712b96207a66cc858e930fb77a"><td class="memSeparator" colspan="2"> </td></tr>
@@ -294,7 +294,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a232957ed3eea2cddbc313de01a73c958"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2b1c2815452029cc1d605e02c754d8bd"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i16vec4</b></td></tr>
<tr class="separator:a2b1c2815452029cc1d605e02c754d8bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
+<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3650f851ca511552052df19fb6cf8f16"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec1</b></td></tr>
<tr class="separator:a3650f851ca511552052df19fb6cf8f16"><td class="memSeparator" colspan="2"> </td></tr>
@@ -304,7 +304,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ac29c6f264de4dc336d31e05f84ce89e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a389eba6c2510da342d7c5890eae6fa03"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i32vec4</b></td></tr>
<tr class="separator:a389eba6c2510da342d7c5890eae6fa03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
+<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec1</b></td></tr>
<tr class="separator:a29bc99c6e19f3f6b8820e3f9037416d5"><td class="memSeparator" colspan="2"> </td></tr>
@@ -314,7 +314,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a0ccc0e5d538ee4c48d406fb7ae116694"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a239e24f52398e6f2fa7d8c731072c632"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i64vec4</b></td></tr>
<tr class="separator:a239e24f52398e6f2fa7d8c731072c632"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
+<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af405602f84fa85522d81f08b54354055"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec1</b></td></tr>
<tr class="separator:af405602f84fa85522d81f08b54354055"><td class="memSeparator" colspan="2"> </td></tr>
@@ -324,25 +324,25 @@ Typedefs</h2></td></tr>
<tr class="separator:a035c5ab8bb99731e0a0cdba9f9e3431a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_i8vec4</b></td></tr>
<tr class="separator:ada7a04ea9eaaf01e45e6e8460a4f7abe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
+<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
+<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
+<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
+<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
+<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
+<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
+<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
+<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_quat</b></td></tr>
<tr class="separator:aefe60e46b0d012d98067425ad2e6cbc1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
+<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8bda7c2533299ff237e174c31f721aee"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec1</b></td></tr>
<tr class="separator:a8bda7c2533299ff237e174c31f721aee"><td class="memSeparator" colspan="2"> </td></tr>
@@ -352,7 +352,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ae4b8f63673a7b146a424a5fee3db2ecc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42101fecebea5b85deaedd7a397b4b8e"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u16vec4</b></td></tr>
<tr class="separator:a42101fecebea5b85deaedd7a397b4b8e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
+<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a400570a17c30a0d93be64df7aaeca498"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec1</b></td></tr>
<tr class="separator:a400570a17c30a0d93be64df7aaeca498"><td class="memSeparator" colspan="2"> </td></tr>
@@ -362,7 +362,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a5ff192bf2205bec34497aa1f8ba05838"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a447c20d8123d9c4dbab2016337670fad"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u32vec4</b></td></tr>
<tr class="separator:a447c20d8123d9c4dbab2016337670fad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
+<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adcba17098bae31bcde33d72f71f96d44"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec1</b></td></tr>
<tr class="separator:adcba17098bae31bcde33d72f71f96d44"><td class="memSeparator" colspan="2"> </td></tr>
@@ -372,7 +372,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a356770e957a30e5039860337a715f84e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u64vec4</b></td></tr>
<tr class="separator:a3af115d5e803c6b966bf4dbc5db2fc63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
+<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec1</b></td></tr>
<tr class="separator:a4f09abf961b1b2c2f6561861a1057aa0"><td class="memSeparator" colspan="2"> </td></tr>
@@ -382,71 +382,71 @@ Typedefs</h2></td></tr>
<tr class="separator:aac99086122be840a2bb096e4e3c3f339"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, highp > </td><td class="memItemRight" valign="bottom"><b>highp_u8vec4</b></td></tr>
<tr class="separator:aaf75b696ccff5ae31bc4d96d031d6c60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
+<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
+<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
+<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
+<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
+<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
+<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
+<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
+<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, highp > </td><td class="memItemRight" valign="bottom"><b>highp_vec1</b></td></tr>
<tr class="separator:a8f81d4fc98bf6a4de7da0332242c1841"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
+<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
+<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
+<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
+<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
+<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
+<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
+<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
+<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
+<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
+<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
+<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
+<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
+<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
+<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
+<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
+<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
+<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
+<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
+<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
+<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
+<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
+<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
+<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
+<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memItemLeft" align="right" valign="top">typedef tquat< double, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_dquat</b></td></tr>
<tr class="separator:a5bb5330eb0f9cf0f8135c5f6ab07b96c"><td class="memSeparator" colspan="2"> </td></tr>
@@ -564,7 +564,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ab7893b199d7493a88dea8bd38bd878b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_fvec4</b></td></tr>
<tr class="separator:adbeccbd85012ba9638d51b37d0b88e4e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
+<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a29d17771c7521875f7972610a274437d"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec1</b></td></tr>
<tr class="separator:a29d17771c7521875f7972610a274437d"><td class="memSeparator" colspan="2"> </td></tr>
@@ -574,7 +574,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a572548327ac6277265d1fb0f3ba05f07"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a877978ecba5f4186b045507593a92d90"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i16vec4</b></td></tr>
<tr class="separator:a877978ecba5f4186b045507593a92d90"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
+<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af4d1f110d2643d0911aeaa424dd342f3"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec1</b></td></tr>
<tr class="separator:af4d1f110d2643d0911aeaa424dd342f3"><td class="memSeparator" colspan="2"> </td></tr>
@@ -584,7 +584,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a669898de66e7bb5695f7a86aa8915fd9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a35522d761caa8f93185a96ed9e61795d"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i32vec4</b></td></tr>
<tr class="separator:a35522d761caa8f93185a96ed9e61795d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
+<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7852c10988de095e6e685300904cb2b3"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec1</b></td></tr>
<tr class="separator:a7852c10988de095e6e685300904cb2b3"><td class="memSeparator" colspan="2"> </td></tr>
@@ -594,7 +594,7 @@ Typedefs</h2></td></tr>
<tr class="separator:adce94f56b502977689df6693fa70c0ed"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1f9cb33adc669bb6a72329af5381b690"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i64vec4</b></td></tr>
<tr class="separator:a1f9cb33adc669bb6a72329af5381b690"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
+<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7192dd365ce8d4fa4da3257c676de267"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec1</b></td></tr>
<tr class="separator:a7192dd365ce8d4fa4da3257c676de267"><td class="memSeparator" colspan="2"> </td></tr>
@@ -604,25 +604,25 @@ Typedefs</h2></td></tr>
<tr class="separator:a6f4179513be603c7494da45295c35bdc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a76d872db6e41d64e338a36f09b5daeb7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_i8vec4</b></td></tr>
<tr class="separator:a76d872db6e41d64e338a36f09b5daeb7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
+<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
+<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
+<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
+<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
+<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
+<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
+<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
+<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa2d7af2016aba4edc1a14fed266317d2"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_quat</b></td></tr>
<tr class="separator:aa2d7af2016aba4edc1a14fed266317d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
+<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec1</b></td></tr>
<tr class="separator:a016d2c4e5962ee5dcb30978f9de6ac52"><td class="memSeparator" colspan="2"> </td></tr>
@@ -632,7 +632,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ae63c1dbdb499eb7664109fb39857bce4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6baa0d373bf33bfa1aa666f557eae789"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u16vec4</b></td></tr>
<tr class="separator:a6baa0d373bf33bfa1aa666f557eae789"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
+<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec1</b></td></tr>
<tr class="separator:ad302aa571eb6955dbfc5289c7c84ca1b"><td class="memSeparator" colspan="2"> </td></tr>
@@ -642,7 +642,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a82ab625c16f826dc658bde310158ddff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a061f6b150324b1913490c743e756d04f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u32vec4</b></td></tr>
<tr class="separator:a061f6b150324b1913490c743e756d04f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
+<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a318bf8bfd18ab389678d06828a28c39b"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec1</b></td></tr>
<tr class="separator:a318bf8bfd18ab389678d06828a28c39b"><td class="memSeparator" colspan="2"> </td></tr>
@@ -652,7 +652,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ae69228b98799312c02544febb1af766b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u64vec4</b></td></tr>
<tr class="separator:a3c1344b4a809a5812c7fd4aed4a7d3fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
+<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac31801407d2141204e74eefea0bf3ef0"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec1</b></td></tr>
<tr class="separator:ac31801407d2141204e74eefea0bf3ef0"><td class="memSeparator" colspan="2"> </td></tr>
@@ -662,21 +662,21 @@ Typedefs</h2></td></tr>
<tr class="separator:a0cbe1a6da09be9171fc08ceadfbb758d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a764d9393e9aff7a84825a5760e2498b9"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_u8vec4</b></td></tr>
<tr class="separator:a764d9393e9aff7a84825a5760e2498b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
+<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
+<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
+<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
+<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
+<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
+<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
+<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
+<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, lowp > </td><td class="memItemRight" valign="bottom"><b>lowp_vec1</b></td></tr>
<tr class="separator:a8931ec76b5c0c310ed8d96dfdeb6b4c1"><td class="memSeparator" colspan="2"> </td></tr>
@@ -796,7 +796,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a25ecd692875d6f455dcb6d8bc80b0d26"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a328c393cd9a393b33342acbf9b91bf72"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_fvec4</b></td></tr>
<tr class="separator:a328c393cd9a393b33342acbf9b91bf72"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
+<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aacc9b5576745206f26ffa9386d4aa883"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec1</b></td></tr>
<tr class="separator:aacc9b5576745206f26ffa9386d4aa883"><td class="memSeparator" colspan="2"> </td></tr>
@@ -806,7 +806,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ad9f994bcfaa4716905cb8c7f81fe1f46"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abb0c81e9e6d4210216f4d911736aefad"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i16vec4</b></td></tr>
<tr class="separator:abb0c81e9e6d4210216f4d911736aefad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
+<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a75733ed8258c5e65ac97160c4a6c953a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec1</b></td></tr>
<tr class="separator:a75733ed8258c5e65ac97160c4a6c953a"><td class="memSeparator" colspan="2"> </td></tr>
@@ -816,7 +816,7 @@ Typedefs</h2></td></tr>
<tr class="separator:ad6446c3c348eee2276ddcbfcc28aacc7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae3eec682aede6e122daed84e2f38971d"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i32vec4</b></td></tr>
<tr class="separator:ae3eec682aede6e122daed84e2f38971d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
+<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42af3af0131095f8445ddd0738d76827"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec1</b></td></tr>
<tr class="separator:a42af3af0131095f8445ddd0738d76827"><td class="memSeparator" colspan="2"> </td></tr>
@@ -826,7 +826,7 @@ Typedefs</h2></td></tr>
<tr class="separator:aa521bedc4cdd40c72880e426661f5603"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i64vec4</b></td></tr>
<tr class="separator:a44f3bdc69f2b2b919c8b68852dbcfad6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
+<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memItemLeft" align="right" valign="top">typedef tvec1< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec1</b></td></tr>
<tr class="separator:ad1256e00d07c078cb4471eaba0f0c2d9"><td class="memSeparator" colspan="2"> </td></tr>
@@ -836,25 +836,25 @@ Typedefs</h2></td></tr>
<tr class="separator:a0455c25b51ff2d28eb036f34c7f3d486"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac6d4413001e39e2f0f2d32b501867a56"><td class="memItemLeft" align="right" valign="top">typedef tvec4< i8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_i8vec4</b></td></tr>
<tr class="separator:ac6d4413001e39e2f0f2d32b501867a56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
+<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
+<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
+<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
+<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
+<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
+<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
+<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
+<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af519098b37a0cfefa5886647dc38e508"><td class="memItemLeft" align="right" valign="top">typedef tquat< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_quat</b></td></tr>
<tr class="separator:af519098b37a0cfefa5886647dc38e508"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
+<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec1</b></td></tr>
<tr class="separator:a9c3b4b9dff5b90eab9d71c47e2d3fb98"><td class="memSeparator" colspan="2"> </td></tr>
@@ -864,7 +864,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a0a253c3e5826e0b99a82b4c3a81900e1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u16, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u16vec4</b></td></tr>
<tr class="separator:a4005c6c2ffb591975adbf0aa73fedc8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
+<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec1</b></td></tr>
<tr class="separator:a89aa9ebbc28768a9ecb993ea366ce73c"><td class="memSeparator" colspan="2"> </td></tr>
@@ -874,7 +874,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a43bfb277372a5f8a1ab54c20b77467f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u32, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u32vec4</b></td></tr>
<tr class="separator:a3093e6b1ceef9b6696333b3f6f8e6eef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
+<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec1</b></td></tr>
<tr class="separator:af5c2b2f4b5a5e55285fb6e48360008a9"><td class="memSeparator" colspan="2"> </td></tr>
@@ -884,7 +884,7 @@ Typedefs</h2></td></tr>
<tr class="separator:a6f514640b5b5827ede77642ebbbf5e68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab41db7da28e5948330db80f5ca75d850"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u64, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u64vec4</b></td></tr>
<tr class="separator:ab41db7da28e5948330db80f5ca75d850"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
+<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memItemLeft" align="right" valign="top">typedef tvec1< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec1</b></td></tr>
<tr class="separator:a8c4001fcbff65fd29da82274a5d3ff38"><td class="memSeparator" colspan="2"> </td></tr>
@@ -894,85 +894,78 @@ Typedefs</h2></td></tr>
<tr class="separator:a06b978aef31306f3cfd3d8b6094f3ce3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memItemLeft" align="right" valign="top">typedef tvec4< u8, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_u8vec4</b></td></tr>
<tr class="separator:a0ee5018e2f37029d5800e32fbcf74c74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
+<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
+<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
+<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
+<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
+<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
+<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
+<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
+<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memItemLeft" align="right" valign="top">typedef tvec1< float, mediump > </td><td class="memItemRight" valign="bottom"><b>mediump_vec1</b></td></tr>
<tr class="separator:ac9bd33e4fdd9fce967a9f4a5e5ab70b4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2fad291f6402e228d28779df175ba37a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fad291f6402e228d28779df175ba37a"></a>
typedef highp_quat </td><td class="memItemRight" valign="bottom"><b>quat</b></td></tr>
<tr class="separator:a2fad291f6402e228d28779df175ba37a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
+<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
+<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
+<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
+<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
+<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
+<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
+<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
+<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
+<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
+<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
+<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
+<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
+<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
+<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
+<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
+<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
+<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
+<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
+<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
+<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
+<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
+<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
+<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
+<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-03-30 / 2013-03-31 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00038_source.html b/doc/api/a00038_source.html
index a5ca338..278b4d1 100644
--- a/doc/api/a00038_source.html
+++ b/doc/api/a00038_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: fwd.hpp Source File</title>
+<title>0.9.8: fwd.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,1661 +50,1661 @@
</div><!--header-->
<div class="contents">
<a href="a00038.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00119.html">detail/type_int.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00116.html">detail/type_float.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">detail/type_vec.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">detail/type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// GLM_GTC_quaternion</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tquat;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tquat<float, lowp> lowp_quat;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> tquat<float, mediump> mediump_quat;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> tquat<float, highp> highp_quat;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> highp_quat quat;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> mediump_quat quat;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> lowp_quat quat;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> highp_quat quat;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> lowp_quat lowp_fquat;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">typedef</span> mediump_quat mediump_fquat;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">typedef</span> highp_quat highp_fquat;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">typedef</span> quat fquat;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">detail/type_int.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00110.html">detail/type_float.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">detail/type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">detail/type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// GLM_GTC_quaternion</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tquat;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tquat<float, lowp> lowp_quat;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> tquat<float, mediump> mediump_quat;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">typedef</span> tquat<float, highp> highp_quat;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> mediump_quat quat;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typedef</span> lowp_quat quat;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> highp_quat quat;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> lowp_quat lowp_fquat;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> mediump_quat mediump_fquat;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> highp_quat highp_fquat;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">typedef</span> quat fquat;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> tquat<double, lowp> lowp_dquat;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> tquat<double, mediump> mediump_dquat;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> tquat<double, highp> highp_dquat;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> mediump_dquat dquat;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">typedef</span> lowp_dquat dquat;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">typedef</span> highp_dquat dquat;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typedef</span> tquat<double, lowp> lowp_dquat;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> tquat<double, mediump> mediump_dquat;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">typedef</span> tquat<double, highp> highp_dquat;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> highp_dquat dquat;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> mediump_dquat dquat;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">typedef</span> lowp_dquat dquat;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> highp_dquat dquat;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// GLM_GTC_precision</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6"> 129</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="a00181.html#ga698e36b01167fc0f037889334dce8def"> 133</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02"> 137</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c"> 141</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3"> 145</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a"> 149</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc"> 153</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847"> 157</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54"> 161</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7"> 165</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac"> 169</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8"> 173</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e"> 177</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d"> 181</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8"> 185</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866"> 189</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae"> 193</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54"> 197</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180"> 201</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64"> 205</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21"> 209</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a"> 213</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1"> 217</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f"> 221</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf"> 225</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718"> 229</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223"> 233</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac"> 237</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5"> 241</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff"> 245</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f"> 249</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// GLM_GTC_precision</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6"> 100</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00177.html#ga698e36b01167fc0f037889334dce8def"> 104</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02"> 108</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c"> 112</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3"> 116</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a"> 120</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc"> 124</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847"> 128</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54"> 132</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7"> 136</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac"> 140</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8"> 144</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e"> 148</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d"> 152</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8"> 156</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866"> 160</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae"> 164</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54"> 168</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180"> 172</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64"> 176</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21"> 180</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a"> 184</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1"> 188</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f"> 192</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf"> 196</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718"> 200</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223"> 204</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac"> 208</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5"> 212</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff"> 216</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f"> 220</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3"> 224</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee"> 228</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8"> 232</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25"> 236</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd"> 240</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3"> 253</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee"> 257</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8"> 261</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25"> 265</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd"> 269</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">using</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keyword">using</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede"> 272</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710"> 276</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61"> 280</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355"> 285</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699"> 289</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb"> 293</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00177.html#gadb997e409103d4da18abd837e636a496"> 297</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede"> 301</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710"> 305</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61"> 309</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355"> 314</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699"> 318</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb"> 322</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="a00181.html#gadb997e409103d4da18abd837e636a496"> 326</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keyword">typedef</span> tvec1<i8, lowp> lowp_i8vec1;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keyword">typedef</span> tvec2<i8, lowp> lowp_i8vec2;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">typedef</span> tvec3<i8, lowp> lowp_i8vec3;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keyword">typedef</span> tvec4<i8, lowp> lowp_i8vec4;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">typedef</span> tvec1<i8, mediump> mediump_i8vec1;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">typedef</span> tvec2<i8, mediump> mediump_i8vec2;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">typedef</span> tvec3<i8, mediump> mediump_i8vec3;</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">typedef</span> tvec1<i8, lowp> lowp_i8vec1;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">typedef</span> tvec4<i8, mediump> mediump_i8vec4;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">typedef</span> tvec2<i8, lowp> lowp_i8vec2;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">typedef</span> tvec3<i8, lowp> lowp_i8vec3;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">typedef</span> tvec4<i8, lowp> lowp_i8vec4;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">typedef</span> tvec1<i8, mediump> mediump_i8vec1;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">typedef</span> tvec1<i8, highp> highp_i8vec1;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">typedef</span> tvec2<i8, highp> highp_i8vec2;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">typedef</span> tvec3<i8, highp> highp_i8vec3;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">typedef</span> tvec4<i8, highp> highp_i8vec4;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">typedef</span> tvec2<i8, mediump> mediump_i8vec2;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keyword">typedef</span> tvec3<i8, mediump> mediump_i8vec3;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">typedef</span> tvec4<i8, mediump> mediump_i8vec4;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">typedef</span> tvec1<i8, highp> highp_i8vec1;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">typedef</span> tvec2<i8, highp> highp_i8vec2;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">typedef</span> tvec3<i8, highp> highp_i8vec3;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">typedef</span> tvec4<i8, highp> highp_i8vec4;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">typedef</span> lowp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">typedef</span> lowp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">typedef</span> lowp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">typedef</span> lowp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keyword">typedef</span> mediump_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">typedef</span> mediump_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">typedef</span> mediump_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">typedef</span> mediump_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>; </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">typedef</span> highp_i8vec1 <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185"> 368</a></span> <span class="keyword">typedef</span> highp_i8vec2 <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c"> 372</a></span> <span class="keyword">typedef</span> highp_i8vec3 <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e"> 376</a></span> <span class="keyword">typedef</span> highp_i8vec4 <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">typedef</span> lowp_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">typedef</span> lowp_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">typedef</span> lowp_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">typedef</span> lowp_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">typedef</span> mediump_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">typedef</span> mediump_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keyword">typedef</span> mediump_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">typedef</span> mediump_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>; </div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">typedef</span> highp_i8vec1 <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
-<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185"> 397</a></span> <span class="keyword">typedef</span> highp_i8vec2 <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c"> 401</a></span> <span class="keyword">typedef</span> highp_i8vec3 <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e"> 405</a></span> <span class="keyword">typedef</span> highp_i8vec4 <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">typedef</span> tvec1<i16, lowp> lowp_i16vec1;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">typedef</span> tvec2<i16, lowp> lowp_i16vec2;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">typedef</span> tvec3<i16, lowp> lowp_i16vec3;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">typedef</span> tvec4<i16, lowp> lowp_i16vec4;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">typedef</span> tvec1<i16, mediump> mediump_i16vec1;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keyword">typedef</span> tvec2<i16, mediump> mediump_i16vec2;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">typedef</span> tvec3<i16, mediump> mediump_i16vec3;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">typedef</span> tvec1<i16, lowp> lowp_i16vec1;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">typedef</span> tvec4<i16, mediump> mediump_i16vec4;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">typedef</span> tvec2<i16, lowp> lowp_i16vec2;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">typedef</span> tvec3<i16, lowp> lowp_i16vec3;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">typedef</span> tvec4<i16, lowp> lowp_i16vec4;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">typedef</span> tvec1<i16, highp> highp_i16vec1;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">typedef</span> tvec2<i16, highp> highp_i16vec2;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword">typedef</span> tvec3<i16, highp> highp_i16vec3;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">typedef</span> tvec1<i16, mediump> mediump_i16vec1;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">typedef</span> tvec4<i16, highp> highp_i16vec4;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">typedef</span> tvec2<i16, mediump> mediump_i16vec2;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">typedef</span> tvec3<i16, mediump> mediump_i16vec3;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">typedef</span> tvec4<i16, mediump> mediump_i16vec4;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">typedef</span> tvec1<i16, highp> highp_i16vec1;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">typedef</span> tvec2<i16, highp> highp_i16vec2;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword">typedef</span> tvec3<i16, highp> highp_i16vec3;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="keyword">typedef</span> tvec4<i16, highp> highp_i16vec4;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">typedef</span> lowp_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> lowp_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">typedef</span> lowp_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">typedef</span> lowp_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">typedef</span> mediump_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keyword">typedef</span> mediump_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">typedef</span> mediump_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">typedef</span> mediump_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">typedef</span> highp_i16vec1 <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79"> 477</a></span> <span class="keyword">typedef</span> highp_i16vec2 <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00181.html#ga973b226a9914db682c9372fc761fb535"> 481</a></span> <span class="keyword">typedef</span> highp_i16vec3 <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div>
-<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426"> 485</a></span> <span class="keyword">typedef</span> highp_i16vec4 <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">typedef</span> lowp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">typedef</span> lowp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">typedef</span> lowp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">typedef</span> lowp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">typedef</span> mediump_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">typedef</span> mediump_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">typedef</span> mediump_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">typedef</span> mediump_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">typedef</span> highp_i16vec1 <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div>
+<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79"> 448</a></span> <span class="keyword">typedef</span> highp_i16vec2 <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="a00177.html#ga973b226a9914db682c9372fc761fb535"> 452</a></span> <span class="keyword">typedef</span> highp_i16vec3 <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426"> 456</a></span> <span class="keyword">typedef</span> highp_i16vec4 <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
-<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c"> 556</a></span> <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="a00181.html#ga40cd3f391c03512f158d10a70062264e"> 560</a></span> <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="a00181.html#gae3364a8090e7e1408056e00403dfecab"> 564</a></span> <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c"> 527</a></span> <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="a00177.html#ga40cd3f391c03512f158d10a70062264e"> 531</a></span> <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="a00177.html#gae3364a8090e7e1408056e00403dfecab"> 535</a></span> <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keyword">typedef</span> tvec1<i32, lowp> lowp_i32vec1;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">typedef</span> tvec2<i32, lowp> lowp_i32vec2;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="keyword">typedef</span> tvec3<i32, lowp> lowp_i32vec3;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keyword">typedef</span> tvec4<i32, lowp> lowp_i32vec4;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="keyword">typedef</span> tvec1<i32, mediump> mediump_i32vec1;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">typedef</span> tvec2<i32, mediump> mediump_i32vec2;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="keyword">typedef</span> tvec3<i32, mediump> mediump_i32vec3;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="keyword">typedef</span> tvec4<i32, mediump> mediump_i32vec4;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="keyword">typedef</span> tvec1<i32, highp> highp_i32vec1;</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keyword">typedef</span> tvec2<i32, highp> highp_i32vec2;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="keyword">typedef</span> tvec3<i32, highp> highp_i32vec3;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="keyword">typedef</span> tvec4<i32, highp> highp_i32vec4;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> </div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keyword">typedef</span> lowp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">typedef</span> lowp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="keyword">typedef</span> lowp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">typedef</span> lowp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="keyword">typedef</span> mediump_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keyword">typedef</span> mediump_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="keyword">typedef</span> mediump_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">typedef</span> mediump_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keyword">typedef</span> highp_i32vec1 <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="keyword">typedef</span> highp_i32vec2 <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="keyword">typedef</span> highp_i32vec3 <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keyword">typedef</span> highp_i32vec4 <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">typedef</span> tvec1<i64, lowp> lowp_i64vec1;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">typedef</span> tvec2<i64, lowp> lowp_i64vec2;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keyword">typedef</span> tvec3<i64, lowp> lowp_i64vec3;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="keyword">typedef</span> tvec4<i64, lowp> lowp_i64vec4;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keyword">typedef</span> tvec1<i64, mediump> mediump_i64vec1;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keyword">typedef</span> tvec2<i64, mediump> mediump_i64vec2;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">typedef</span> tvec3<i64, mediump> mediump_i64vec3;</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">typedef</span> tvec1<i64, lowp> lowp_i64vec1;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">typedef</span> tvec4<i64, mediump> mediump_i64vec4;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keyword">typedef</span> tvec2<i64, lowp> lowp_i64vec2;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keyword">typedef</span> tvec3<i64, lowp> lowp_i64vec3;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">typedef</span> tvec4<i64, lowp> lowp_i64vec4;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">typedef</span> tvec1<i64, highp> highp_i64vec1;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword">typedef</span> tvec2<i64, highp> highp_i64vec2;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keyword">typedef</span> tvec3<i64, highp> highp_i64vec3;</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">typedef</span> tvec1<i64, mediump> mediump_i64vec1;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">typedef</span> tvec4<i64, highp> highp_i64vec4;</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keyword">typedef</span> tvec2<i64, mediump> mediump_i64vec2;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="keyword">typedef</span> tvec3<i64, mediump> mediump_i64vec3;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">typedef</span> tvec4<i64, mediump> mediump_i64vec4;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="keyword">typedef</span> tvec1<i64, highp> highp_i64vec1;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">typedef</span> tvec2<i64, highp> highp_i64vec2;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="keyword">typedef</span> tvec3<i64, highp> highp_i64vec3;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">typedef</span> tvec4<i64, highp> highp_i64vec4;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">typedef</span> lowp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keyword">typedef</span> lowp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="keyword">typedef</span> lowp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keyword">typedef</span> lowp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="keyword">typedef</span> mediump_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keyword">typedef</span> mediump_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="keyword">typedef</span> mediump_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="keyword">typedef</span> mediump_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="keyword">typedef</span> highp_i64vec1 <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="a00177.html#gade69872a31f066e5ae212f1af6008edb"> 686</a></span> <span class="keyword">typedef</span> highp_i64vec2 <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div>
+<div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e"> 690</a></span> <span class="keyword">typedef</span> highp_i64vec3 <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c"> 694</a></span> <span class="keyword">typedef</span> highp_i64vec4 <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="keyword">typedef</span> lowp_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">typedef</span> lowp_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="keyword">typedef</span> lowp_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keyword">typedef</span> lowp_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keyword">typedef</span> mediump_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">typedef</span> mediump_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="keyword">typedef</span> mediump_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="keyword">typedef</span> mediump_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="keyword">typedef</span> highp_i64vec1 <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
-<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="a00181.html#gade69872a31f066e5ae212f1af6008edb"> 715</a></span> <span class="keyword">typedef</span> highp_i64vec2 <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="a00177.html#gaf49470869e9be2c059629b250619804e"> 703</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78"> 707</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
+<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b"> 711</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="a00177.html#gaa212b805736a759998e312cbdd550fae"> 715</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div>
-<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e"> 719</a></span> <span class="keyword">typedef</span> highp_i64vec3 <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div>
-<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c"> 723</a></span> <span class="keyword">typedef</span> highp_i64vec4 <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="a00177.html#ga667b2ece2b258be898812dc2177995d1"> 720</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
+<div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f"> 724</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b"> 728</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div>
-<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00181.html#gaf49470869e9be2c059629b250619804e"> 732</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153"> 732</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
-<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78"> 736</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> </div>
-<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b"> 740</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div>
-<div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="a00181.html#gaa212b805736a759998e312cbdd550fae"> 744</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083"> 737</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126"> 741</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div>
+<div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250"> 745</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div>
-<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="a00181.html#ga667b2ece2b258be898812dc2177995d1"> 749</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed"> 749</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> </div>
-<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f"> 753</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div>
-<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b"> 757</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div>
-<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153"> 761</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> </div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div>
-<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083"> 766</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
-<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126"> 770</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
-<div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250"> 774</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div>
-<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed"> 778</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div>
+<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3"> 755</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div>
+<div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb"> 759</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f"> 763</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="a00177.html#ga30652709815ad9404272a31957daa59e"> 767</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="a00177.html#gadfe65c78231039e90507770db50c98c7"> 771</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div>
+<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e"> 775</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5"> 779</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div>
-<div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3"> 784</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb"> 788</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
-<div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f"> 792</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> </div>
-<div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="a00181.html#ga30652709815ad9404272a31957daa59e"> 796</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div>
-<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="a00181.html#gadfe65c78231039e90507770db50c98c7"> 800</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9"> 783</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281"> 787</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div>
+<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80"> 791</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> </div>
+<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9"> 795</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610"> 799</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> </div>
-<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e"> 804</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div>
-<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5"> 808</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> </div>
-<div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9"> 812</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> </div>
-<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281"> 816</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div>
-<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80"> 820</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9"> 824</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div>
-<div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610"> 828</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div>
+<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb"> 805</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
+<div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="a00177.html#ga746dc6da204f5622e395f492997dbf57"> 809</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3"> 813</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div>
+<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce"> 817</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5"> 821</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div>
+<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7"> 825</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div>
+<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e"> 829</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> </div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> </div>
-<div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb"> 834</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div>
-<div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="a00181.html#ga746dc6da204f5622e395f492997dbf57"> 838</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> </div>
-<div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3"> 842</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div>
-<div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce"> 846</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> </div>
-<div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5"> 850</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08"> 833</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div>
+<div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c"> 837</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div>
+<div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369"> 841</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> </div>
+<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf"> 845</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> </div>
+<div class="line"><a name="l00849"></a><span class="lineno"><a class="line" href="a00177.html#ga0c181fdf06a309691999926b6690c969"> 849</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> </div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </div>
-<div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7"> 854</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> </div>
-<div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e"> 858</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div>
-<div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08"> 862</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> </div>
-<div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c"> 866</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> </div>
-<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369"> 870</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div>
-<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf"> 874</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> </div>
-<div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="a00181.html#ga0c181fdf06a309691999926b6690c969"> 878</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> </div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> </div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div>
-<div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf"> 910</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> </div>
-<div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac"> 914</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> </div>
-<div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee"> 918</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> </div>
-<div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36"> 923</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div>
-<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff"> 927</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> </div>
-<div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="a00181.html#ga8165913e068444f7842302d40ba897b9"> 931</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> </div>
-<div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="a00181.html#gaf3f312156984c365e9f65620354da70b"> 935</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> </div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> </div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> </div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div>
+<div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf"> 881</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac"> 885</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee"> 889</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> </div>
+<div class="line"><a name="l00894"></a><span class="lineno"><a class="line" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36"> 894</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div>
+<div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff"> 898</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> </div>
+<div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="a00177.html#ga8165913e068444f7842302d40ba897b9"> 902</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div>
+<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="a00177.html#gaf3f312156984c365e9f65620354da70b"> 906</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> </div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="keyword">typedef</span> tvec1<u8, lowp> lowp_u8vec1;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keyword">typedef</span> tvec2<u8, lowp> lowp_u8vec2;</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="keyword">typedef</span> tvec3<u8, lowp> lowp_u8vec3;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> </div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="keyword">typedef</span> tvec4<u8, lowp> lowp_u8vec4;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> </div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="keyword">typedef</span> tvec1<u8, mediump> mediump_u8vec1;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="keyword">typedef</span> tvec2<u8, mediump> mediump_u8vec2;</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="keyword">typedef</span> tvec3<u8, mediump> mediump_u8vec3;</div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="keyword">typedef</span> tvec1<u8, lowp> lowp_u8vec1;</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="keyword">typedef</span> tvec2<u8, lowp> lowp_u8vec2;</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="keyword">typedef</span> tvec3<u8, lowp> lowp_u8vec3;</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="keyword">typedef</span> tvec4<u8, lowp> lowp_u8vec4;</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="keyword">typedef</span> tvec4<u8, mediump> mediump_u8vec4;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="keyword">typedef</span> tvec1<u8, highp> highp_u8vec1;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> </div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="keyword">typedef</span> tvec2<u8, highp> highp_u8vec2;</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="keyword">typedef</span> tvec3<u8, highp> highp_u8vec3;</div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keyword">typedef</span> tvec1<u8, mediump> mediump_u8vec1;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keyword">typedef</span> tvec4<u8, highp> highp_u8vec4;</div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="keyword">typedef</span> tvec2<u8, mediump> mediump_u8vec2;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> </div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="keyword">typedef</span> tvec3<u8, mediump> mediump_u8vec3;</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> </div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="keyword">typedef</span> tvec4<u8, mediump> mediump_u8vec4;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> </div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="keyword">typedef</span> tvec1<u8, highp> highp_u8vec1;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> </div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="keyword">typedef</span> tvec2<u8, highp> highp_u8vec2;</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> </div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="keyword">typedef</span> tvec3<u8, highp> highp_u8vec3;</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> </div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="keyword">typedef</span> tvec4<u8, highp> highp_u8vec4;</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="keyword">typedef</span> lowp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="keyword">typedef</span> lowp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="keyword">typedef</span> lowp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="keyword">typedef</span> lowp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="keyword">typedef</span> mediump_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keyword">typedef</span> mediump_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="keyword">typedef</span> mediump_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="keyword">typedef</span> mediump_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>; </div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="keyword">typedef</span> highp_u8vec1 <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
+<div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d"> 977</a></span> <span class="keyword">typedef</span> highp_u8vec2 <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div>
+<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661"> 981</a></span> <span class="keyword">typedef</span> highp_u8vec3 <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno"><a class="line" href="a00177.html#ga114e005014d910bea07954eee24b7efb"> 985</a></span> <span class="keyword">typedef</span> highp_u8vec4 <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> </div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="keyword">typedef</span> lowp_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="keyword">typedef</span> lowp_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="keyword">typedef</span> lowp_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="keyword">typedef</span> lowp_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="keyword">typedef</span> mediump_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keyword">typedef</span> mediump_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="keyword">typedef</span> mediump_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="keyword">typedef</span> mediump_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>; </div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="keyword">typedef</span> highp_u8vec1 <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> </div>
-<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d"> 1006</a></span> <span class="keyword">typedef</span> highp_u8vec2 <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> </div>
-<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661"> 1010</a></span> <span class="keyword">typedef</span> highp_u8vec3 <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div>
-<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="a00181.html#ga114e005014d910bea07954eee24b7efb"> 1014</a></span> <span class="keyword">typedef</span> highp_u8vec4 <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="keyword">typedef</span> tvec1<u16, lowp> lowp_u16vec1;</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> </div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="keyword">typedef</span> tvec2<u16, lowp> lowp_u16vec2;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> </div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="keyword">typedef</span> tvec3<u16, lowp> lowp_u16vec3;</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="keyword">typedef</span> tvec4<u16, lowp> lowp_u16vec4;</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> </div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="keyword">typedef</span> tvec1<u16, mediump> mediump_u16vec1;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="keyword">typedef</span> tvec2<u16, mediump> mediump_u16vec2;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">typedef</span> tvec3<u16, mediump> mediump_u16vec3;</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> </div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="keyword">typedef</span> tvec1<u16, lowp> lowp_u16vec1;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="keyword">typedef</span> tvec4<u16, mediump> mediump_u16vec4;</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="keyword">typedef</span> tvec2<u16, lowp> lowp_u16vec2;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keyword">typedef</span> tvec3<u16, lowp> lowp_u16vec3;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="keyword">typedef</span> tvec4<u16, lowp> lowp_u16vec4;</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> </div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keyword">typedef</span> tvec1<u16, highp> highp_u16vec1;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="keyword">typedef</span> tvec2<u16, highp> highp_u16vec2;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="keyword">typedef</span> tvec3<u16, highp> highp_u16vec3;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword">typedef</span> tvec1<u16, mediump> mediump_u16vec1;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword">typedef</span> tvec4<u16, highp> highp_u16vec4;</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> </div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keyword">typedef</span> tvec2<u16, mediump> mediump_u16vec2;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="keyword">typedef</span> tvec3<u16, mediump> mediump_u16vec3;</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> </div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="keyword">typedef</span> tvec4<u16, mediump> mediump_u16vec4;</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> </div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="keyword">typedef</span> tvec1<u16, highp> highp_u16vec1;</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> </div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="keyword">typedef</span> tvec2<u16, highp> highp_u16vec2;</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="keyword">typedef</span> tvec3<u16, highp> highp_u16vec3;</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> </div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="keyword">typedef</span> tvec4<u16, highp> highp_u16vec4;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keyword">typedef</span> lowp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="keyword">typedef</span> lowp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="keyword">typedef</span> lowp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="keyword">typedef</span> lowp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="keyword">typedef</span> mediump_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="keyword">typedef</span> mediump_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="keyword">typedef</span> mediump_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="keyword">typedef</span> mediump_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="keyword">typedef</span> highp_u16vec1 <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01057"></a><span class="lineno"><a class="line" href="a00177.html#ga426030555085ed6c39a54e73afbef962"> 1057</a></span> <span class="keyword">typedef</span> highp_u16vec2 <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
+<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71"> 1061</a></span> <span class="keyword">typedef</span> highp_u16vec3 <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
+<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae"> 1065</a></span> <span class="keyword">typedef</span> highp_u16vec4 <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="keyword">typedef</span> lowp_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="keyword">typedef</span> lowp_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="keyword">typedef</span> lowp_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="keyword">typedef</span> lowp_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="keyword">typedef</span> mediump_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="keyword">typedef</span> mediump_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="keyword">typedef</span> mediump_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="keyword">typedef</span> mediump_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="keyword">typedef</span> highp_u16vec1 <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> </div>
-<div class="line"><a name="l01086"></a><span class="lineno"><a class="line" href="a00181.html#ga426030555085ed6c39a54e73afbef962"> 1086</a></span> <span class="keyword">typedef</span> highp_u16vec2 <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> </div>
-<div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71"> 1090</a></span> <span class="keyword">typedef</span> highp_u16vec3 <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> </div>
-<div class="line"><a name="l01094"></a><span class="lineno"><a class="line" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae"> 1094</a></span> <span class="keyword">typedef</span> highp_u16vec4 <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> </div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> </div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> </div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> </div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> </div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> </div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> </div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> </div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075"> 1136</a></span> <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"><a class="line" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23"> 1140</a></span> <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div>
+<div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6"> 1144</a></span> <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> </div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> </div>
-<div class="line"><a name="l01165"></a><span class="lineno"><a class="line" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075"> 1165</a></span> <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> </div>
-<div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23"> 1169</a></span> <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> </div>
-<div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6"> 1173</a></span> <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> </div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> </div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="keyword">typedef</span> tvec1<u32, lowp> lowp_u32vec1;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> </div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="keyword">typedef</span> tvec2<u32, lowp> lowp_u32vec2;</div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> </div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="keyword">typedef</span> tvec3<u32, lowp> lowp_u32vec3;</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> </div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="keyword">typedef</span> tvec4<u32, lowp> lowp_u32vec4;</div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> </div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> </div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> </div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="keyword">typedef</span> tvec1<u32, mediump> mediump_u32vec1;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="keyword">typedef</span> tvec2<u32, mediump> mediump_u32vec2;</div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> </div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="keyword">typedef</span> tvec3<u32, mediump> mediump_u32vec3;</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> </div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="keyword">typedef</span> tvec4<u32, mediump> mediump_u32vec4;</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> </div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> </div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="keyword">typedef</span> tvec1<u32, highp> highp_u32vec1;</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> </div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="keyword">typedef</span> tvec2<u32, highp> highp_u32vec2;</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> </div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="keyword">typedef</span> tvec3<u32, highp> highp_u32vec3;</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> </div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="keyword">typedef</span> tvec4<u32, highp> highp_u32vec4;</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> </div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> </div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> </div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> </div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="keyword">typedef</span> lowp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="keyword">typedef</span> lowp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="keyword">typedef</span> lowp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="keyword">typedef</span> lowp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="keyword">typedef</span> mediump_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="keyword">typedef</span> mediump_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="keyword">typedef</span> mediump_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keyword">typedef</span> mediump_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="keyword">typedef</span> highp_u32vec1 <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> </div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="keyword">typedef</span> highp_u32vec2 <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> </div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="keyword">typedef</span> highp_u32vec3 <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="keyword">typedef</span> highp_u32vec4 <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> </div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> </div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="keyword">typedef</span> tvec1<u64, lowp> lowp_u64vec1;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> </div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="keyword">typedef</span> tvec1<u64, lowp> lowp_u64vec1;</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="keyword">typedef</span> tvec2<u64, lowp> lowp_u64vec2;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> </div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="keyword">typedef</span> tvec3<u64, lowp> lowp_u64vec3;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> </div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="keyword">typedef</span> tvec4<u64, lowp> lowp_u64vec4;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> </div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> </div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="keyword">typedef</span> tvec1<u64, mediump> mediump_u64vec1;</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> </div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="keyword">typedef</span> tvec2<u64, mediump> mediump_u64vec2;</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="keyword">typedef</span> tvec3<u64, mediump> mediump_u64vec3;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="keyword">typedef</span> tvec4<u64, mediump> mediump_u64vec4;</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> </div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="keyword">typedef</span> tvec2<u64, lowp> lowp_u64vec2;</div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> </div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="keyword">typedef</span> tvec3<u64, lowp> lowp_u64vec3;</div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> </div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="keyword">typedef</span> tvec4<u64, lowp> lowp_u64vec4;</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> </div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> </div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="keyword">typedef</span> tvec1<u64, highp> highp_u64vec1;</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="keyword">typedef</span> tvec2<u64, highp> highp_u64vec2;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> </div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="keyword">typedef</span> tvec3<u64, highp> highp_u64vec3;</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> </div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="keyword">typedef</span> tvec1<u64, mediump> mediump_u64vec1;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="keyword">typedef</span> tvec4<u64, highp> highp_u64vec4;</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> </div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="keyword">typedef</span> tvec2<u64, mediump> mediump_u64vec2;</div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> </div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="keyword">typedef</span> tvec3<u64, mediump> mediump_u64vec3;</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> </div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="keyword">typedef</span> tvec4<u64, mediump> mediump_u64vec4;</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> </div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> </div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="keyword">typedef</span> tvec1<u64, highp> highp_u64vec1;</div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> </div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="keyword">typedef</span> tvec2<u64, highp> highp_u64vec2;</div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> </div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="keyword">typedef</span> tvec3<u64, highp> highp_u64vec3;</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> </div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="keyword">typedef</span> tvec4<u64, highp> highp_u64vec4;</div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> </div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="keyword">typedef</span> lowp_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="keyword">typedef</span> lowp_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="keyword">typedef</span> lowp_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="keyword">typedef</span> lowp_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="keyword">typedef</span> mediump_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="keyword">typedef</span> mediump_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="keyword">typedef</span> mediump_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="keyword">typedef</span> mediump_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="keyword">typedef</span> highp_u64vec1 <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="keyword">typedef</span> lowp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="keyword">typedef</span> lowp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="keyword">typedef</span> lowp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="keyword">typedef</span> lowp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="keyword">typedef</span> mediump_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="keyword">typedef</span> mediump_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="keyword">typedef</span> mediump_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="keyword">typedef</span> mediump_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="keyword">typedef</span> highp_u64vec1 <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> </div>
+<div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e"> 1295</a></span> <span class="keyword">typedef</span> highp_u64vec2 <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> </div>
+<div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c"> 1299</a></span> <span class="keyword">typedef</span> highp_u64vec3 <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> </div>
+<div class="line"><a name="l01303"></a><span class="lineno"><a class="line" href="a00177.html#gafb6ca34df28889a5db9d244aed375411"> 1303</a></span> <span class="keyword">typedef</span> highp_u64vec4 <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> </div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> </div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> </div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> </div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> </div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> </div>
-<div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e"> 1324</a></span> <span class="keyword">typedef</span> highp_u64vec2 <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> </div>
-<div class="line"><a name="l01328"></a><span class="lineno"><a class="line" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c"> 1328</a></span> <span class="keyword">typedef</span> highp_u64vec3 <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div>
-<div class="line"><a name="l01332"></a><span class="lineno"><a class="line" href="a00181.html#gafb6ca34df28889a5db9d244aed375411"> 1332</a></span> <span class="keyword">typedef</span> highp_u64vec4 <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> </div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> </div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> </div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> </div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> </div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> </div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> </div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> </div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> </div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> </div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> </div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> </div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> </div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> </div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> </div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> </div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> </div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> </div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> </div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> </div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> </div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="keyword">typedef</span> detail::float32 mediump_float32;</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> </div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="keyword">typedef</span> detail::float32 lowp_float32;</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="keyword">typedef</span> detail::float64 mediump_float64;</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> </div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="keyword">typedef</span> detail::float64 lowp_float64;</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="keyword">typedef</span> detail::float32 mediump_float32_t;</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> </div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="keyword">typedef</span> detail::float32 lowp_float32_t;</div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="keyword">typedef</span> detail::float64 lowp_float64_t;</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="keyword">typedef</span> detail::float64 mediump_float64_t;</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> mediump_f32;</div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> </div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> lowp_f32;</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> mediump_f64;</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> </div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> lowp_f64;</div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> </div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="keyword">typedef</span> detail::float32 highp_float32;</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> </div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="keyword">typedef</span> detail::float32 mediump_float32;</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="keyword">typedef</span> detail::float64 highp_float64;</div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> </div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="keyword">typedef</span> detail::float64 mediump_float64;</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="keyword">typedef</span> detail::float32 highp_float32_t;</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> </div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="keyword">typedef</span> detail::float32 mediump_float32_t;</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="keyword">typedef</span> detail::float64 highp_float64_t;</div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> </div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="keyword">typedef</span> detail::float64 mediump_float64_t;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> highp_f32;</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> mediump_f32;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> highp_f64;</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> </div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> mediump_f64;</div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> </div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> </div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="keyword">typedef</span> detail::float32 highp_float32;</div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> </div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="keyword">typedef</span> detail::float64 highp_float64;</div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> </div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="keyword">typedef</span> detail::float32 highp_float32_t;</div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> </div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="keyword">typedef</span> detail::float64 highp_float64_t;</div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> highp_f32;</div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> </div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> highp_f64;</div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> </div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> </div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="keyword">typedef</span> lowp_float32 <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> </div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="keyword">typedef</span> lowp_float64 <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> </div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="keyword">typedef</span> lowp_float32_t <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="keyword">typedef</span> lowp_float64_t <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> </div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="keyword">typedef</span> lowp_f32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> </div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="keyword">typedef</span> lowp_f64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> </div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="keyword">typedef</span> mediump_float32 float32;</div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> </div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="keyword">typedef</span> mediump_float64 float64;</div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> </div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> </div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> </div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> </div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="preprocessor">#else//(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> </div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="keyword">typedef</span> highp_float32 float32;</div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> </div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="keyword">typedef</span> highp_float64 float64;</div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> </div>
-<div class="line"><a name="l01526"></a><span class="lineno"><a class="line" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77"> 1526</a></span> <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> </div>
-<div class="line"><a name="l01530"></a><span class="lineno"><a class="line" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37"> 1530</a></span> <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> </div>
-<div class="line"><a name="l01534"></a><span class="lineno"><a class="line" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"> 1534</a></span> <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> </div>
-<div class="line"><a name="l01538"></a><span class="lineno"><a class="line" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9"> 1538</a></span> <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> </div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="keyword">typedef</span> lowp_float32 <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="keyword">typedef</span> lowp_float64 <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> </div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="keyword">typedef</span> lowp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> </div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="keyword">typedef</span> lowp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> </div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="keyword">typedef</span> lowp_f32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="keyword">typedef</span> lowp_f64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> </div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> </div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="keyword">typedef</span> mediump_float32 float32;</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="keyword">typedef</span> mediump_float64 float64;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> </div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> </div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="keyword">typedef</span> mediump_float32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="keyword">typedef</span> mediump_float64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> </div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="preprocessor">#else//(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> </div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <span class="keyword">typedef</span> highp_float32 float32;</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> </div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="keyword">typedef</span> highp_float64 float64;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> </div>
+<div class="line"><a name="l01497"></a><span class="lineno"><a class="line" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77"> 1497</a></span> <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> </div>
+<div class="line"><a name="l01501"></a><span class="lineno"><a class="line" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37"> 1501</a></span> <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01505"></a><span class="lineno"><a class="line" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"> 1505</a></span> <span class="keyword">typedef</span> highp_float32_t <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> </div>
+<div class="line"><a name="l01509"></a><span class="lineno"><a class="line" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9"> 1509</a></span> <span class="keyword">typedef</span> highp_float64_t <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> </div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> </div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_vec1;</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> </div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="keyword">typedef</span> tvec2<float, lowp> <a class="code" href="a00158.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> </div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="keyword">typedef</span> tvec3<float, lowp> <a class="code" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> </div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="keyword">typedef</span> tvec4<float, lowp> <a class="code" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> </div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_fvec1;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> </div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="keyword">typedef</span> tvec2<float, lowp> lowp_fvec2;</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> </div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="keyword">typedef</span> tvec3<float, lowp> lowp_fvec3;</div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> </div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> </div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_vec1;</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="keyword">typedef</span> tvec4<float, lowp> lowp_fvec4;</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> </div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> </div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="keyword">typedef</span> tvec2<float, lowp> <a class="code" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_vec1;</div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> </div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="keyword">typedef</span> tvec3<float, lowp> <a class="code" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="keyword">typedef</span> tvec2<float, mediump> <a class="code" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> </div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="keyword">typedef</span> tvec4<float, lowp> <a class="code" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="keyword">typedef</span> tvec3<float, mediump> <a class="code" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> </div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_fvec1;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="keyword">typedef</span> tvec4<float, mediump> <a class="code" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> </div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="keyword">typedef</span> tvec2<float, lowp> lowp_fvec2;</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_fvec1;</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> </div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="keyword">typedef</span> tvec3<float, lowp> lowp_fvec3;</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="keyword">typedef</span> tvec2<float, mediump> mediump_fvec2;</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> </div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="keyword">typedef</span> tvec4<float, lowp> lowp_fvec4;</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="keyword">typedef</span> tvec3<float, mediump> mediump_fvec3;</div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> </div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> </div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_vec1;</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="keyword">typedef</span> tvec4<float, mediump> mediump_fvec4;</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> </div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> </div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="keyword">typedef</span> tvec2<float, mediump> <a class="code" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_vec1;</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> </div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="keyword">typedef</span> tvec3<float, mediump> <a class="code" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> </div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="keyword">typedef</span> tvec4<float, mediump> <a class="code" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> </div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_fvec1;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> </div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="keyword">typedef</span> tvec2<float, mediump> mediump_fvec2;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_fvec1;</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> </div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="keyword">typedef</span> tvec3<float, mediump> mediump_fvec3;</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="keyword">typedef</span> tvec2<float, highp> highp_fvec2;</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="keyword">typedef</span> tvec4<float, mediump> mediump_fvec4;</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="keyword">typedef</span> tvec3<float, highp> highp_fvec3;</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> </div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> </div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_vec1;</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="keyword">typedef</span> tvec4<float, highp> highp_fvec4;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> </div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="keyword">typedef</span> tvec1<f32, lowp> lowp_f32vec1;</div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> </div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="keyword">typedef</span> tvec2<f32, lowp> lowp_f32vec2;</div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> </div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <span class="keyword">typedef</span> tvec3<f32, lowp> lowp_f32vec3;</div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> </div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_fvec1;</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="keyword">typedef</span> tvec4<f32, lowp> lowp_f32vec4;</div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> </div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="keyword">typedef</span> tvec2<float, highp> highp_fvec2;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="keyword">typedef</span> tvec1<f32, mediump> mediump_f32vec1;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> </div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="keyword">typedef</span> tvec3<float, highp> highp_fvec3;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="keyword">typedef</span> tvec2<f32, mediump> mediump_f32vec2;</div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="keyword">typedef</span> tvec4<float, highp> highp_fvec4;</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="keyword">typedef</span> tvec3<f32, mediump> mediump_f32vec3;</div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> </div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> </div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="keyword">typedef</span> tvec1<f32, lowp> lowp_f32vec1;</div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> </div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="keyword">typedef</span> tvec2<f32, lowp> lowp_f32vec2;</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> </div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="keyword">typedef</span> tvec3<f32, lowp> lowp_f32vec3;</div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> </div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="keyword">typedef</span> tvec4<f32, lowp> lowp_f32vec4;</div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> </div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="keyword">typedef</span> tvec1<f32, mediump> mediump_f32vec1;</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="keyword">typedef</span> tvec4<f32, mediump> mediump_f32vec4;</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> </div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="keyword">typedef</span> tvec1<f32, highp> highp_f32vec1;</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> </div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="keyword">typedef</span> tvec2<f32, highp> highp_f32vec2;</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> </div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="keyword">typedef</span> tvec3<f32, highp> highp_f32vec3;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> </div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="keyword">typedef</span> tvec4<f32, highp> highp_f32vec4;</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> </div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> </div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="keyword">typedef</span> tvec2<f32, mediump> mediump_f32vec2;</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="keyword">typedef</span> tvec1<f64, lowp> lowp_f64vec1;</div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> </div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="keyword">typedef</span> tvec3<f32, mediump> mediump_f32vec3;</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="keyword">typedef</span> tvec2<f64, lowp> lowp_f64vec2;</div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> </div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="keyword">typedef</span> tvec4<f32, mediump> mediump_f32vec4;</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="keyword">typedef</span> tvec3<f64, lowp> lowp_f64vec3;</div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> </div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="keyword">typedef</span> tvec1<f32, highp> highp_f32vec1;</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="keyword">typedef</span> tvec4<f64, lowp> lowp_f64vec4;</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="keyword">typedef</span> tvec2<f32, highp> highp_f32vec2;</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="keyword">typedef</span> tvec1<f64, mediump> mediump_f64vec1;</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> </div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="keyword">typedef</span> tvec3<f32, highp> highp_f32vec3;</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="keyword">typedef</span> tvec2<f64, mediump> mediump_f64vec2;</div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> </div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="keyword">typedef</span> tvec4<f32, highp> highp_f32vec4;</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="keyword">typedef</span> tvec3<f64, mediump> mediump_f64vec3;</div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> </div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> </div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="keyword">typedef</span> tvec1<f64, lowp> lowp_f64vec1;</div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> </div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="keyword">typedef</span> tvec2<f64, lowp> lowp_f64vec2;</div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> </div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="keyword">typedef</span> tvec3<f64, lowp> lowp_f64vec3;</div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> </div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> <span class="keyword">typedef</span> tvec4<f64, lowp> lowp_f64vec4;</div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> </div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="keyword">typedef</span> tvec1<f64, mediump> mediump_f64vec1;</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="keyword">typedef</span> tvec4<f64, mediump> mediump_f64vec4;</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> </div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="keyword">typedef</span> tvec1<f64, highp> highp_f64vec1;</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> </div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="keyword">typedef</span> tvec2<f64, highp> highp_f64vec2;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> </div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="keyword">typedef</span> tvec3<f64, highp> highp_f64vec3;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> </div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="keyword">typedef</span> tvec4<f64, highp> highp_f64vec4;</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> </div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> </div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="keyword">typedef</span> tvec2<f64, mediump> mediump_f64vec2;</div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> </div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="keyword">typedef</span> tvec3<f64, mediump> mediump_f64vec3;</div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> </div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="keyword">typedef</span> tvec4<f64, mediump> mediump_f64vec4;</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> </div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="keyword">typedef</span> tvec1<f64, highp> highp_f64vec1;</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> </div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="keyword">typedef</span> tvec2<f64, highp> highp_f64vec2;</div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> </div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="keyword">typedef</span> tvec3<f64, highp> highp_f64vec3;</div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> </div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="keyword">typedef</span> tvec4<f64, highp> highp_f64vec4;</div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> </div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> </div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment">// Float matrix types</span></div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> </div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment">//typedef lowp_f32 lowp_fmat1x1;</span></div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> </div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_fmat2x2;</div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> </div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_fmat2x3;</div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> </div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_fmat2x4;</div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> </div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_fmat3x2;</div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> </div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_fmat3x3;</div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> </div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_fmat3x4;</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <span class="comment">// Float matrix types</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> </div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment">//typedef lowp_f32 lowp_fmat1x1;</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> </div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_fmat2x2;</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> </div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_fmat2x3;</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> </div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_fmat2x4;</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> </div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_fmat3x2;</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> </div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_fmat3x3;</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> </div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_fmat3x4;</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> </div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_fmat4x2;</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> </div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_fmat4x3;</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> </div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_fmat4x4;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> </div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="comment">//typedef lowp_fmat1x1 lowp_fmat1;</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> </div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="keyword">typedef</span> lowp_fmat2x2 lowp_fmat2;</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> </div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="keyword">typedef</span> lowp_fmat3x3 lowp_fmat3;</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> </div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="keyword">typedef</span> lowp_fmat4x4 lowp_fmat4;</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> </div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_fmat4x2;</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">//typedef mediump_f32 mediump_fmat1x1;</span></div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> </div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_fmat4x3;</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_fmat2x2;</div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> </div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_fmat4x4;</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_fmat2x3;</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> </div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="comment">//typedef lowp_fmat1x1 lowp_fmat1;</span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_fmat2x4;</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> </div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="keyword">typedef</span> lowp_fmat2x2 lowp_fmat2;</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_fmat3x2;</div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> </div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="keyword">typedef</span> lowp_fmat3x3 lowp_fmat3;</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_fmat3x3;</div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> </div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="keyword">typedef</span> lowp_fmat4x4 lowp_fmat4;</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_fmat3x4;</div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> </div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> </div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="comment">//typedef mediump_f32 mediump_fmat1x1;</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> </div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_fmat2x2;</div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> </div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_fmat2x3;</div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> </div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_fmat2x4;</div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> </div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_fmat3x2;</div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> </div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_fmat3x3;</div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> </div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_fmat3x4;</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_fmat4x2;</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> </div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_fmat4x3;</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> </div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_fmat4x4;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> </div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment">//typedef mediump_fmat1x1 mediump_fmat1;</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> </div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="keyword">typedef</span> mediump_fmat2x2 mediump_fmat2;</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> </div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="keyword">typedef</span> mediump_fmat3x3 mediump_fmat3;</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> </div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="keyword">typedef</span> mediump_fmat4x4 mediump_fmat4;</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> </div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> </div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_fmat4x2;</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="comment">//typedef highp_f32 highp_fmat1x1;</span></div>
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> </div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_fmat4x3;</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_fmat2x2;</div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> </div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_fmat4x4;</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_fmat2x3;</div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> </div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment">//typedef mediump_fmat1x1 mediump_fmat1;</span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_fmat2x4;</div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> </div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="keyword">typedef</span> mediump_fmat2x2 mediump_fmat2;</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_fmat3x2;</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> </div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="keyword">typedef</span> mediump_fmat3x3 mediump_fmat3;</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_fmat3x3;</div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> </div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="keyword">typedef</span> mediump_fmat4x4 mediump_fmat4;</div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_fmat3x4;</div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> </div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> </div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> <span class="comment">//typedef highp_f32 highp_fmat1x1;</span></div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> </div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_fmat2x2;</div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> </div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_fmat2x3;</div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> </div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_fmat2x4;</div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> </div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_fmat3x2;</div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> </div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_fmat3x3;</div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> </div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_fmat3x4;</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_fmat4x2;</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> </div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_fmat4x3;</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> </div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_fmat4x4;</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> </div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="comment">//typedef highp_fmat1x1 highp_fmat1;</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> </div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="keyword">typedef</span> highp_fmat2x2 highp_fmat2;</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> </div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="keyword">typedef</span> highp_fmat3x3 highp_fmat3;</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> </div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="keyword">typedef</span> highp_fmat4x4 highp_fmat4;</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> </div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> </div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_fmat4x2;</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="comment">//typedef f32 lowp_f32mat1x1;</span></div>
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> </div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_fmat4x3;</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_f32mat2x2;</div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> </div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_fmat4x4;</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_f32mat2x3;</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> </div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="comment">//typedef highp_fmat1x1 highp_fmat1;</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_f32mat2x4;</div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="keyword">typedef</span> highp_fmat2x2 highp_fmat2;</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_f32mat3x2;</div>
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> </div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="keyword">typedef</span> highp_fmat3x3 highp_fmat3;</div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> </div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="keyword">typedef</span> highp_fmat4x4 highp_fmat4;</div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_f32mat3x3;</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> </div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_f32mat3x4;</div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> </div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> </div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="comment">//typedef f32 lowp_f32mat1x1;</span></div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> </div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="keyword">typedef</span> tmat2x2<f32, lowp> lowp_f32mat2x2;</div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> </div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <span class="keyword">typedef</span> tmat2x3<f32, lowp> lowp_f32mat2x3;</div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> </div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="keyword">typedef</span> tmat2x4<f32, lowp> lowp_f32mat2x4;</div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> </div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="keyword">typedef</span> tmat3x2<f32, lowp> lowp_f32mat3x2;</div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> </div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="keyword">typedef</span> tmat3x3<f32, lowp> lowp_f32mat3x3;</div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> </div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="keyword">typedef</span> tmat3x4<f32, lowp> lowp_f32mat3x4;</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_f32mat4x2;</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> </div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_f32mat4x3;</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_f32mat4x4;</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> </div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">//typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> </div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="keyword">typedef</span> lowp_f32mat2x2 lowp_f32mat2;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> </div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="keyword">typedef</span> lowp_f32mat3x3 lowp_f32mat3;</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> </div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="keyword">typedef</span> lowp_f32mat4x4 lowp_f32mat4;</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> </div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> </div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="keyword">typedef</span> tmat4x2<f32, lowp> lowp_f32mat4x2;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment">//typedef f32 mediump_f32mat1x1;</span></div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> </div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="keyword">typedef</span> tmat4x3<f32, lowp> lowp_f32mat4x3;</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_f32mat2x2;</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> </div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="keyword">typedef</span> tmat4x4<f32, lowp> lowp_f32mat4x4;</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_f32mat2x3;</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> </div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment">//typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;</span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_f32mat2x4;</div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> </div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="keyword">typedef</span> lowp_f32mat2x2 lowp_f32mat2;</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_f32mat3x2;</div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> </div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="keyword">typedef</span> lowp_f32mat3x3 lowp_f32mat3;</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_f32mat3x3;</div>
<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> </div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="keyword">typedef</span> lowp_f32mat4x4 lowp_f32mat4;</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_f32mat3x4;</div>
<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> </div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> </div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="comment">//typedef f32 mediump_f32mat1x1;</span></div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> </div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="keyword">typedef</span> tmat2x2<f32, mediump> mediump_f32mat2x2;</div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> </div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> <span class="keyword">typedef</span> tmat2x3<f32, mediump> mediump_f32mat2x3;</div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> </div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> <span class="keyword">typedef</span> tmat2x4<f32, mediump> mediump_f32mat2x4;</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> </div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="keyword">typedef</span> tmat3x2<f32, mediump> mediump_f32mat3x2;</div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> </div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="keyword">typedef</span> tmat3x3<f32, mediump> mediump_f32mat3x3;</div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> </div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="keyword">typedef</span> tmat3x4<f32, mediump> mediump_f32mat3x4;</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_f32mat4x2;</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> </div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_f32mat4x3;</div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> </div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_f32mat4x4;</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> <span class="comment">//typedef detail::tmat1x1<f32, mediump> f32mat1;</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> </div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="keyword">typedef</span> mediump_f32mat2x2 mediump_f32mat2;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> </div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="keyword">typedef</span> mediump_f32mat3x3 mediump_f32mat3;</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> </div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="keyword">typedef</span> mediump_f32mat4x4 mediump_f32mat4;</div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> </div>
<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> </div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="keyword">typedef</span> tmat4x2<f32, mediump> mediump_f32mat4x2;</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment">//typedef f32 highp_f32mat1x1;</span></div>
<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> </div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="keyword">typedef</span> tmat4x3<f32, mediump> mediump_f32mat4x3;</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_f32mat2x2;</div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> </div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="keyword">typedef</span> tmat4x4<f32, mediump> mediump_f32mat4x4;</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_f32mat2x3;</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> </div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="comment">//typedef detail::tmat1x1<f32, mediump> f32mat1;</span></div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_f32mat2x4;</div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="keyword">typedef</span> mediump_f32mat2x2 mediump_f32mat2;</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_f32mat3x2;</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> </div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="keyword">typedef</span> mediump_f32mat3x3 mediump_f32mat3;</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_f32mat3x3;</div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> </div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="keyword">typedef</span> mediump_f32mat4x4 mediump_f32mat4;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_f32mat3x4;</div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> </div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> </div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment">//typedef f32 highp_f32mat1x1;</span></div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> </div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="keyword">typedef</span> tmat2x2<f32, highp> highp_f32mat2x2;</div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> </div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="keyword">typedef</span> tmat2x3<f32, highp> highp_f32mat2x3;</div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> </div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="keyword">typedef</span> tmat2x4<f32, highp> highp_f32mat2x4;</div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> </div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="keyword">typedef</span> tmat3x2<f32, highp> highp_f32mat3x2;</div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> </div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> <span class="keyword">typedef</span> tmat3x3<f32, highp> highp_f32mat3x3;</div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> </div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="keyword">typedef</span> tmat3x4<f32, highp> highp_f32mat3x4;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_f32mat4x2;</div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> </div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_f32mat4x3;</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> </div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_f32mat4x4;</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> </div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="comment">//typedef detail::tmat1x1<f32, highp> f32mat1;</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> </div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="keyword">typedef</span> highp_f32mat2x2 highp_f32mat2;</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> </div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="keyword">typedef</span> highp_f32mat3x3 highp_f32mat3;</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> </div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="keyword">typedef</span> highp_f32mat4x4 highp_f32mat4;</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> </div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> </div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="keyword">typedef</span> tmat4x2<f32, highp> highp_f32mat4x2;</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="comment">//typedef f64 lowp_f64mat1x1;</span></div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> </div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="keyword">typedef</span> tmat4x3<f32, highp> highp_f32mat4x3;</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="keyword">typedef</span> tmat2x2<f64, lowp> lowp_f64mat2x2;</div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> </div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="keyword">typedef</span> tmat4x4<f32, highp> highp_f32mat4x4;</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="keyword">typedef</span> tmat2x3<f64, lowp> lowp_f64mat2x3;</div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> </div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">//typedef detail::tmat1x1<f32, highp> f32mat1;</span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="keyword">typedef</span> tmat2x4<f64, lowp> lowp_f64mat2x4;</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> </div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="keyword">typedef</span> highp_f32mat2x2 highp_f32mat2;</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="keyword">typedef</span> tmat3x2<f64, lowp> lowp_f64mat3x2;</div>
<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> </div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="keyword">typedef</span> highp_f32mat3x3 highp_f32mat3;</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="keyword">typedef</span> tmat3x3<f64, lowp> lowp_f64mat3x3;</div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> </div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="keyword">typedef</span> highp_f32mat4x4 highp_f32mat4;</div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="keyword">typedef</span> tmat3x4<f64, lowp> lowp_f64mat3x4;</div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> </div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> </div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="comment">//typedef f64 lowp_f64mat1x1;</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> </div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="keyword">typedef</span> tmat2x2<f64, lowp> lowp_f64mat2x2;</div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> </div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="keyword">typedef</span> tmat2x3<f64, lowp> lowp_f64mat2x3;</div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> </div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="keyword">typedef</span> tmat2x4<f64, lowp> lowp_f64mat2x4;</div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> </div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="keyword">typedef</span> tmat3x2<f64, lowp> lowp_f64mat3x2;</div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> </div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="keyword">typedef</span> tmat3x3<f64, lowp> lowp_f64mat3x3;</div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> </div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> <span class="keyword">typedef</span> tmat3x4<f64, lowp> lowp_f64mat3x4;</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="keyword">typedef</span> tmat4x2<f64, lowp> lowp_f64mat4x2;</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> </div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="keyword">typedef</span> tmat4x3<f64, lowp> lowp_f64mat4x3;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> </div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="keyword">typedef</span> tmat4x4<f64, lowp> lowp_f64mat4x4;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> </div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <span class="comment">//typedef lowp_f64mat1x1 lowp_f64mat1;</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> </div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="keyword">typedef</span> lowp_f64mat2x2 lowp_f64mat2;</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> </div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="keyword">typedef</span> lowp_f64mat3x3 lowp_f64mat3;</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> </div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> <span class="keyword">typedef</span> lowp_f64mat4x4 lowp_f64mat4;</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> </div>
<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> </div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> <span class="keyword">typedef</span> tmat4x2<f64, lowp> lowp_f64mat4x2;</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> <span class="comment">//typedef f64 Highp_f64mat1x1;</span></div>
<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> </div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="keyword">typedef</span> tmat4x3<f64, lowp> lowp_f64mat4x3;</div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> <span class="keyword">typedef</span> tmat4x4<f64, lowp> lowp_f64mat4x4;</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="keyword">typedef</span> tmat2x2<f64, mediump> mediump_f64mat2x2;</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> <span class="keyword">typedef</span> tmat2x3<f64, mediump> mediump_f64mat2x3;</div>
<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> </div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="comment">//typedef lowp_f64mat1x1 lowp_f64mat1;</span></div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="keyword">typedef</span> tmat2x4<f64, mediump> mediump_f64mat2x4;</div>
<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> </div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="keyword">typedef</span> lowp_f64mat2x2 lowp_f64mat2;</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="keyword">typedef</span> tmat3x2<f64, mediump> mediump_f64mat3x2;</div>
<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> </div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <span class="keyword">typedef</span> lowp_f64mat3x3 lowp_f64mat3;</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <span class="keyword">typedef</span> tmat3x3<f64, mediump> mediump_f64mat3x3;</div>
<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> </div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="keyword">typedef</span> lowp_f64mat4x4 lowp_f64mat4;</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="keyword">typedef</span> tmat3x4<f64, mediump> mediump_f64mat3x4;</div>
<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> </div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> </div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment">//typedef f64 Highp_f64mat1x1;</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> </div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="keyword">typedef</span> tmat2x2<f64, mediump> mediump_f64mat2x2;</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> </div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="keyword">typedef</span> tmat2x3<f64, mediump> mediump_f64mat2x3;</div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> </div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> <span class="keyword">typedef</span> tmat2x4<f64, mediump> mediump_f64mat2x4;</div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> </div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="keyword">typedef</span> tmat3x2<f64, mediump> mediump_f64mat3x2;</div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> </div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> <span class="keyword">typedef</span> tmat3x3<f64, mediump> mediump_f64mat3x3;</div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> </div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="keyword">typedef</span> tmat3x4<f64, mediump> mediump_f64mat3x4;</div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> </div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="keyword">typedef</span> tmat4x2<f64, mediump> mediump_f64mat4x2;</div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> </div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="keyword">typedef</span> tmat4x3<f64, mediump> mediump_f64mat4x3;</div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> </div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> <span class="keyword">typedef</span> tmat4x4<f64, mediump> mediump_f64mat4x4;</div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> </div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <span class="comment">//typedef mediump_f64mat1x1 mediump_f64mat1;</span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> </div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="keyword">typedef</span> mediump_f64mat2x2 mediump_f64mat2;</div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> </div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> <span class="keyword">typedef</span> mediump_f64mat3x3 mediump_f64mat3;</div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> </div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> <span class="keyword">typedef</span> mediump_f64mat4x4 mediump_f64mat4;</div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> </div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> <span class="comment">//typedef f64 highp_f64mat1x1;</span></div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> </div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="keyword">typedef</span> tmat2x2<f64, highp> highp_f64mat2x2;</div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> </div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> <span class="keyword">typedef</span> tmat2x3<f64, highp> highp_f64mat2x3;</div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> </div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <span class="keyword">typedef</span> tmat2x4<f64, highp> highp_f64mat2x4;</div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> </div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> <span class="keyword">typedef</span> tmat3x2<f64, highp> highp_f64mat3x2;</div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> </div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> <span class="keyword">typedef</span> tmat3x3<f64, highp> highp_f64mat3x3;</div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> </div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> <span class="keyword">typedef</span> tmat3x4<f64, highp> highp_f64mat3x4;</div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> </div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="keyword">typedef</span> tmat4x2<f64, highp> highp_f64mat4x2;</div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> </div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> <span class="keyword">typedef</span> tmat4x3<f64, highp> highp_f64mat4x3;</div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> </div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> <span class="keyword">typedef</span> tmat4x4<f64, highp> highp_f64mat4x4;</div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> </div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="comment">//typedef highp_f64mat1x1 highp_f64mat1;</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> </div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <span class="keyword">typedef</span> highp_f64mat2x2 highp_f64mat2;</div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> </div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="keyword">typedef</span> highp_f64mat3x3 highp_f64mat3;</div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> </div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> <span class="keyword">typedef</span> highp_f64mat4x4 highp_f64mat4;</div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> </div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> </div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="keyword">typedef</span> tquat<f32, lowp> lowp_f32quat;</div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> </div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> <span class="keyword">typedef</span> tquat<f64, lowp> lowp_f64quat;</div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> </div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="keyword">typedef</span> tquat<f32, mediump> mediump_f32quat;</div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> </div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="keyword">typedef</span> tquat<f64, mediump> mediump_f64quat;</div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> </div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="keyword">typedef</span> tquat<f32, highp> highp_f32quat;</div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> </div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="keyword">typedef</span> tquat<f64, highp> highp_f64quat;</div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> </div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> </div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="keyword">typedef</span> lowp_f32quat fquat;</div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> </div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="keyword">typedef</span> lowp_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> <span class="keyword">typedef</span> mediump_f32quat fquat;</div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> </div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span> <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span> <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span> <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span> <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span> <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> <span class="keyword">typedef</span> mediump_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="preprocessor">#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> </div>
-<div class="line"><a name="l02360"></a><span class="lineno"><a class="line" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6"> 2360</a></span> <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> </div>
-<div class="line"><a name="l02364"></a><span class="lineno"><a class="line" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084"> 2364</a></span> <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> </div>
-<div class="line"><a name="l02368"></a><span class="lineno"><a class="line" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b"> 2368</a></span> <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> </div>
-<div class="line"><a name="l02372"></a><span class="lineno"><a class="line" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711"> 2372</a></span> <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> </div>
-<div class="line"><a name="l02376"></a><span class="lineno"><a class="line" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756"> 2376</a></span> <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> </div>
-<div class="line"><a name="l02380"></a><span class="lineno"><a class="line" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5"> 2380</a></span> <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span> </div>
-<div class="line"><a name="l02384"></a><span class="lineno"><a class="line" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca"> 2384</a></span> <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span> </div>
-<div class="line"><a name="l02388"></a><span class="lineno"><a class="line" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22"> 2388</a></span> <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span> </div>
-<div class="line"><a name="l02392"></a><span class="lineno"><a class="line" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b"> 2392</a></span> <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="keyword">typedef</span> tmat4x2<f64, mediump> mediump_f64mat4x2;</div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> </div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="keyword">typedef</span> tmat4x3<f64, mediump> mediump_f64mat4x3;</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> </div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="keyword">typedef</span> tmat4x4<f64, mediump> mediump_f64mat4x4;</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> </div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="comment">//typedef mediump_f64mat1x1 mediump_f64mat1;</span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> </div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> <span class="keyword">typedef</span> mediump_f64mat2x2 mediump_f64mat2;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> </div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> <span class="keyword">typedef</span> mediump_f64mat3x3 mediump_f64mat3;</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> </div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> <span class="keyword">typedef</span> mediump_f64mat4x4 mediump_f64mat4;</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> </div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> <span class="comment">//typedef f64 highp_f64mat1x1;</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> </div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="keyword">typedef</span> tmat2x2<f64, highp> highp_f64mat2x2;</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> </div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> <span class="keyword">typedef</span> tmat2x3<f64, highp> highp_f64mat2x3;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> </div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> <span class="keyword">typedef</span> tmat2x4<f64, highp> highp_f64mat2x4;</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> </div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="keyword">typedef</span> tmat3x2<f64, highp> highp_f64mat3x2;</div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> </div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> <span class="keyword">typedef</span> tmat3x3<f64, highp> highp_f64mat3x3;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> </div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <span class="keyword">typedef</span> tmat3x4<f64, highp> highp_f64mat3x4;</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> </div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span> <span class="keyword">typedef</span> tmat4x2<f64, highp> highp_f64mat4x2;</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> </div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> <span class="keyword">typedef</span> tmat4x3<f64, highp> highp_f64mat4x3;</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> </div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> <span class="keyword">typedef</span> tmat4x4<f64, highp> highp_f64mat4x4;</div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> </div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> <span class="comment">//typedef highp_f64mat1x1 highp_f64mat1;</span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> </div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> <span class="keyword">typedef</span> highp_f64mat2x2 highp_f64mat2;</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> <span class="keyword">typedef</span> highp_f64mat3x3 highp_f64mat3;</div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> </div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> <span class="keyword">typedef</span> highp_f64mat4x4 highp_f64mat4;</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> </div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> </div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> <span class="keyword">typedef</span> tquat<f32, lowp> lowp_f32quat;</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> </div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="keyword">typedef</span> tquat<f64, lowp> lowp_f64quat;</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> </div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> <span class="keyword">typedef</span> tquat<f32, mediump> mediump_f32quat;</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> </div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="keyword">typedef</span> tquat<f64, mediump> mediump_f64quat;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> </div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="keyword">typedef</span> tquat<f32, highp> highp_f32quat;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> </div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="keyword">typedef</span> tquat<f64, highp> highp_f64quat;</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> </div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> </div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> <span class="keyword">typedef</span> lowp_f32quat fquat;</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> </div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> <span class="keyword">typedef</span> lowp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="keyword">typedef</span> lowp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="keyword">typedef</span> lowp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="keyword">typedef</span> lowp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="keyword">typedef</span> lowp_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="keyword">typedef</span> lowp_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="keyword">typedef</span> lowp_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="keyword">typedef</span> lowp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="keyword">typedef</span> lowp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="keyword">typedef</span> lowp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="keyword">typedef</span> lowp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="keyword">typedef</span> lowp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> <span class="keyword">typedef</span> lowp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="keyword">typedef</span> lowp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="keyword">typedef</span> lowp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="keyword">typedef</span> lowp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="keyword">typedef</span> lowp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="keyword">typedef</span> mediump_f32quat fquat;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> </div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="keyword">typedef</span> mediump_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="keyword">typedef</span> mediump_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="keyword">typedef</span> mediump_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="keyword">typedef</span> mediump_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="keyword">typedef</span> mediump_f32mat2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="keyword">typedef</span> mediump_f32mat3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="keyword">typedef</span> mediump_f32mat4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="keyword">typedef</span> mediump_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="keyword">typedef</span> mediump_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="keyword">typedef</span> mediump_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="keyword">typedef</span> mediump_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> <span class="keyword">typedef</span> mediump_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="keyword">typedef</span> mediump_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="keyword">typedef</span> mediump_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="keyword">typedef</span> mediump_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="keyword">typedef</span> mediump_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="keyword">typedef</span> mediump_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="preprocessor">#else//if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> </div>
+<div class="line"><a name="l02331"></a><span class="lineno"><a class="line" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6"> 2331</a></span> <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> </div>
+<div class="line"><a name="l02335"></a><span class="lineno"><a class="line" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084"> 2335</a></span> <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> </div>
+<div class="line"><a name="l02339"></a><span class="lineno"><a class="line" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b"> 2339</a></span> <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> </div>
+<div class="line"><a name="l02343"></a><span class="lineno"><a class="line" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711"> 2343</a></span> <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> </div>
+<div class="line"><a name="l02347"></a><span class="lineno"><a class="line" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756"> 2347</a></span> <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> </div>
+<div class="line"><a name="l02351"></a><span class="lineno"><a class="line" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5"> 2351</a></span> <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> </div>
+<div class="line"><a name="l02355"></a><span class="lineno"><a class="line" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca"> 2355</a></span> <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> </div>
+<div class="line"><a name="l02359"></a><span class="lineno"><a class="line" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22"> 2359</a></span> <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> </div>
+<div class="line"><a name="l02363"></a><span class="lineno"><a class="line" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b"> 2363</a></span> <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> </div>
+<div class="line"><a name="l02367"></a><span class="lineno"><a class="line" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732"> 2367</a></span> <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> </div>
+<div class="line"><a name="l02371"></a><span class="lineno"><a class="line" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba"> 2371</a></span> <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> </div>
+<div class="line"><a name="l02375"></a><span class="lineno"><a class="line" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9"> 2375</a></span> <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> </div>
+<div class="line"><a name="l02379"></a><span class="lineno"><a class="line" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985"> 2379</a></span> <span class="keyword">typedef</span> fmat2x2 <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> </div>
+<div class="line"><a name="l02383"></a><span class="lineno"><a class="line" href="a00177.html#ga5165fbee2d78f342950265b69a07353d"> 2383</a></span> <span class="keyword">typedef</span> fmat3x3 <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> </div>
+<div class="line"><a name="l02387"></a><span class="lineno"><a class="line" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd"> 2387</a></span> <span class="keyword">typedef</span> fmat4x4 <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> </div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> <span class="keyword">typedef</span> highp_fquat fquat;</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span> </div>
<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> </div>
-<div class="line"><a name="l02396"></a><span class="lineno"><a class="line" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732"> 2396</a></span> <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span> </div>
-<div class="line"><a name="l02400"></a><span class="lineno"><a class="line" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba"> 2400</a></span> <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span> </div>
-<div class="line"><a name="l02404"></a><span class="lineno"><a class="line" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9"> 2404</a></span> <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span> </div>
-<div class="line"><a name="l02408"></a><span class="lineno"><a class="line" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985"> 2408</a></span> <span class="keyword">typedef</span> fmat2x2 <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span> </div>
-<div class="line"><a name="l02412"></a><span class="lineno"><a class="line" href="a00181.html#ga5165fbee2d78f342950265b69a07353d"> 2412</a></span> <span class="keyword">typedef</span> fmat3x3 <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span> </div>
-<div class="line"><a name="l02416"></a><span class="lineno"><a class="line" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd"> 2416</a></span> <span class="keyword">typedef</span> fmat4x4 <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span> </div>
-<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span> <span class="keyword">typedef</span> highp_fquat fquat;</div>
-<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span> </div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> </div>
+<div class="line"><a name="l02397"></a><span class="lineno"><a class="line" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f"> 2397</a></span> <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span> </div>
+<div class="line"><a name="l02401"></a><span class="lineno"><a class="line" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3"> 2401</a></span> <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span> </div>
+<div class="line"><a name="l02405"></a><span class="lineno"><a class="line" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad"> 2405</a></span> <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span> </div>
+<div class="line"><a name="l02409"></a><span class="lineno"><a class="line" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704"> 2409</a></span> <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span> </div>
+<div class="line"><a name="l02413"></a><span class="lineno"><a class="line" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a"> 2413</a></span> <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span> </div>
+<div class="line"><a name="l02417"></a><span class="lineno"><a class="line" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767"> 2417</a></span> <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span> </div>
+<div class="line"><a name="l02421"></a><span class="lineno"><a class="line" href="a00177.html#ga5ed667d0247cce477f013ea31982843d"> 2421</a></span> <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span> </div>
-<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span> </div>
-<div class="line"><a name="l02426"></a><span class="lineno"><a class="line" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f"> 2426</a></span> <span class="keyword">typedef</span> highp_f32vec1 <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span> </div>
-<div class="line"><a name="l02430"></a><span class="lineno"><a class="line" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3"> 2430</a></span> <span class="keyword">typedef</span> highp_f32vec2 <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span> </div>
-<div class="line"><a name="l02434"></a><span class="lineno"><a class="line" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad"> 2434</a></span> <span class="keyword">typedef</span> highp_f32vec3 <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span> </div>
-<div class="line"><a name="l02438"></a><span class="lineno"><a class="line" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704"> 2438</a></span> <span class="keyword">typedef</span> highp_f32vec4 <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span> </div>
-<div class="line"><a name="l02442"></a><span class="lineno"><a class="line" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a"> 2442</a></span> <span class="keyword">typedef</span> highp_f32mat2x2 <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span> </div>
-<div class="line"><a name="l02446"></a><span class="lineno"><a class="line" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767"> 2446</a></span> <span class="keyword">typedef</span> highp_f32mat2x3 <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span> </div>
-<div class="line"><a name="l02450"></a><span class="lineno"><a class="line" href="a00181.html#ga5ed667d0247cce477f013ea31982843d"> 2450</a></span> <span class="keyword">typedef</span> highp_f32mat2x4 <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span> </div>
-<div class="line"><a name="l02454"></a><span class="lineno"><a class="line" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1"> 2454</a></span> <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span> </div>
-<div class="line"><a name="l02458"></a><span class="lineno"><a class="line" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0"> 2458</a></span> <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span> </div>
-<div class="line"><a name="l02462"></a><span class="lineno"><a class="line" href="a00181.html#ga0100666c90176eaba80e49357d123c7f"> 2462</a></span> <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02425"></a><span class="lineno"><a class="line" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1"> 2425</a></span> <span class="keyword">typedef</span> highp_f32mat3x2 <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span> </div>
+<div class="line"><a name="l02429"></a><span class="lineno"><a class="line" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0"> 2429</a></span> <span class="keyword">typedef</span> highp_f32mat3x3 <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span> </div>
+<div class="line"><a name="l02433"></a><span class="lineno"><a class="line" href="a00177.html#ga0100666c90176eaba80e49357d123c7f"> 2433</a></span> <span class="keyword">typedef</span> highp_f32mat3x4 <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span> </div>
+<div class="line"><a name="l02437"></a><span class="lineno"><a class="line" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff"> 2437</a></span> <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span> </div>
+<div class="line"><a name="l02441"></a><span class="lineno"><a class="line" href="a00177.html#gaa69e73ffb01a52499071391d395908fb"> 2441</a></span> <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span> </div>
+<div class="line"><a name="l02445"></a><span class="lineno"><a class="line" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5"> 2445</a></span> <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span> </div>
+<div class="line"><a name="l02449"></a><span class="lineno"><a class="line" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e"> 2449</a></span> <span class="keyword">typedef</span> f32mat2x2 <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span> </div>
+<div class="line"><a name="l02453"></a><span class="lineno"><a class="line" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c"> 2453</a></span> <span class="keyword">typedef</span> f32mat3x3 <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span> </div>
+<div class="line"><a name="l02457"></a><span class="lineno"><a class="line" href="a00177.html#ga797fa3ab16e04456174c36238e091341"> 2457</a></span> <span class="keyword">typedef</span> f32mat4x4 <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span> </div>
+<div class="line"><a name="l02461"></a><span class="lineno"><a class="line" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0"> 2461</a></span> <span class="keyword">typedef</span> highp_f32quat <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span> </div>
-<div class="line"><a name="l02466"></a><span class="lineno"><a class="line" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff"> 2466</a></span> <span class="keyword">typedef</span> highp_f32mat4x2 <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span> </div>
-<div class="line"><a name="l02470"></a><span class="lineno"><a class="line" href="a00181.html#gaa69e73ffb01a52499071391d395908fb"> 2470</a></span> <span class="keyword">typedef</span> highp_f32mat4x3 <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span> </div>
-<div class="line"><a name="l02474"></a><span class="lineno"><a class="line" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5"> 2474</a></span> <span class="keyword">typedef</span> highp_f32mat4x4 <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span> </div>
-<div class="line"><a name="l02478"></a><span class="lineno"><a class="line" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e"> 2478</a></span> <span class="keyword">typedef</span> f32mat2x2 <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span> </div>
-<div class="line"><a name="l02482"></a><span class="lineno"><a class="line" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c"> 2482</a></span> <span class="keyword">typedef</span> f32mat3x3 <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span> </div>
-<div class="line"><a name="l02486"></a><span class="lineno"><a class="line" href="a00181.html#ga797fa3ab16e04456174c36238e091341"> 2486</a></span> <span class="keyword">typedef</span> f32mat4x4 <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span> </div>
-<div class="line"><a name="l02490"></a><span class="lineno"><a class="line" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0"> 2490</a></span> <span class="keyword">typedef</span> highp_f32quat <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span> </div>
-<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span> <span class="keyword">typedef</span> lowp_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span> <span class="keyword">typedef</span> lowp_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span> <span class="keyword">typedef</span> lowp_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span> <span class="keyword">typedef</span> lowp_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span> <span class="keyword">typedef</span> lowp_f64mat2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span> <span class="keyword">typedef</span> lowp_f64mat3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span> <span class="keyword">typedef</span> lowp_f64mat4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span> <span class="keyword">typedef</span> lowp_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span> <span class="keyword">typedef</span> lowp_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span> <span class="keyword">typedef</span> lowp_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span> <span class="keyword">typedef</span> lowp_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span> <span class="keyword">typedef</span> lowp_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span> <span class="keyword">typedef</span> lowp_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span> <span class="keyword">typedef</span> lowp_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span> <span class="keyword">typedef</span> lowp_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span> <span class="keyword">typedef</span> lowp_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span> <span class="keyword">typedef</span> lowp_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span> <span class="keyword">typedef</span> mediump_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span> <span class="keyword">typedef</span> mediump_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span> <span class="keyword">typedef</span> mediump_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span> <span class="keyword">typedef</span> mediump_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span> <span class="keyword">typedef</span> mediump_f64mat2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span> <span class="keyword">typedef</span> mediump_f64mat3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span> <span class="keyword">typedef</span> mediump_f64mat4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span> <span class="keyword">typedef</span> mediump_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span> <span class="keyword">typedef</span> mediump_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span> <span class="keyword">typedef</span> mediump_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span> <span class="keyword">typedef</span> mediump_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span> <span class="keyword">typedef</span> mediump_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span> <span class="keyword">typedef</span> mediump_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span> <span class="keyword">typedef</span> mediump_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span> <span class="keyword">typedef</span> mediump_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span> <span class="keyword">typedef</span> mediump_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span> <span class="keyword">typedef</span> mediump_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span> <span class="keyword">typedef</span> highp_f64vec1 <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span> </div>
-<div class="line"><a name="l02536"></a><span class="lineno"><a class="line" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3"> 2536</a></span> <span class="keyword">typedef</span> highp_f64vec2 <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span> </div>
-<div class="line"><a name="l02540"></a><span class="lineno"><a class="line" href="a00181.html#gafacc3614bb1136a7756293e67d34de22"> 2540</a></span> <span class="keyword">typedef</span> highp_f64vec3 <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span> </div>
-<div class="line"><a name="l02544"></a><span class="lineno"><a class="line" href="a00181.html#ga8723186104dc02eb85da386105fba75f"> 2544</a></span> <span class="keyword">typedef</span> highp_f64vec4 <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span> </div>
-<div class="line"><a name="l02548"></a><span class="lineno"><a class="line" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3"> 2548</a></span> <span class="keyword">typedef</span> highp_f64mat2x2 <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span> </div>
-<div class="line"><a name="l02552"></a><span class="lineno"><a class="line" href="a00181.html#ga87d256f4719417e311cd0ea14264678d"> 2552</a></span> <span class="keyword">typedef</span> highp_f64mat2x3 <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span> </div>
-<div class="line"><a name="l02556"></a><span class="lineno"><a class="line" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550"> 2556</a></span> <span class="keyword">typedef</span> highp_f64mat2x4 <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span> </div>
-<div class="line"><a name="l02560"></a><span class="lineno"><a class="line" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2"> 2560</a></span> <span class="keyword">typedef</span> highp_f64mat3x2 <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span> </div>
-<div class="line"><a name="l02564"></a><span class="lineno"><a class="line" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6"> 2564</a></span> <span class="keyword">typedef</span> highp_f64mat3x3 <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span> </div>
-<div class="line"><a name="l02568"></a><span class="lineno"><a class="line" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293"> 2568</a></span> <span class="keyword">typedef</span> highp_f64mat3x4 <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span> <span class="keyword">typedef</span> lowp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span> <span class="keyword">typedef</span> lowp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span> <span class="keyword">typedef</span> lowp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span> <span class="keyword">typedef</span> lowp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span> <span class="keyword">typedef</span> lowp_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span> <span class="keyword">typedef</span> lowp_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span> <span class="keyword">typedef</span> lowp_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span> <span class="keyword">typedef</span> lowp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span> <span class="keyword">typedef</span> lowp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span> <span class="keyword">typedef</span> lowp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span> <span class="keyword">typedef</span> lowp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span> <span class="keyword">typedef</span> lowp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span> <span class="keyword">typedef</span> lowp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span> <span class="keyword">typedef</span> lowp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span> <span class="keyword">typedef</span> lowp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span> <span class="keyword">typedef</span> lowp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span> <span class="keyword">typedef</span> lowp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span> <span class="keyword">typedef</span> mediump_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span> <span class="keyword">typedef</span> mediump_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span> <span class="keyword">typedef</span> mediump_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> <span class="keyword">typedef</span> mediump_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span> <span class="keyword">typedef</span> mediump_f64mat2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span> <span class="keyword">typedef</span> mediump_f64mat3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span> <span class="keyword">typedef</span> mediump_f64mat4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span> <span class="keyword">typedef</span> mediump_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> <span class="keyword">typedef</span> mediump_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span> <span class="keyword">typedef</span> mediump_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span> <span class="keyword">typedef</span> mediump_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span> <span class="keyword">typedef</span> mediump_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span> <span class="keyword">typedef</span> mediump_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span> <span class="keyword">typedef</span> mediump_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span> <span class="keyword">typedef</span> mediump_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span> <span class="keyword">typedef</span> mediump_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span> <span class="keyword">typedef</span> mediump_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span> <span class="keyword">typedef</span> highp_f64vec1 <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span> </div>
+<div class="line"><a name="l02507"></a><span class="lineno"><a class="line" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3"> 2507</a></span> <span class="keyword">typedef</span> highp_f64vec2 <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span> </div>
+<div class="line"><a name="l02511"></a><span class="lineno"><a class="line" href="a00177.html#gafacc3614bb1136a7756293e67d34de22"> 2511</a></span> <span class="keyword">typedef</span> highp_f64vec3 <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span> </div>
+<div class="line"><a name="l02515"></a><span class="lineno"><a class="line" href="a00177.html#ga8723186104dc02eb85da386105fba75f"> 2515</a></span> <span class="keyword">typedef</span> highp_f64vec4 <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span> </div>
+<div class="line"><a name="l02519"></a><span class="lineno"><a class="line" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3"> 2519</a></span> <span class="keyword">typedef</span> highp_f64mat2x2 <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span> </div>
+<div class="line"><a name="l02523"></a><span class="lineno"><a class="line" href="a00177.html#ga87d256f4719417e311cd0ea14264678d"> 2523</a></span> <span class="keyword">typedef</span> highp_f64mat2x3 <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span> </div>
+<div class="line"><a name="l02527"></a><span class="lineno"><a class="line" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550"> 2527</a></span> <span class="keyword">typedef</span> highp_f64mat2x4 <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span> </div>
+<div class="line"><a name="l02531"></a><span class="lineno"><a class="line" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2"> 2531</a></span> <span class="keyword">typedef</span> highp_f64mat3x2 <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span> </div>
+<div class="line"><a name="l02535"></a><span class="lineno"><a class="line" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6"> 2535</a></span> <span class="keyword">typedef</span> highp_f64mat3x3 <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> </div>
+<div class="line"><a name="l02539"></a><span class="lineno"><a class="line" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293"> 2539</a></span> <span class="keyword">typedef</span> highp_f64mat3x4 <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span> </div>
+<div class="line"><a name="l02543"></a><span class="lineno"><a class="line" href="a00177.html#gaa669dfb59031a441de19b34a92704d57"> 2543</a></span> <span class="keyword">typedef</span> highp_f64mat4x2 <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span> </div>
+<div class="line"><a name="l02547"></a><span class="lineno"><a class="line" href="a00177.html#gaba137814a509704937746cc1e82edc32"> 2547</a></span> <span class="keyword">typedef</span> highp_f64mat4x3 <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span> </div>
+<div class="line"><a name="l02551"></a><span class="lineno"><a class="line" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b"> 2551</a></span> <span class="keyword">typedef</span> highp_f64mat4x4 <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span> </div>
+<div class="line"><a name="l02555"></a><span class="lineno"><a class="line" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38"> 2555</a></span> <span class="keyword">typedef</span> f64mat2x2 <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span> </div>
+<div class="line"><a name="l02559"></a><span class="lineno"><a class="line" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71"> 2559</a></span> <span class="keyword">typedef</span> f64mat3x3 <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span> </div>
+<div class="line"><a name="l02563"></a><span class="lineno"><a class="line" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95"> 2563</a></span> <span class="keyword">typedef</span> f64mat4x4 <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span> </div>
+<div class="line"><a name="l02567"></a><span class="lineno"><a class="line" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d"> 2567</a></span> <span class="keyword">typedef</span> highp_f64quat <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span> </div>
-<div class="line"><a name="l02572"></a><span class="lineno"><a class="line" href="a00181.html#gaa669dfb59031a441de19b34a92704d57"> 2572</a></span> <span class="keyword">typedef</span> highp_f64mat4x2 <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span> </div>
-<div class="line"><a name="l02576"></a><span class="lineno"><a class="line" href="a00181.html#gaba137814a509704937746cc1e82edc32"> 2576</a></span> <span class="keyword">typedef</span> highp_f64mat4x3 <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span> </div>
-<div class="line"><a name="l02580"></a><span class="lineno"><a class="line" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b"> 2580</a></span> <span class="keyword">typedef</span> highp_f64mat4x4 <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span> </div>
-<div class="line"><a name="l02584"></a><span class="lineno"><a class="line" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38"> 2584</a></span> <span class="keyword">typedef</span> f64mat2x2 <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span> </div>
-<div class="line"><a name="l02588"></a><span class="lineno"><a class="line" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71"> 2588</a></span> <span class="keyword">typedef</span> f64mat3x3 <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span> </div>
-<div class="line"><a name="l02592"></a><span class="lineno"><a class="line" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95"> 2592</a></span> <span class="keyword">typedef</span> f64mat4x4 <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span> </div>
-<div class="line"><a name="l02596"></a><span class="lineno"><a class="line" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d"> 2596</a></span> <span class="keyword">typedef</span> highp_f64quat <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span> </div>
-<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2< float, highp > highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00069">type_vec.hpp:69</a></div></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00164_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3< float, mediump > mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00186">type_vec.hpp:186</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00181_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02482">fwd.hpp:2482</a></div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00164_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2< float, mediump > mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00076">type_vec.hpp:76</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02592">fwd.hpp:2592</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00228">type_int.hpp:228</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02416">fwd.hpp:2416</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00164_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3< float, highp > highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00179">type_vec.hpp:179</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00164_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4< float, highp > highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00285">type_vec.hpp:285</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02478">fwd.hpp:2478</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00164_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4< float, mediump > mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00291">type_vec.hpp:291</a></div></div>
-<div class="ttc" id="a00181_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00231">type_int.hpp:231</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02584">fwd.hpp:2584</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00181_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02588">fwd.hpp:2588</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00226">type_int.hpp:226</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00227">type_int.hpp:227</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00084">type_float.hpp:84</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00181_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00232">type_int.hpp:232</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00085">type_float.hpp:85</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00164_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00164.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2< float, lowp > lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00083">type_vec.hpp:83</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00233">type_int.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00164_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3< float, lowp > lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00193">type_vec.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00181.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02486">fwd.hpp:2486</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00234">type_int.hpp:234</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00229">type_int.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02408">fwd.hpp:2408</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00116_html"><div class="ttname"><a href="a00116.html">type_float.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00181.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02412">fwd.hpp:2412</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00164_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4< float, lowp > lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00297">type_vec.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00177.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02457">fwd.hpp:2457</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00055">type_float.hpp:55</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00110_html"><div class="ttname"><a href="a00110.html">type_float.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4< float, lowp > lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00363">type_vec.hpp:363</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00158_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00158.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2< float, lowp > lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00149">type_vec.hpp:149</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00158_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3< float, highp > highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00245">type_vec.hpp:245</a></div></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02383">fwd.hpp:2383</a></div></div>
+<div class="ttc" id="a00177_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00206">type_int.hpp:206</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00158_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4< float, mediump > mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00357">type_vec.hpp:357</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00209">type_int.hpp:209</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00056">type_float.hpp:56</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02449">fwd.hpp:2449</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00158_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3< float, lowp > lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00259">type_vec.hpp:259</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00212">type_int.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02563">fwd.hpp:2563</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00158_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4< float, highp > highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00351">type_vec.hpp:351</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00207">type_int.hpp:207</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00177_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02387">fwd.hpp:2387</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00158_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3< float, mediump > mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00252">type_vec.hpp:252</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02555">fwd.hpp:2555</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00158_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2< float, mediump > mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00142">type_vec.hpp:142</a></div></div>
+<div class="ttc" id="a00158_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2< float, highp > highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00135">type_vec.hpp:135</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00177_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00211">type_int.hpp:211</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00213">type_int.hpp:213</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02379">fwd.hpp:2379</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00214">type_int.hpp:214</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00177_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00208">type_int.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02559">fwd.hpp:2559</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01505">fwd.hpp:1505</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00212">fwd.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02453">fwd.hpp:2453</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00039.html b/doc/api/a00039.html
index bcd1b0b..35a7e38 100644
--- a/doc/api/a00039.html
+++ b/doc/api/a00039.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: geometric.hpp File Reference</title>
+<title>0.9.8: geometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00039_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00039_source.html">geometric.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00039_source.html b/doc/api/a00039_source.html
index c2cd668..b52d634 100644
--- a/doc/api/a00039_source.html
+++ b/doc/api/a00039_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: geometric.hpp Source File</title>
+<title>0.9.8: geometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,10 +50,10 @@
</div><!--header-->
<div class="contents">
<a href="a00039.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00031.html">detail/func_geometric.hpp</a>"</span></div>
-<div class="ttc" id="a00031_html"><div class="ttname"><a href="a00031.html">func_geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00031.html">detail/func_geometric.hpp</a>"</span></div>
+<div class="ttc" id="a00031_html"><div class="ttname"><a href="a00031.html">func_geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00040.html b/doc/api/a00040.html
index 5108390..af523f1 100644
--- a/doc/api/a00040.html
+++ b/doc/api/a00040.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm.hpp File Reference</title>
+<title>0.9.8: glm.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,21 +52,7 @@
<p><a href="a00040_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-01 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<p><a class="el" href="a00162.html">GLM Core</a> (Dependence)</p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-14 / 2011-10-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00040_source.html">glm.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00040_source.html b/doc/api/a00040_source.html
index 9c7680a..ce7af3f 100644
--- a/doc/api/a00040_source.html
+++ b/doc/api/a00040_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm.hpp Source File</title>
+<title>0.9.8: glm.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,64 +50,64 @@
</div><!--header-->
<div class="contents">
<a href="a00040.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">detail/_fixes.hpp</a>"</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include <cmath></span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include <climits></span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include <cfloat></span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include <cassert></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "<a class="code" href="a00038.html">fwd.hpp</a>"</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"># define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># pragma message("GLM: Core library included")</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#include "<a class="code" href="a00139.html">vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#include "<a class="code" href="a00140.html">vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#include "<a class="code" href="a00141.html">vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#include "<a class="code" href="a00058.html">mat2x2.hpp</a>"</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#include "<a class="code" href="a00059.html">mat2x3.hpp</a>"</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "<a class="code" href="a00060.html">mat2x4.hpp</a>"</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#include "<a class="code" href="a00061.html">mat3x2.hpp</a>"</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#include "<a class="code" href="a00062.html">mat3x3.hpp</a>"</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#include "<a class="code" href="a00063.html">mat3x4.hpp</a>"</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#include "<a class="code" href="a00064.html">mat4x2.hpp</a>"</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "mat4x3.hpp"</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#include "<a class="code" href="a00066.html">mat4x4.hpp</a>"</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">trigonometric.hpp</a>"</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor">#include "<a class="code" href="a00022.html">exponential.hpp</a>"</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#include "<a class="code" href="a00014.html">common.hpp</a>"</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#include "<a class="code" href="a00088.html">packing.hpp</a>"</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#include "<a class="code" href="a00039.html">geometric.hpp</a>"</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#include "<a class="code" href="a00067.html">matrix.hpp</a>"</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#include "<a class="code" href="a00144.html">vector_relational.hpp</a>"</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include "<a class="code" href="a00046.html">integer.hpp</a>"</span></div>
-<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">exponential.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00139_html"><div class="ttname"><a href="a00139.html">vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00144_html"><div class="ttname"><a href="a00144.html">vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00088_html"><div class="ttname"><a href="a00088.html">packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00059_html"><div class="ttname"><a href="a00059.html">mat2x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00064_html"><div class="ttname"><a href="a00064.html">mat4x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00062_html"><div class="ttname"><a href="a00062.html">mat3x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00067_html"><div class="ttname"><a href="a00067.html">matrix.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00063_html"><div class="ttname"><a href="a00063.html">mat3x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">fwd.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00061_html"><div class="ttname"><a href="a00061.html">mat3x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00014_html"><div class="ttname"><a href="a00014.html">common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">trigonometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00058_html"><div class="ttname"><a href="a00058.html">mat2x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00066_html"><div class="ttname"><a href="a00066.html">mat4x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00140_html"><div class="ttname"><a href="a00140.html">vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00060_html"><div class="ttname"><a href="a00060.html">mat2x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "<a class="code" href="a00002.html">detail/_fixes.hpp</a>"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include <cmath></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <climits></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <cfloat></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "<a class="code" href="a00038.html">fwd.hpp</a>"</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># pragma message("GLM: Core library included")</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="a00051.html">mat2x2.hpp</a>"</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "<a class="code" href="a00052.html">mat2x3.hpp</a>"</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="a00053.html">mat2x4.hpp</a>"</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "<a class="code" href="a00054.html">mat3x2.hpp</a>"</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="a00055.html">mat3x3.hpp</a>"</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="a00056.html">mat3x4.hpp</a>"</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "<a class="code" href="a00057.html">mat4x2.hpp</a>"</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "mat4x3.hpp"</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="a00059.html">mat4x4.hpp</a>"</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="a00107.html">trigonometric.hpp</a>"</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#include "<a class="code" href="a00022.html">exponential.hpp</a>"</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#include "<a class="code" href="a00014.html">common.hpp</a>"</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="a00081.html">packing.hpp</a>"</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "<a class="code" href="a00039.html">geometric.hpp</a>"</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="a00060.html">matrix.hpp</a>"</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "<a class="code" href="a00139.html">vector_relational.hpp</a>"</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="a00046.html">integer.hpp</a>"</span></div>
+<div class="ttc" id="a00022_html"><div class="ttname"><a href="a00022.html">exponential.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00039_html"><div class="ttname"><a href="a00039.html">geometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00139_html"><div class="ttname"><a href="a00139.html">vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00056_html"><div class="ttname"><a href="a00056.html">mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00059_html"><div class="ttname"><a href="a00059.html">mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00055_html"><div class="ttname"><a href="a00055.html">mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00038_html"><div class="ttname"><a href="a00038.html">fwd.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00014_html"><div class="ttname"><a href="a00014.html">common.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00081_html"><div class="ttname"><a href="a00081.html">packing.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00046_html"><div class="ttname"><a href="a00046.html">integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00054_html"><div class="ttname"><a href="a00054.html">mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00052_html"><div class="ttname"><a href="a00052.html">mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00057_html"><div class="ttname"><a href="a00057.html">mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00060_html"><div class="ttname"><a href="a00060.html">matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00053_html"><div class="ttname"><a href="a00053.html">mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00051_html"><div class="ttname"><a href="a00051.html">mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00002_html"><div class="ttname"><a href="a00002.html">_fixes.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00107_html"><div class="ttname"><a href="a00107.html">trigonometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00041.html b/doc/api/a00041.html
index 4758b4f..c0c311b 100644
--- a/doc/api/a00041.html
+++ b/doc/api/a00041.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gradient_paint.hpp File Reference</title>
+<title>0.9.8: gradient_paint.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,24 +57,17 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</td></tr>
<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</td></tr>
<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00200.html">GLM_GTX_gradient_paint</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-03-06 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> (dependence) </dd></dl>
+<a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00041_source.html">gradient_paint.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00041_source.html b/doc/api/a00041_source.html
index 6ca3455..9f26eda 100644
--- a/doc/api/a00041_source.html
+++ b/doc/api/a00041_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gradient_paint.hpp Source File</title>
+<title>0.9.8: gradient_paint.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,38 +50,38 @@
</div><!--header-->
<div class="contents">
<a href="a00041.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtx/optimum_pow.hpp"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtx/optimum_pow.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_gradient_paint extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec2<T, P> <span class="keyword">const</span> & Center,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> T <span class="keyword">const</span> & Radius,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> tvec2<T, P> <span class="keyword">const</span> & Focal,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> tvec2<T, P> <span class="keyword">const</span> & Position);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL T <a class="code" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a>(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> tvec2<T, P> <span class="keyword">const</span> & Point0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> tvec2<T, P> <span class="keyword">const</span> & Point1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> tvec2<T, P> <span class="keyword">const</span> & Position);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_gradient_paint extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL T <a class="code" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec2<T, P> <span class="keyword">const</span> & Center,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> T <span class="keyword">const</span> & Radius,</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec2<T, P> <span class="keyword">const</span> & Focal,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tvec2<T, P> <span class="keyword">const</span> & Position);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL T <a class="code" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a>(</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> tvec2<T, P> <span class="keyword">const</span> & Point0,</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> tvec2<T, P> <span class="keyword">const</span> & Point1,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> tvec2<T, P> <span class="keyword">const</span> & Position);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "gradient_paint.inl"</span></div>
-<div class="ttc" id="a00200_html_gacde26d5e0c4a1856467bded9dfad9040"><div class="ttname"><a href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">glm::linearGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T linearGradient(tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a linear gradient. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00200_html_ga166d43d567a4cf150579a92f69b0dc9f"><div class="ttname"><a href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">glm::radialGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T radialGradient(tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a radial gradient. </div></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "gradient_paint.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00196_html_gacde26d5e0c4a1856467bded9dfad9040"><div class="ttname"><a href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">glm::linearGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T linearGradient(tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a linear gradient. </div></div>
+<div class="ttc" id="a00196_html_ga166d43d567a4cf150579a92f69b0dc9f"><div class="ttname"><a href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">glm::radialGradient</a></div><div class="ttdeci">GLM_FUNC_DECL T radialGradient(tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</div><div class="ttdoc">Return a color from a radial gradient. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00042.html b/doc/api/a00042.html
index 487fdee..91e863d 100644
--- a/doc/api/a00042.html
+++ b/doc/api/a00042.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: handed_coordinate_space.hpp File Reference</title>
+<title>0.9.8: handed_coordinate_space.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,22 +57,15 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00201.html">GLM_GTX_handed_coordinate_space</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00042_source.html">handed_coordinate_space.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00042_source.html b/doc/api/a00042_source.html
index 8ffadb9..8ec3771 100644
--- a/doc/api/a00042_source.html
+++ b/doc/api/a00042_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: handed_coordinate_space.hpp Source File</title>
+<title>0.9.8: handed_coordinate_space.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,36 +50,36 @@
</div><!--header-->
<div class="contents">
<a href="a00042.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "handed_coordinate_space.inl"</span></div>
-<div class="ttc" id="a00201_html_ga17cd83888de8755c0435c589fafd3603"><div class="ttname"><a href="a00201.html#ga17cd83888de8755c0435c589fafd3603">glm::rightHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool rightHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron right handed or not. </div></div>
-<div class="ttc" id="a00201_html_ga7425e0ebfe6a56919900a072ae1f8017"><div class="ttname"><a href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">glm::leftHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool leftHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron left handed or not. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> tvec3<T, P> <span class="keyword">const</span> & tangent,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> tvec3<T, P> <span class="keyword">const</span> & binormal,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "handed_coordinate_space.inl"</span></div>
+<div class="ttc" id="a00197_html_ga7425e0ebfe6a56919900a072ae1f8017"><div class="ttname"><a href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">glm::leftHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool leftHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron left handed or not. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00197_html_ga17cd83888de8755c0435c589fafd3603"><div class="ttname"><a href="a00197.html#ga17cd83888de8755c0435c589fafd3603">glm::rightHanded</a></div><div class="ttdeci">GLM_FUNC_DECL bool rightHanded(tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</div><div class="ttdoc">Return if a trihedron right handed or not. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00043.html b/doc/api/a00043.html
index e6c493c..a085f1b 100644
--- a/doc/api/a00043.html
+++ b/doc/api/a00043.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: hash.hpp File Reference</title>
+<title>0.9.8: hash.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,15 +52,8 @@
<p><a href="a00043_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00202.html">GLM_GTX_hash</a></p>
-<dl class="section date"><dt>Date</dt><dd>2015-03-07 / 2015-03-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00198.html">GLM_GTX_hash</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00043_source.html">hash.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00043_source.html b/doc/api/a00043_source.html
index 18e4ccf..740f658 100644
--- a/doc/api/a00043_source.html
+++ b/doc/api/a00043_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: hash.hpp Source File</title>
+<title>0.9.8: hash.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,130 +50,130 @@
</div><!--header-->
<div class="contents">
<a href="a00043.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#if !GLM_HAS_CXX11_STL</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># error "GLM_GTX_hash requires C++11 standard library support"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <functional></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <functional></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../gtx/dual_quaternion.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#if !GLM_HAS_CXX11_STL</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># error "GLM_GTX_hash requires C++11 standard library support"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="a00145.html">std</a></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec1<T,P> ></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec1<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> };</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec2<T,P> ></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec2<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "../gtx/dual_quaternion.hpp"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">namespace </span><a class="code" href="a00150.html">std</a></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tvec1<T,P>></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec1<T,P> &v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> };</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tvec2<T,P>></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec2<T,P> &v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tvec3<T,P>></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec3<T,P> &v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tvec4<T,P>></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tvec4<T,P> &v) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> };</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tquat<T,P>></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tquat<T,P> &q) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tdualquat<T,P>></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tdualquat<T,P> &q) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> };</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat2x2<T,P>></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x2<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat2x3<T,P>></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x3<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat2x4<T,P>></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat2x4<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> };</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat3x2<T,P>></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x2<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> };</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat3x3<T,P>></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x3<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> };</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat3x4<T,P>></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat3x4<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> };</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat4x2<T,P>></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x2<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat4x3<T,P>></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x3<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> };</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">struct </span>hash<<a class="code" href="a00146.html">glm</a>::tmat4x4<T,P>></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(<span class="keyword">const</span> glm::tmat4x4<T,P> &m) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> } <span class="comment">// namespace std</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#include "hash.inl"</span></div>
-<div class="ttc" id="a00150_html"><div class="ttname"><a href="a00150.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="a00043_source.html#l00070">hash.hpp:70</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec3<T,P> ></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec3<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tvec4<T,P> ></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tvec4<T, P> <span class="keyword">const</span> & v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> };</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tquat<T,P>></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tquat<T, P> <span class="keyword">const</span> & q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tdualquat<T,P> ></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tdualquat<T,P> <span class="keyword">const</span> & q) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> };</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x2<T,P> ></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> };</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x3<T,P> ></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat2x4<T,P> ></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat2x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> };</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x2<T,P> ></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> };</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x3<T,P> ></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> {</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> };</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat3x4<T,P> ></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat3x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x2<T,P> ></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x2<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> };</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x3<T,P> ></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> {</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x3<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, glm::precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">struct </span>hash<<a class="code" href="a00141.html">glm</a>::tmat4x4<T,P> ></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL <span class="keywordtype">size_t</span> operator()(glm::tmat4x4<T,P> <span class="keyword">const</span> & m) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> };</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <span class="comment">// namespace std</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#include "hash.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00145_html"><div class="ttname"><a href="a00145.html">std</a></div><div class="ttdef"><b>Definition:</b> <a href="a00043_source.html#l00041">hash.hpp:41</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00044.html b/doc/api/a00044.html
index 7970133..c336ff6 100644
--- a/doc/api/a00044.html
+++ b/doc/api/a00044.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.8: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -56,31 +56,30 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gab61b8546aafdf58f119eb892b212607c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00170.html">GLM_GTC_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-17 / 2014-11-17 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00165.html">GLM_GTC_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> (dependence) </dd></dl>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00044_source.html">gtc/integer.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00044_source.html b/doc/api/a00044_source.html
index 283a115..7b6e173 100644
--- a/doc/api/a00044_source.html
+++ b/doc/api/a00044_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.8: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,41 +50,49 @@
</div><!--header-->
<div class="contents">
<a href="a00044.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/func_common.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../detail/func_integer.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../detail/func_exponential.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_integer extension included")</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL genIUType <a class="code" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a>(genIUType x);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL genIUType <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(genIUType x, genIUType y);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/func_common.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/func_integer.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../detail/func_exponential.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_integer extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a>(genIUType x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL genIUType <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(genIUType x, genIUType y);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, T y);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL vecType<int, P> <a class="code" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL vecType<uint, P> <a class="code" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a>(vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> } <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#include "integer.inl"</span></div>
-<div class="ttc" id="a00170_html_ga9bd682e74bfacb005c735305207ec417"><div class="ttname"><a href="a00170.html#ga9bd682e74bfacb005c735305207ec417">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType log2(genIUType x)</div><div class="ttdoc">Returns the log2 of x for integer values. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00170_html_ga75c6fd2a143fc44e5f7b871abad539e0"><div class="ttname"><a href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "integer.inl"</span></div>
+<div class="ttc" id="a00165_html_gab61b8546aafdf58f119eb892b212607c"><div class="ttname"><a href="a00165.html#gab61b8546aafdf58f119eb892b212607c">glm::uround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint, P > uround(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00165_html_ga9bd682e74bfacb005c735305207ec417"><div class="ttname"><a href="a00165.html#ga9bd682e74bfacb005c735305207ec417">glm::log2</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType log2(genIUType x)</div><div class="ttdoc">Returns the log2 of x for integer values. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00165_html_ga75c6fd2a143fc44e5f7b871abad539e0"><div class="ttname"><a href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType mod(genIUType x, genIUType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00165_html_ga0a42ffb863cc980e91f98d2f5766de20"><div class="ttname"><a href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">glm::iround</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< int, P > iround(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00045.html b/doc/api/a00045.html
index 92975b9..6e62188 100644
--- a/doc/api/a00045.html
+++ b/doc/api/a00045.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.8: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,41 +57,34 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
+<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &x)</td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &x)</td></tr>
<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
+<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
+<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
+<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
+<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
+<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
+<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
+<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
+<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00203.html">GLM_GTX_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-24 / 2011-10-13 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00199.html">GLM_GTX_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00045_source.html b/doc/api/a00045_source.html
index be1aed9..4c7c4b4 100644
--- a/doc/api/a00045_source.html
+++ b/doc/api/a00045_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.8: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,52 +50,52 @@
</div><!--header-->
<div class="contents">
<a href="a00045.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/integer.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_integer extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtc/integer.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_integer extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL genType <a class="code" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40"> 51</a></span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a>(<a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL genType <a class="code" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40"> 80</a></span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a>(<a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor">#include "integer.inl"</span></div>
-<div class="ttc" id="a00203_html_ga998e5ee915d3769255519e2fbaa2bbf0"><div class="ttname"><a href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL uint pow(uint x, uint y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
-<div class="ttc" id="a00203_html_gada7e83fdfe943aba4f1d5bf80cb66f40"><div class="ttname"><a href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::sint</a></div><div class="ttdeci">signed int sint</div><div class="ttdoc">32bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00045_source.html#l00080">gtx/integer.hpp:80</a></div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00203_html_ga1975d318978d6dacf78b6444fa5ed7bc"><div class="ttname"><a href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL uint sqrt(uint x)</div><div class="ttdoc">Returns the positive square root of x. </div></div>
-<div class="ttc" id="a00203_html_ga8cbd3120905f398ec321b5d1836e08fb"><div class="ttname"><a href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">glm::factorial</a></div><div class="ttdeci">GLM_FUNC_DECL genType factorial(genType const &x)</div><div class="ttdoc">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...</div></div>
-<div class="ttc" id="a00203_html_ga63fc8d63e7da1706439233b386ba8b6f"><div class="ttname"><a href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL uint mod(uint x, uint y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00203_html_ga7011b4e1c1e1ed492149b028feacc00e"><div class="ttname"><a href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">glm::floor_log2</a></div><div class="ttdeci">GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)</div><div class="ttdoc">Returns the floor log2 of x. </div></div>
-<div class="ttc" id="a00203_html_ga78dff8bdb361bf0061194c93e003d189"><div class="ttname"><a href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">glm::nlz</a></div><div class="ttdeci">GLM_FUNC_DECL uint nlz(uint x)</div><div class="ttdoc">Returns the number of leading zeros. </div></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "integer.inl"</span></div>
+<div class="ttc" id="a00199_html_ga63fc8d63e7da1706439233b386ba8b6f"><div class="ttname"><a href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL uint mod(uint x, uint y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00199_html_gada7e83fdfe943aba4f1d5bf80cb66f40"><div class="ttname"><a href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">glm::sint</a></div><div class="ttdeci">signed int sint</div><div class="ttdoc">32bit signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00045_source.html#l00051">gtx/integer.hpp:51</a></div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00199_html_ga998e5ee915d3769255519e2fbaa2bbf0"><div class="ttname"><a href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL uint pow(uint x, uint y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="ttc" id="a00199_html_ga78dff8bdb361bf0061194c93e003d189"><div class="ttname"><a href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">glm::nlz</a></div><div class="ttdeci">GLM_FUNC_DECL uint nlz(uint x)</div><div class="ttdoc">Returns the number of leading zeros. </div></div>
+<div class="ttc" id="a00199_html_ga1975d318978d6dacf78b6444fa5ed7bc"><div class="ttname"><a href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL uint sqrt(uint x)</div><div class="ttdoc">Returns the positive square root of x. </div></div>
+<div class="ttc" id="a00199_html_ga8cbd3120905f398ec321b5d1836e08fb"><div class="ttname"><a href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">glm::factorial</a></div><div class="ttdeci">GLM_FUNC_DECL genType factorial(genType const &x)</div><div class="ttdoc">Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...</div></div>
+<div class="ttc" id="a00199_html_ga7011b4e1c1e1ed492149b028feacc00e"><div class="ttname"><a href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">glm::floor_log2</a></div><div class="ttdeci">GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)</div><div class="ttdoc">Returns the floor log2 of x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00046.html b/doc/api/a00046.html
index cd66e66..fa9127c 100644
--- a/doc/api/a00046.html
+++ b/doc/api/a00046.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp File Reference</title>
+<title>0.9.8: integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,14 +52,7 @@
<p><a href="a00046_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
<p>Definition in file <a class="el" href="a00046_source.html">integer.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00046_source.html b/doc/api/a00046_source.html
index cd822b4..3fecbe4 100644
--- a/doc/api/a00046_source.html
+++ b/doc/api/a00046_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: integer.hpp Source File</title>
+<title>0.9.8: integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,10 +50,10 @@
</div><!--header-->
<div class="contents">
<a href="a00046.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00032.html">detail/func_integer.hpp</a>"</span></div>
-<div class="ttc" id="a00032_html"><div class="ttname"><a href="a00032.html">func_integer.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00032.html">detail/func_integer.hpp</a>"</span></div>
+<div class="ttc" id="a00032_html"><div class="ttname"><a href="a00032.html">func_integer.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00047.html b/doc/api/a00047.html
index 25361d3..b78868f 100644
--- a/doc/api/a00047.html
+++ b/doc/api/a00047.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intersect.hpp File Reference</title>
+<title>0.9.8: intersect.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -57,36 +57,29 @@
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType & [...]
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType & [...]
<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</td></tr>
<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</td></tr>
<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDist [...]
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDist [...]
<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersect [...]
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersect [...]
<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</td></tr>
<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00204.html">GLM_GTX_intersect</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-04-03 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00200.html">GLM_GTX_intersect</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00187.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> (dependence) </dd></dl>
+<a class="el" href="a00183.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> (dependence) </dd></dl>
<p>Definition in file <a class="el" href="a00047_source.html">intersect.hpp</a>.</p>
</div></div><!-- contents -->
diff --git a/doc/api/a00047_source.html b/doc/api/a00047_source.html
index f15720f..4b4b2fb 100644
--- a/doc/api/a00047_source.html
+++ b/doc/api/a00047_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intersect.hpp Source File</title>
+<title>0.9.8: intersect.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -50,65 +50,69 @@
</div><!--header-->
<div class="contents">
<a href="a00047.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/closest_point.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cfloat></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtx/closest_point.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtx/vector_query.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_closest_point extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> genType <span class="keyword">const</span> & planeOrig, genType <span class="keyword">const</span> & planeNormal,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typename</span> genType::value_type & intersectionDistance);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> genType & baryPosition);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> genType & position);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a>(</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> genType <span class="keyword">const</span> & planeOrig, genType <span class="keyword">const</span> & planeNormal,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> sphereRadiusSquered,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typename</span> genType::value_type & intersectionDistance);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> genType & baryPosition);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> genType & intersectionPosition, genType & intersectionNormal);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a>(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> genType <span class="keyword">const</span> & orig, genType <span class="keyword">const</span> & dir,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> genType <span class="keyword">const</span> & vert0, genType <span class="keyword">const</span> & vert1, genType <span class="keyword">const</span> & vert2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> genType & position);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> sphereRadiusSquered,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">typename</span> genType::value_type & intersectionDistance);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a>(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> genType <span class="keyword">const</span> & rayStarting, genType <span class="keyword">const</span> & rayNormalizedDirection,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> genType & intersectionPosition, genType & intersectionNormal);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a>(</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> genType <span class="keyword">const</span> & point0, genType <span class="keyword">const</span> & point1,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> genType & intersectionPosition1, genType & intersectionNormal1, </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#include "intersect.inl"</span></div>
-<div class="ttc" id="a00204_html_gab16c1b47c10451e7604b51b39a7ef21d"><div class="ttname"><a href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">glm::intersectRayTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</div><div class="ttdoc">Compute the intersection of a ray and a triangle. </div></div>
-<div class="ttc" id="a00204_html_gad28c00515b823b579c608aafa1100c1d"><div class="ttname"><a href="a00204.html#gad28c00515b823b579c608aafa1100c1d">glm::intersectRaySphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)</div><div class="ttdoc">Comput [...]
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00204_html_gad3697a9700ea379739a667ea02573488"><div class="ttname"><a href="a00204.html#gad3697a9700ea379739a667ea02573488">glm::intersectRayPlane</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</div><div class="ttdoc">Compute the intersection of a ray and a plane. </div></div>
-<div class="ttc" id="a00204_html_ga9d29b9b3acb504d43986502f42740df4"><div class="ttname"><a href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">glm::intersectLineTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</div><div class="ttdoc">Compute the intersection of a line and a triangle. </div></div>
-<div class="ttc" id="a00204_html_ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><div class="ttname"><a href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">glm::intersectLineSphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType [...]
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a>(</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> genType <span class="keyword">const</span> & point0, genType <span class="keyword">const</span> & point1,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> genType <span class="keyword">const</span> & sphereCenter, <span class="keyword">typename</span> genType::value_type sphereRadius,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> genType & intersectionPosition1, genType & intersectionNormal1, </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#include "intersect.inl"</span></div>
+<div class="ttc" id="a00200_html_gad28c00515b823b579c608aafa1100c1d"><div class="ttname"><a href="a00200.html#gad28c00515b823b579c608aafa1100c1d">glm::intersectRaySphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)</div><div class="ttdoc">Comput [...]
+<div class="ttc" id="a00200_html_gad3697a9700ea379739a667ea02573488"><div class="ttname"><a href="a00200.html#gad3697a9700ea379739a667ea02573488">glm::intersectRayPlane</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</div><div class="ttdoc">Compute the intersection of a ray and a plane. </div></div>
+<div class="ttc" id="a00200_html_ga9d29b9b3acb504d43986502f42740df4"><div class="ttname"><a href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">glm::intersectLineTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</div><div class="ttdoc">Compute the intersection of a line and a triangle. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00200_html_ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><div class="ttname"><a href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">glm::intersectLineSphere</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType [...]
+<div class="ttc" id="a00200_html_gab16c1b47c10451e7604b51b39a7ef21d"><div class="ttname"><a href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">glm::intersectRayTriangle</a></div><div class="ttdeci">GLM_FUNC_DECL bool intersectRayTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</div><div class="ttdoc">Compute the intersection of a ray and a triangle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00048.html b/doc/api/a00048.html
index 55d73ac..3e91e93 100644
--- a/doc/api/a00048.html
+++ b/doc/api/a00048.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_common.hpp File Reference</title>
+<title>0.9.8: io.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,32 +41,26 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_common.hpp File Reference</div> </div>
+<div class="title">io.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00048_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00201.html">GLM_GTX_io</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Jan P Springer (<a href="#" onclick="location.href='mai'+'lto:'+'reg'+'ni'+'rps'+'j@'+'gma'+'il'+'.co'+'m'; return false;">regni<span style="display: none;">.nosp at m.</span>rpsj<span style="display: none;">.nosp at m.</span>@gmai<span style="display: none;">.nosp at m.</span>l.co<span style="display: none;">.nosp at m.</span>m</a>)</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00048_source.html">intrinsic_common.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00048_source.html">io.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00048_source.html b/doc/api/a00048_source.html
index f7d8765..0d32417 100644
--- a/doc/api/a00048_source.html
+++ b/doc/api/a00048_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_common.hpp Source File</title>
+<title>0.9.8: io.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,76 +41,191 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_common.hpp</div> </div>
+<div class="title">io.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00048.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> __m128 sse_abs_ps(__m128 x);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> __m128 sse_sgn_ps(__m128 x);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">//floor</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> __m128 sse_flr_ps(__m128 v);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">//trunc</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> __m128 sse_trc_ps(__m128 v);</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_io extension included")</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <iosfwd></span> <span class="comment">// std::basic_ostream<> (fwd)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <locale></span> <span class="comment">// std::locale, std::locale::facet, std::locale::id</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <utility></span> <span class="comment">// std::pair<></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span>io</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">enum</span> order_type { column_major, row_major};</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>format_punct : <span class="keyword">public</span> std::locale::facet</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> CTy char_type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">public</span>:</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">//round</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> __m128 sse_nd_ps(__m128 v);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//roundEven</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> __m128 sse_rde_ps(__m128 v);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> __m128 sse_rnd_ps(__m128 x);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> __m128 sse_ceil_ps(__m128 v);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> __m128 sse_frc_ps(__m128 x);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> std::locale::id id;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">bool</span> formatted;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">unsigned</span> precision;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">unsigned</span> width;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> char_type separator;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> char_type delim_left;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> char_type delim_right;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> char_type space;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> char_type newline;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> order_type order;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> __m128 sse_mod_ps(__m128 x, __m128 y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> __m128 sse_modf_ps(__m128 x, __m128i & i);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(<span class="keywordtype">size_t</span> a = 0);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL <span class="keyword">explicit</span> format_punct(format_punct <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> };</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">//GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">class </span>basic_state_saver {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL <span class="keyword">explicit</span> basic_state_saver(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL ~basic_state_saver();</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> __m128 sse_stp_ps(__m128 edge, __m128 x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">private</span>:</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> __m128 sse_nan_ps(__m128 x);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> __m128 sse_inf_ps(__m128 x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> typedef ::std::basic_ios<CTy,CTr> state_type;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> state_type::char_type char_type;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> typedef ::std::ios_base::fmtflags flags_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> typedef ::std::streamsize streamsize_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> typedef ::std::locale <span class="keyword">const</span> locale_type;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "intrinsic_common.inl"</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> state_type& state_;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> flags_type flags_;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> streamsize_type precision_;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> streamsize_type width_;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> char_type fill_;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> locale_type locale_;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typedef</span> basic_state_saver<char> state_saver;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">typedef</span> basic_state_saver<wchar_t> wstate_saver;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">class </span>basic_format_saver</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL <span class="keyword">explicit</span> basic_format_saver(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL ~basic_format_saver();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> basic_state_saver<CTy> <span class="keyword">const</span> bss_;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">typedef</span> basic_format_saver<char> format_saver;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> basic_format_saver<wchar_t> wformat_saver;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>precision</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL <span class="keyword">explicit</span> precision(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">struct </span>width</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">unsigned</span> value;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL <span class="keyword">explicit</span> width(<span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">struct </span>delimeter</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> CTy value[3];</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL <span class="keyword">explicit</span> delimeter(CTy <span class="comment">/* left */</span>, CTy <span class="comment">/* right */</span>, CTy <span class="comment">/* separator */</span> = <span class="charliteral">','</span>);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> };</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">struct </span>order</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> order_type value;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL <span class="keyword">explicit</span> order(order_type);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> };</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// functions, inlined (inline)</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> FTy <span class="keyword">const</span>& get_facet(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }<span class="comment">//namespace io</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec1<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> <span class="keyword">const</span>&);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> std::pair<tmat4x4<T,P> <span class="keyword">const</span>, tmat4x4<T,P> <span class="keyword">const</span>> <span class="keyword">const</span> &);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor">#include "io.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00049.html b/doc/api/a00049.html
index 83dbdf7..24d373f 100644
--- a/doc/api/a00049.html
+++ b/doc/api/a00049.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_exponential.hpp File Reference</title>
+<title>0.9.8: log_base.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,26 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">intrinsic_exponential.hpp File Reference</div> </div>
+<div class="title">log_base.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00049_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a> (genType const &x, genType const &base)</td></tr>
+<tr class="separator:ga60a7b0a401da660869946b2b77c710c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType< T, P > const &x, vecType< T, P > const &base)</td></tr>
+<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00202.html">GLM_GTX_log_base</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00049_source.html">intrinsic_exponential.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00049_source.html">log_base.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00049_source.html b/doc/api/a00049_source.html
index 0b2b23d..7fc658b 100644
--- a/doc/api/a00049_source.html
+++ b/doc/api/a00049_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_exponential.hpp Source File</title>
+<title>0.9.8: log_base.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,66 +41,43 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_exponential.hpp</div> </div>
+<div class="title">log_base.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00049.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">{</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> __m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> const static __m128 half = { 0.5,0.5,0.5,0.5 };</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> __m128 halfrecip = _mm_mul_ss( half, recip );</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> return _mm_mul_ss( halfrecip, threeminus_xrr );</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">}</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> </span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">{</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> __m128 x = _mm_load_ss(&vIn[0]);</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> __m128 y = _mm_load_ss(&vIn[1]);</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> __m128 z = _mm_load_ss(&vIn[2]);</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> </span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> const __m128 l = // compute x*x + y*y + z*z</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> _mm_add_ss(</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> _mm_add_ss( _mm_mul_ss(x,x),</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> _mm_mul_ss(y,y)</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> ),</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> _mm_mul_ss( z, z )</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> );</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> </span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> </span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> const __m128 rsqt = _mm_rsqrt_nr_ss( l );</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> </span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> return _mm_mul_ss( l , rsqt );</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">}</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_log_base extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL genType <a class="code" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> genType <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> genType <span class="keyword">const</span> & base);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> vecType<T, P> <span class="keyword">const</span> & base);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "log_base.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00202_html_ga60a7b0a401da660869946b2b77c710c9"><div class="ttname"><a href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL genType log(genType const &x, genType const &base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="ttc" id="a00202_html_ga1842004a127a9f3573764362ff639191"><div class="ttname"><a href="a00202.html#ga1842004a127a9f3573764362ff639191">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x, vecType< T, P > const &base)</div><div class="ttdoc">Logarithm for any base. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00050.html b/doc/api/a00050.html
deleted file mode 100644
index 0763dec..0000000
--- a/doc/api/a00050.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_geometric.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">intrinsic_geometric.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00050_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-08 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00050_source.html">intrinsic_geometric.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00050_source.html b/doc/api/a00050_source.html
index 0beb87f..45269db 100644
--- a/doc/api/a00050_source.html
+++ b/doc/api/a00050_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_geometric.hpp Source File</title>
+<title>0.9.8: man.doxy Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,64 +41,2411 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_geometric.hpp</div> </div>
+<div class="title">man.doxy</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00050.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor"># Doxyfile 1.8.10</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"># This file describes the settings to be used by the documentation system</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor"># doxygen (www.doxygen.org) for a project.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor"># All text after a double hash (##) is considered a comment and is placed in</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"># front of the TAG it is preceding.</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># All text after a single hash (#) is considered a comment and will be ignored.</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># The format is:</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># TAG = value [value, ...]</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># For lists, items can also be appended using:</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"># TAG += value [value, ...]</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"># Values that contain spaces should be placed between quotes (\" \").</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"># Project related configuration options</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># This tag specifies the encoding used for all characters in the config file</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all text</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># before the first occurrence of this tag. Doxygen uses libiconv (or the iconv</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># built into libc) for the transcoding. See http://www.gnu.org/software/libiconv</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># for the list of possible encodings.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> DOXYFILE_ENCODING = UTF-8</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># The PROJECT_NAME tag is a single word (or a sequence of words surrounded by</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># double-quotes, unless you are using Doxywizard) that should identify the</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># project for which the documentation is generated. This name is used in the</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># title of most generated pages and in a few other places.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># The default value is: My Project.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> PROJECT_NAME = 0.9.7</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00048.html">intrinsic_common.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//length</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> __m128 sse_len_ps(__m128 x);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">//distance</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> __m128 sse_dst_ps(__m128 p0, __m128 p1);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//dot</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> __m128 sse_dot_ps(__m128 v1, __m128 v2);</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// SSE1</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> __m128 sse_dot_ss(__m128 v1, __m128 v2);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. This</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># could be handy for archiving the generated documentation or if some version</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># control system is used.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> PROJECT_NUMBER = </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"># for a project that appears at the top of each page and should give viewer a</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># quick idea about the purpose of the project. Keep the description short.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PROJECT_BRIEF = </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># With the PROJECT_LOGO tag one can specify a logo or an icon that is included</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># in the documentation. The maximum height of the logo should not exceed 55</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pixels and the maximum width should not exceed 200 pixels. Doxygen will copy</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># the logo to the output directory.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">//cross</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> __m128 sse_xpd_ps(__m128 v1, __m128 v2);</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">//normalize</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> __m128 sse_nrm_ps(__m128 v);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">//faceforward</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> PROJECT_LOGO = D:/Source/G-Truc/<a class="code" href="a00141.html">glm</a>/doc/logo.png</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># into which the generated documentation will be written. If a relative path is</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># entered, it will be relative to the location where doxygen was started. If</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># left blank the current directory will be used.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> OUTPUT_DIRECTORY = .</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">//reflect</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> __m128 sse_rfe_ps(__m128 I, __m128 N);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">//refract</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "intrinsic_geometric.inl"</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00048_html"><div class="ttname"><a href="a00048.html">intrinsic_common.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># directories (in 2 levels) under the output directory of each output format and</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># will distribute the generated files over these directories. Enabling this</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># option can be useful when feeding doxygen a huge amount of source files, where</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># putting all generated files in the same directory would otherwise causes</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># performance problems for the file system.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> CREATE_SUBDIRS = NO</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># characters to appear in the names of generated files. If set to NO, non-ASCII</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># characters will be escaped, for example _xE3_x81_x84 will be used for Unicode</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># U+3044.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> ALLOW_UNICODE_NAMES = NO</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># information to generate all constant output in the proper language.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># Ukrainian and Vietnamese.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># The default value is: English.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> OUTPUT_LANGUAGE = English</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># descriptions after the members that are listed in the file and class</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># documentation (similar to Javadoc). Set to NO to disable this.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> BRIEF_MEMBER_DESC = NO</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># description of a member or function before the detailed description</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"># Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># brief descriptions will be completely suppressed.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> REPEAT_BRIEF = YES</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator that is</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># used to form the text in various listings. Each string in this list, if found</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"># as the leading text of the brief description, will be stripped from the text</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># and the result, after processing the whole list, is used as the annotated</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># text. Otherwise, the brief description is used as-is. If left blank, the</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"># following values are used ($name is automatically replaced with the name of</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"># the entity):The $name class, The $name widget, The $name file, is, provides,</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># specifies, contains, represents, a, an and the.</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> ABBREVIATE_BRIEF = <span class="stringliteral">"The $name class "</span> \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="stringliteral">"The $name widget "</span> \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="stringliteral">"The $name file "</span> \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> is \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> provides \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> specifies \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> contains \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> represents \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> a \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> an \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> the</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"># doxygen will generate a detailed section even if there is only a brief</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"># description.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> ALWAYS_DETAILED_SEC = NO</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"># inherited members of a class in the documentation of that class as if those</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"># operators of the base classes will not be shown.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> INLINE_INHERITED_MEMB = NO</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"># before files name in the file list and in the header files. If set to NO the</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"># shortest path that makes the file name unique will be used</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> FULL_PATH_NAMES = NO</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"># Stripping is only done if one of the specified strings matches the left-hand</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"># part of the path. The tag can be used to show relative paths in the file list.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"># If left blank the directory from which doxygen is run is used as the path to</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"># strip.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"># Note that you can specify absolute paths here, but also relative paths, which</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"># will be relative from the directory where doxygen is started.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"># This tag requires that the tag FULL_PATH_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> STRIP_FROM_PATH = <span class="stringliteral">"C:/Documents and Settings/Groove/ "</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"># path mentioned in the documentation of a class, which tells the reader which</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"># header file to include in order to use a class. If left blank only the name of</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"># the header file containing the class definition is used. Otherwise one should</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"># specify the list of include paths that are normally passed to the compiler</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"># using the -I flag.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> STRIP_FROM_INC_PATH = </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"># less readable) file names. This can be useful is your file systems doesn't</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"># support long names like on DOS, Mac, or CD-ROM.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> SHORT_NAMES = YES</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"># first line (until the first dot) of a Javadoc-style comment as the brief</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"># description. If set to NO, the Javadoc-style will behave just like regular Qt-</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"># style comments (thus requiring an explicit @brief command for a brief</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"># description.)</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> JAVADOC_AUTOBRIEF = YES</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"># line (until the first dot) of a Qt-style comment as the brief description. If</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"># set to NO, the Qt-style will behave just like regular Qt-style comments (thus</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"># requiring an explicit \brief command for a brief description.)</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> QT_AUTOBRIEF = NO</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"># multi-line C++ special comment block (i.e. a block of </span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"># a brief description. This used to be the default behavior. The new default is</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># to treat a multi-line C++ comment block as a detailed description. Set this</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"># tag to YES if you prefer the old behavior instead.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"># Note that setting this tag to YES also means that rational rose comments are</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"># not recognized any more.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> MULTILINE_CPP_IS_BRIEF = NO</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"># If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"># documentation from any documented member that it re-implements.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> INHERIT_DOCS = YES</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"># page for each member. If set to NO, the documentation of a member will be part</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"># of the file/class/namespace that contains it.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> SEPARATE_MEMBER_PAGES = NO</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"># uses this value to replace tabs by spaces in code fragments.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"># Minimum value: 1, maximum value: 16, default value: 4.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> TAB_SIZE = 8</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"># This tag can be used to specify a number of aliases that act as commands in</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"># the documentation. An alias has the form:</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"># name=value</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"># For example adding</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"># "sideeffect=@par Side Effects:\n"</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"># will allow you to put the command \sideeffect (or @sideeffect) in the</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"># documentation, which will result in a user-defined paragraph with heading</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"># "Side Effects:". You can put \n's in the value part of an alias to insert</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"># newlines.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> ALIASES = </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only).</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># A mapping has the form "name=value". For example adding "class=itcl::class"</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"># will allow you to use the command class in the itcl::class meaning.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> TCL_SUBST = </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"># only. Doxygen will then generate output that is more tailored for C. For</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"># instance, some of the names that are used will be different. The list of all</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"># members will be omitted, etc.</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> OPTIMIZE_OUTPUT_FOR_C = NO</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"># Python sources only. Doxygen will then generate output that is more tailored</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># for that language. For instance, namespaces will be presented as packages,</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># qualified scopes will look different, etc.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> OPTIMIZE_OUTPUT_JAVA = NO</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for Fortran.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> OPTIMIZE_FOR_FORTRAN = NO</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for VHDL.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> OPTIMIZE_OUTPUT_VHDL = NO</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"># parses. With this tag you can assign which parser to use for a given</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># extension. Doxygen has a built-in mapping, but you can override or extend it</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># using this tag. The format is ext=language, where ext is a file extension, and</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># language is one of the parsers supported by doxygen: IDL, Java, Javascript,</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"># C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># Fortran. In the later case the parser tries to guess whether the code is fixed</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># or free formatted code, this is the default for Fortran type files), VHDL. For</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"># instance to make doxygen treat .inc files as Fortran files (default is PHP),</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"># and .f files as C (default is Fortran), use: inc=Fortran f=C.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># Note: For files without extension you can use no_extension as a placeholder.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># Note that for custom extensions you also need to set FILE_PATTERNS otherwise</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># the files are not read by doxygen.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> EXTENSION_MAPPING = </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># according to the Markdown format, which allows for more readable</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"># documentation. See http://daringfireball.net/projects/markdown/ for details.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># The output of markdown processing is further processed by doxygen, so you can</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># case of backward compatibilities issues.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> MARKDOWN_SUPPORT = YES</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"># When enabled doxygen tries to link words that correspond to documented</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># classes, or namespaces to their corresponding documentation. Such a link can</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># be prevented in individual cases by putting a % sign in front of the word or</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># globally by setting AUTOLINK_SUPPORT to NO.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> AUTOLINK_SUPPORT = YES</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should set this</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># tag to YES in order to let doxygen match functions declarations and</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string);</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"># versus func(std::string) {}). This also make the inheritance and collaboration</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> BUILTIN_STL_SUPPORT = NO</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># If you use Microsoft's C++/CLI language, you should set this option to YES to</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># enable parsing support.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> CPP_CLI_SUPPORT = NO</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip (see:</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># will parse them like normal C++ but will assume all classes use public instead</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># of private inheritance when no explicit protection keyword is present.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> SIP_SUPPORT = NO</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"># For Microsoft's IDL there are propget and propput attributes to indicate</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># getter and setter methods for a property. Setting this option to YES will make</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># doxygen to replace the get and set methods by a property in the documentation.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># This will only work if the methods are indeed getting or setting a simple</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"># type. If this is not the case, or you want to show the methods anyway, you</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># should set this option to NO.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> IDL_PROPERTY_SUPPORT = YES</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># tag is set to YES then doxygen will reuse the documentation of the first</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"># member in the group (if any) for the other members of the group. By default</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># all members of a group must be documented explicitly.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> DISTRIBUTE_GROUP_DOC = NO</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># If one adds a struct or class to a group and this option is enabled, then also</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># any nested class or struct is added to the same group. By default this option</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"># is disabled and one has to add nested compounds explicitly via \ingroup.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> GROUP_NESTED_COMPOUNDS = NO</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># Set the SUBGROUPING tag to YES to allow class member groups of the same type</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># (for instance a group of public functions) to be put as a subgroup of that</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># type (e.g. under the Public Functions section). Set it to NO to prevent</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"># subgrouping. Alternatively, this can be done per class using the</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># \nosubgrouping command.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> SUBGROUPING = NO</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># are shown inside the group in which they are included (e.g. using \ingroup)</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"># instead of on a separate page (for HTML and Man pages) or section (for LaTeX</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"># and RTF).</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># Note that this feature does not work in combination with</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"># SEPARATE_MEMBER_PAGES.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> INLINE_GROUPED_CLASSES = NO</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># with only public data fields or simple typedef fields will be shown inline in</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># the documentation of the scope in which they are defined (i.e. file,</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"># namespace, or group documentation), provided this scope is documented. If set</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"># to NO, structs, classes, and unions are shown on a separate page (for HTML and</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># Man pages) or section (for LaTeX and RTF).</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> INLINE_SIMPLE_STRUCTS = NO</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"># enum is documented as struct, union, or enum with the name of the typedef. So</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file,</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically be</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"># useful for C code in case the coding convention dictates that all compound</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"># types are typedef'ed and only the typedef is referenced, never the tag name.</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> TYPEDEF_HIDES_STRUCT = NO</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"># The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># cache is used to resolve symbols given their name and scope. Since this can be</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"># an expensive process and often the same symbol appears multiple times in the</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"># code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"># doxygen will become slower. If the cache is too large, memory is wasted. The</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"># cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"># is 0..9, the default is 0, corresponding to a cache size of 2^16=65536</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"># symbols. At the end of a run doxygen will report the cache usage and suggest</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"># the optimal cache size from a speed point of view.</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"># Minimum value: 0, maximum value: 9, default value: 0.</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> LOOKUP_CACHE_SIZE = 0</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># Build related configuration options</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"># If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"># documentation are documented, even if no documentation was available. Private</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"># class members and static file members will be hidden unless the</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"># EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"># Note: This will also disable the warnings about undocumented members that are</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"># normally produced when WARNINGS is set to YES.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> EXTRACT_ALL = NO</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"># be included in the documentation.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> EXTRACT_PRIVATE = NO</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"># If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"># scope will be included in the documentation.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> EXTRACT_PACKAGE = NO</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES, all static members of a file will be</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> EXTRACT_STATIC = YES</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"># locally in source files will be included in the documentation. If set to NO,</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"># only classes defined in header files are included. Does not have any effect</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"># for Java sources.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> EXTRACT_LOCAL_CLASSES = NO</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"># This flag is only useful for Objective-C code. If set to YES, local methods,</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"># which are defined in the implementation section but not in the interface are</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"># included in the documentation. If set to NO, only methods in the interface are</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"># included.</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> EXTRACT_LOCAL_METHODS = NO</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"># extracted and appear in the documentation as a namespace called</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"># 'anonymous_namespace{file}', where file will be replaced with the base name of</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"># the file that contains the anonymous namespace. By default anonymous namespace</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"># are hidden.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> EXTRACT_ANON_NSPACES = NO</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"># undocumented members inside documented classes or files. If set to NO these</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"># members will be included in the various overviews, but no documentation</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"># section is generated. This option has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> HIDE_UNDOC_MEMBERS = YES</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. If set</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"># to NO, these classes will be included in the various overviews. This option</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"># has no effect if EXTRACT_ALL is enabled.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> HIDE_UNDOC_CLASSES = YES</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"># (class|struct|union) declarations. If set to NO, these declarations will be</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"># included in the documentation.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> HIDE_FRIEND_COMPOUNDS = YES</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"># documentation blocks found inside the body of a function. If set to NO, these</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># blocks will be appended to the function's detailed documentation block.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> HIDE_IN_BODY_DOCS = YES</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation that is typed after a</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"># \internal command is included. If the tag is set to NO then the documentation</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"># will be excluded. Set it to YES to include the internal documentation.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> INTERNAL_DOCS = NO</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"># names in lower-case letters. If set to YES, upper-case letters are also</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"># and Mac users are advised to set this option to NO.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"># The default value is: system dependent.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> CASE_SENSE_NAMES = YES</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"># their full class and namespace scopes in the documentation. If set to YES, the</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"># scope will be hidden.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> HIDE_SCOPE_NAMES = YES</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"># If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"># append additional text to a page's title, such as Class Reference. If set to</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"># YES the compound reference will be hidden.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> HIDE_COMPOUND_REFERENCE= NO</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"># the files that are included by a file in the documentation of that file.</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> SHOW_INCLUDE_FILES = NO</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"># If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"># grouped member an include statement to the documentation, telling the reader</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"># which file to include in order to use the member.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> SHOW_GROUPED_MEMB_INC = NO</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"># files with double quotes in the documentation rather than with sharp brackets.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> FORCE_LOCAL_INCLUDES = NO</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"># If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"># documentation for inline members.</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> INLINE_INFO = NO</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"># (detailed) documentation of file and class members alphabetically by member</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order.</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> SORT_MEMBER_DOCS = YES</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"># descriptions of file, namespace and class members alphabetically by member</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order. Note that</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"># this will also influence the order of the classes in the class list.</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> SORT_BRIEF_DOCS = YES</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"># (brief and detailed) documentation of class members so that constructors and</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"># destructors are listed first. If set to NO the constructors will appear in the</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"># respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"># Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"># member documentation.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"># Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"># detailed member documentation.</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> SORT_MEMBERS_CTORS_1ST = NO</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"># of group names into alphabetical order. If set to NO the group names will</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"># appear in their defined order.</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> SORT_GROUP_NAMES = NO</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"># fully-qualified names, including namespaces. If set to NO, the class list will</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"># be sorted only by class name, not including the namespace part.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"># Note: This option applies only to the class list, not to the alphabetical</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"># list.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> SORT_BY_SCOPE_NAME = YES</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"># type resolution of all parameters of a function it will reject a match between</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"># the prototype and the implementation of a member function even if there is</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"># only one candidate or it is obvious which candidate to choose by doing a</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"># simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"># accept a match between prototype and implementation in such cases.</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> STRICT_PROTO_MATCHING = NO</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"># list. This list is created by putting \todo commands in the documentation.</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> GENERATE_TODOLIST = YES</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"># list. This list is created by putting \test commands in the documentation.</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> GENERATE_TESTLIST = YES</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"># list. This list is created by putting \bug commands in the documentation.</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> GENERATE_BUGLIST = YES</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"># the deprecated list. This list is created by putting \deprecated commands in</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"># the documentation.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> GENERATE_DEPRECATEDLIST= YES</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional documentation</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"># sections, marked by \if <section_label> ... \endif and \cond <section_label></span></div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"># ... \endcond blocks.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> ENABLED_SECTIONS = </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"># initial value of a variable or macro / define can have for it to appear in the</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"># documentation. If the initializer consists of more lines than specified here</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"># it will be hidden. Use a value of 0 to hide initializers completely. The</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"># appearance of the value of individual variables and macros / defines can be</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"># controlled using \showinitializer or \hideinitializer command in the</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"># documentation regardless of this setting.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"># Minimum value: 0, maximum value: 10000, default value: 30.</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> MAX_INITIALIZER_LINES = 30</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated at</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"># the bottom of the documentation of classes and structs. If set to YES, the</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"># list will mention the files that were used to generate the documentation.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> SHOW_USED_FILES = NO</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. This</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"># will remove the Files entry from the Quick Index and from the Folder Tree View</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"># (if specified).</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> SHOW_FILES = YES</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"># page. This will remove the Namespaces entry from the Quick Index and from the</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"># Folder Tree View (if specified).</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> SHOW_NAMESPACES = YES</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"># popen()) the command command input-file, where command is the value of the</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"># FILE_VERSION_FILTER tag, and input-file is the name of an input file provided</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"># by doxygen. Whatever the program writes to standard output is used as the file</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"># version. For an example see the documentation.</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> FILE_VERSION_FILTER = </div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"># output files in an output format independent way. To create the layout file</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"># that represents doxygen's defaults, run doxygen with the -l option. You can</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"># optionally specify a file name after the option, if omitted DoxygenLayout.xml</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"># will be used as the name of the layout file.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"># Note that if you run doxygen from a directory containing a file called</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"># DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"># tag is left empty.</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> LAYOUT_FILE = </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files containing</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"># the reference definitions. This must be a list of .bib files. The .bib</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"># extension is automatically appended if omitted. This requires the bibtex tool</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"># to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"># For LaTeX the style of the bibliography can be controlled using</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"># LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"># search path. See also \cite for info how to create references.</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> CITE_BIB_FILES = </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"># Configuration options related to warning and progress messages</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated to</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"># standard output by doxygen. If QUIET is set to YES this implies that the</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"># messages are off.</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> QUIET = NO</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"># generated to standard error (stderr) by doxygen. If WARNINGS is set to YES</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"># this implies that the warnings are on.</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"># Tip: Turn warnings on while writing the documentation.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> WARNINGS = YES</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"># If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"># warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"># will automatically be disabled.</span></div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> WARN_IF_UNDOCUMENTED = YES</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"># If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"># potential errors in the documentation, such as not documenting some parameters</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"># in a documented function, or documenting parameters that don't exist or using</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"># markup commands wrongly.</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"># The default value is: YES.</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> WARN_IF_DOC_ERROR = YES</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"># This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"># are documented, but have no documentation for their parameters or return</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"># value. If set to NO, doxygen will only warn about wrong or incomplete</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"># parameter documentation, but not about the absence of documentation.</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> WARN_NO_PARAMDOC = NO</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that doxygen</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"># can produce. The string should contain the $file, $line, and $text tags, which</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"># will be replaced by the file and line number from which the warning originated</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"># and the warning text. Optionally the format may contain $version, which will</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"># be replaced by the version of the file (if it could be obtained via</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"># FILE_VERSION_FILTER)</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"># The default value is: $file:$line: $text.</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> WARN_FORMAT = <span class="stringliteral">"$file:$line: $text"</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning and error</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"># messages should be written. If left blank the output is written to standard</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"># error (stderr).</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> WARN_LOGFILE = </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"># Configuration options related to the input files</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"># The INPUT tag is used to specify the files and/or directories that contain</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"># documented source files. You may enter file names like myfile.cpp or</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"># directories like /usr/src/myproject. Separate the files or directories with</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"># spaces. See also FILE_PATTERNS and EXTENSION_MAPPING</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"># Note: If this tag is empty the current directory is searched.</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> INPUT = ../<a class="code" href="a00141.html">glm</a> \</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> .</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> # This tag can be used to specify the character encoding of the source files</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"># libiconv (or the iconv built into libc) for the transcoding. See the libiconv</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"># documentation (see: http://www.gnu.org/software/libiconv) for the list of</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"># possible encodings.</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> INPUT_ENCODING = UTF-8</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"># *.h) to filter out the source-files in the directories.</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"># Note that for custom extensions or not directly supported extensions you also</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"># need to set EXTENSION_MAPPING for the extension otherwise the files are not</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"># read by doxygen.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"># If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor"># *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor"># *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"># *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor"># *.vhdl, *.ucf, *.qsf, *.as and *.js.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> FILE_PATTERNS = *.hpp \</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> *.doxy</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"># The RECURSIVE tag can be used to specify whether or not subdirectories should</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor"># be searched for input files as well.</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> RECURSIVE = YES</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor"># run.</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> EXCLUDE = </div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"># from the input.</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"># The default value is: NO.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> EXCLUDE_SYMLINKS = NO</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"># certain files from those directories.</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor">#</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor"># exclude all test directories for example use the pattern */test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="comment"></span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="comment">EXCLUDE_PATTERNS = </span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment"></span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass,</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="comment"># AClass::ANamespace, ANamespace::*Test</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="comment"># exclude all test directories use the pattern */</span><span class="preprocessor">test</span><span class="comment">/*</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="comment"></span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="comment">EXCLUDE_SYMBOLS = </span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment"></span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"># that contain example code fragments that are included (see the \include</span></div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment"></span></div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="comment">EXAMPLE_PATH = </span></div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"></span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment"># *.h) to filter out the source-files in the directories. If left blank all</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment"># files are included.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="comment"></span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment">EXAMPLE_PATTERNS = *</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment"></span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment"># searched for input files to be used with the \include or \dontinclude commands</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment"># irrespective of the value of the RECURSIVE tag.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="comment"></span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment">EXAMPLE_RECURSIVE = NO</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment"></span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or directories</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="comment"># that contain images that are to be included in the documentation (see the</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="comment"># \image command).</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment"></span></div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="comment">IMAGE_PATH = </span></div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="comment"></span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment"># by executing (via popen()) the command:</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="comment"># <filter> <input-file></span></div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="comment"># where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="comment"># name of an input file. Doxygen will then use the output that the filter</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="comment"># program writes to standard output. If FILTER_PATTERNS is specified, this tag</span></div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="comment"># will be ignored.</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="comment"># Note that the filter must not add or remove lines; it is applied before the</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="comment"># code is scanned, but not when the output code is generated. If lines are added</span></div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment"># or removed, the anchors will not be placed correctly.</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment"></span></div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">INPUT_FILTER = </span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="comment"></span></div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="comment"># basis. Doxygen will compare the file name with each pattern and apply the</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="comment"># filter if there is a match. The filters are a list of the form: pattern=filter</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="comment"># (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="comment"># filters are used. If the FILTER_PATTERNS tag is empty or if none of the</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="comment"># patterns match the file name, INPUT_FILTER is applied.</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="comment"></span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment">FILTER_PATTERNS = </span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment"></span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment"># INPUT_FILTER) will also be used to filter the input files that are used for</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="comment"># producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).</span></div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="comment"></span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="comment">FILTER_SOURCE_FILES = NO</span></div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="comment"></span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) and</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment"># it is also possible to disable source filtering for a specific pattern using</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment"># *.ext= (so without naming a filter).</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment"># This tag requires that the tag FILTER_SOURCE_FILES is set to YES.</span></div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment"></span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment">FILTER_SOURCE_PATTERNS = </span></div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment"></span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="comment"># If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that</span></div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="comment"># is part of the input, its contents will be placed on the main page</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="comment"># (index.html). This can be useful if you have a project on for instance GitHub</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment"># and want to reuse the introduction page also for the doxygen output.</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="comment"></span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="comment">USE_MDFILE_AS_MAINPAGE = </span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="comment"></span></div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment"># Configuration options related to source browsing</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="comment"></span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will be</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="comment"># generated. Documented entities will be cross-referenced with these sources.</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment"># Note: To get rid of all source code in the generated output, make sure that</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="comment"># also VERBATIM_HEADERS is set to NO.</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="comment"></span></div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="comment">SOURCE_BROWSER = YES</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="comment"></span></div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body of functions,</span></div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="comment"># classes and enums directly into the documentation.</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="comment"></span></div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment">INLINE_SOURCES = NO</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"></span></div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any</span></div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment"># special comment blocks from generated source code fragments. Normal C, C++ and</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="comment"># Fortran comments will always remain visible.</span></div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment"></span></div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment">STRIP_CODE_COMMENTS = YES</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment"></span></div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES then for each documented</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="comment"># function all documented functions referencing it will be listed.</span></div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="comment"></span></div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="comment">REFERENCED_BY_RELATION = YES</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment"></span></div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="comment"># If the REFERENCES_RELATION tag is set to YES then for each documented function</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment"># all documented entities called/used by that function will be listed.</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="comment"></span></div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="comment">REFERENCES_RELATION = YES</span></div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="comment"></span></div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="comment"># to YES then the hyperlinks from functions in REFERENCES_RELATION and</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="comment"># REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will</span></div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="comment"># link to the documentation.</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="comment"></span></div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="comment">REFERENCES_LINK_SOURCE = YES</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="comment"></span></div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="comment"># If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="comment"># source code will show a tooltip with additional information such as prototype,</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="comment"># brief description and links to the definition and documentation. Since this</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="comment"># will make the HTML file larger and loading of large files a bit slower, you</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="comment"># can opt to disable this feature.</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="comment"></span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="comment">SOURCE_TOOLTIPS = YES</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="comment"></span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code will</span></div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="comment"># point to the HTML generated by the htags(1) tool instead of doxygen built-in</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="comment"># source browser. The htags tool is part of GNU's global source tagging system</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment"># (see http://www.gnu.org/software/global/global.html). You will need version</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="comment"># 4.8.6 or higher.</span></div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment"># To use it do the following:</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment"># - Install the latest version of global</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment"># - Enable SOURCE_BROWSER and USE_HTAGS in the config file</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment"># - Make sure the INPUT points to the root of the source tree</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="comment"># - Run doxygen as normal</span></div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="comment"># Doxygen will invoke htags (and that will in turn invoke gtags), so these</span></div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="comment"># tools must be available from the command line (i.e. in the search path).</span></div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="comment">#</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="comment"># The result: instead of the source browser generated by doxygen, the links to</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="comment"># source code will now point to the output of htags.</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment"></span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment">USE_HTAGS = NO</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment"></span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment"># If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment"># verbatim copy of the header file for each class for which an include is</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment"># specified. Set to NO to disable this.</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment"># See also: Section \class.</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment"></span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">VERBATIM_HEADERS = YES</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment"></span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment"># Configuration options related to the alphabetical class index</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment"></span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment"># compounds will be generated. Enable this if the project contains a lot of</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment"># classes, structs, unions or interfaces.</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment"></span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">ALPHABETICAL_INDEX = NO</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment"></span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment"># The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment"># which the alphabetical index list will be split.</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment"># Minimum value: 1, maximum value: 20, default value: 5.</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment"></span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">COLS_IN_ALPHA_INDEX = 5</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment"></span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment"># In case all classes in a project start with a common prefix, all classes will</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment"># be put under the same header in the alphabetical index. The IGNORE_PREFIX tag</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment"># can be used to specify a prefix (or a list of prefixes) that should be ignored</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment"># while generating the index headers.</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment"></span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">IGNORE_PREFIX = </span></div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment"></span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment"># Configuration options related to the HTML output</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment"></span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment"># If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment"></span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">GENERATE_HTML = YES</span></div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment"></span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a</span></div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment"># The default directory is: html.</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment"></span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">HTML_OUTPUT = html</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment"></span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for each</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment"># generated HTML page (for example: .htm, .php, .asp).</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment"># The default value is: .html.</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment"></span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">HTML_FILE_EXTENSION = .html</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"></span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment"># The HTML_HEADER tag can be used to specify a user-defined HTML header file for</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment"># each generated HTML page. If the tag is left blank doxygen will generate a</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment"># standard header.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment"># To get valid HTML the header file that includes any scripts and style sheets</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment"># that doxygen needs, which is dependent on the configuration options used (e.g.</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment"># the setting GENERATE_TREEVIEW). It is highly recommended to start with a</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"># default header using</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment"># doxygen -w html new_header.html new_footer.html new_stylesheet.css</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment"># YourConfigFile</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment"># and then modify the file new_header.html. See also section "Doxygen usage"</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment"># for information on how to generate the default header that doxygen normally</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment"># uses.</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment"># Note: The header is subject to change so you typically have to regenerate the</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment"># default header when upgrading to a newer version of doxygen. For a description</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment"># of the possible markers and block names see the documentation.</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment"></span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">HTML_HEADER = </span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment"></span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment"># The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment"># generated HTML page. If the tag is left blank doxygen will generate a standard</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment"># footer. See HTML_HEADER for more information on how to generate a default</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment"># footer and what special commands can be used inside the footer. See also</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment"># section "Doxygen usage" for information on how to generate the default footer</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment"># that doxygen normally uses.</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment"></span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">HTML_FOOTER = </span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment"></span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading style</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"># sheet that is used by each HTML page. It can be used to fine-tune the look of</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment"># the HTML output. If left blank doxygen will generate a default style sheet.</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the style</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment"># sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"># Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment"># it is more robust and this tag (HTML_STYLESHEET) will in the future become</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment"># obsolete.</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment"></span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">HTML_STYLESHEET = </span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment"></span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment"># The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment"># cascading style sheets that are included after the standard style sheets</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment"># created by doxygen. Using this option one can overrule certain style aspects.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment"># This is preferred over using HTML_STYLESHEET since it does not replace the</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment"># standard style sheet and is therefore more robust against future updates.</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment"># Doxygen will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment"># list). For an example see the documentation.</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment"></span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">HTML_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment"></span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"># other source files which should be copied to the HTML output directory. Note</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment"># that these files will be copied to the base HTML output directory. Use the</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment"># $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that the</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment"># files will be copied as-is; there are no commands or markers available.</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment"></span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">HTML_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment"></span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment"># will adjust the colors in the style sheet and background images according to</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment"># this color. Hue is specified as an angle on a colorwheel, see</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment"># http://en.wikipedia.org/wiki/Hue for more information. For instance the value</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment"># 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment"># purple, and 360 is red again.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment"># Minimum value: 0, maximum value: 359, default value: 220.</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment"></span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">HTML_COLORSTYLE_HUE = 220</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"></span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"># in the HTML output. For a value of 0 the output will use grayscales only. A</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment"># value of 255 will produce the most vivid colors.</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"># Minimum value: 0, maximum value: 255, default value: 100.</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"></span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">HTML_COLORSTYLE_SAT = 100</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment"></span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment"># luminance component of the colors in the HTML output. Values below 100</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment"># gradually make the output lighter, whereas values above 100 make the output</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment"># darker. The value divided by 100 is the actual gamma applied, so 80 represents</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"># a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"># change the gamma.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment"># Minimum value: 40, maximum value: 240, default value: 80.</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"></span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">HTML_COLORSTYLE_GAMMA = 80</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment"></span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"># page will contain the date and time when the page was generated. Setting this</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"># to YES can help to show when doxygen was last run and thus if the</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"># documentation is up to date.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"></span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">HTML_TIMESTAMP = NO</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"></span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"># documentation will contain sections that can be hidden and shown after the</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"># page has loaded.</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">HTML_DYNAMIC_SECTIONS = NO</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"></span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"># With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"># shown in the various tree structured indices initially; the user can expand</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"># and collapse entries dynamically later on. Doxygen will expand the tree to</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"># such a level that at most the specified number of entries are visible (unless</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"># a fully collapsed tree already exceeds this amount). So setting the number of</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"># entries 1 will produce a full collapsed tree by default. 0 is a special value</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"># representing an infinite number of entries and will result in a full expanded</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"># tree by default.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"># Minimum value: 0, maximum value: 9999, default value: 100.</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"></span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">HTML_INDEX_NUM_ENTRIES = 100</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"></span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"># generated that can be used as input for Apple's Xcode 3 integrated development</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"># environment (see: http://developer.apple.com/tools/xcode/), introduced with</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"># OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"># Makefile in the HTML output directory. Running make will produce the docset in</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment"># that directory and running make install will install the docset in</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"># startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"># for more information.</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"></span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">GENERATE_DOCSET = NO</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"></span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"># This tag determines the name of the docset feed. A documentation feed provides</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"># an umbrella under which multiple documentation sets from a single provider</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"># (such as a company or product suite) can be grouped.</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"># The default value is: Doxygen generated docs.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"></span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">DOCSET_FEEDNAME = "Doxygen generated docs"</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"></span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"># This tag specifies a string that should uniquely identify the documentation</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"># set bundle. This should be a reverse domain-name style string, e.g.</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"># com.mycompany.MyDocSet. Doxygen will append .docset to the name.</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"></span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">DOCSET_BUNDLE_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"></span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"># The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"># the documentation publisher. This should be a reverse domain-name style</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"># The default value is: org.doxygen.Publisher.</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"></span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">DOCSET_PUBLISHER_ID = org.doxygen.Publisher</span></div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment"></span></div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment"># The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.</span></div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment"># The default value is: Publisher.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment"></span></div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">DOCSET_PUBLISHER_NAME = Publisher</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"></span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"># additional HTML index files: index.hhp, index.hhc, and index.hhk. The</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"># index.hhp is a project file that can be read by Microsoft's HTML Help Workshop</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"># (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"># Windows.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"># The HTML Help Workshop contains a compiler that can convert all HTML output</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"># generated by doxygen into a single compiled HTML file (.chm). Compiled HTML</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"># files are now used as the Windows 98 help format, and will replace the old</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"># Windows help format (.hlp) on all Windows platforms in the future. Compressed</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"># HTML files also contain an index, a table of contents, and you can search for</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"># words in the documentation. The HTML workshop also contains a viewer for</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"># compressed HTML files.</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"></span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment">GENERATE_HTMLHELP = NO</span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span></div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment"># The CHM_FILE tag can be used to specify the file name of the resulting .chm</span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"># file. You can add a path in front of the file if the result should not be</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"># written to the html output directory.</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"></span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">CHM_FILE = </span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"></span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"># The HHC_LOCATION tag can be used to specify the location (absolute path</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"># including file name) of the HTML help compiler (hhc.exe). If non-empty,</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"># doxygen will try to run the HTML help compiler on the generated index.hhp.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"># The file has to be specified with full path.</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"></span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">HHC_LOCATION = </span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment"></span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"># The GENERATE_CHI flag controls if a separate .chi index file is generated</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"># (YES) or that it should be included in the master .chm file (NO).</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"></span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">GENERATE_CHI = NO</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment"></span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment"># The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment"># and project file content.</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment"></span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">CHM_INDEX_ENCODING = </span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment"></span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment"># The BINARY_TOC flag controls whether a binary table of contents is generated</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment"># (YES) or a normal table of contents (NO) in the .chm file. Furthermore it</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment"># enables the Previous and Next buttons.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment"></span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">BINARY_TOC = NO</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment"></span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members to</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment"># the table of contents of the HTML help documentation and to the tree view.</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment"></span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">TOC_EXPAND = NO</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment"></span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment"># can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"># (.qch) of the generated HTML documentation.</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"></span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">GENERATE_QHP = NO</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment"></span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment"># the file name of the resulting .qch file. The path specified is relative to</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment"># the HTML output folder.</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment"></span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">QCH_FILE = </span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment"></span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment"># Project output. For more information please see Qt Help Project / Namespace</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment"># (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment"></span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">QHP_NAMESPACE = org.doxygen.Project</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment"></span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment"># Help Project output. For more information please see Qt Help Project / Virtual</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment"># Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment"># folders).</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment"># The default value is: doc.</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"></span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">QHP_VIRTUAL_FOLDER = doc</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment"></span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment"># If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment"># filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment"># filters).</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment"></span></div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">QHP_CUST_FILTER_NAME = </span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment"># The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment"># custom filter to add. For more information please see Qt Help Project / Custom</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment"># filters).</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment"></span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">QHP_CUST_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"></span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this</span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment"># project's filter section matches. Qt Help Project / Filter Attributes (see:</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment"># http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment"></span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">QHP_SECT_FILTER_ATTRS = </span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment"></span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment"># The QHG_LOCATION tag can be used to specify the location of Qt's</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment"># qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment"># generated .qhp file.</span></div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"></span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">QHG_LOCATION = </span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"></span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment"># generated, together with the HTML files, they form an Eclipse help plugin. To</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment"># install this plugin and make it available under the help contents menu in</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment"># Eclipse, the contents of the directory containing the HTML and XML files needs</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment"># to be copied into the plugins directory of eclipse. The name of the directory</span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"># within the plugins directory should be the same as the ECLIPSE_DOC_ID value.</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment"># After copying Eclipse needs to be restarted before the help appears.</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment"></span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">GENERATE_ECLIPSEHELP = NO</span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment"></span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment"># A unique identifier for the Eclipse help plugin. When installing the plugin</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"># the directory name containing the HTML and XML files should also have this</span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment"># name. Each documentation set should have its own identifier.</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment"># This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment"></span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">ECLIPSE_DOC_ID = org.doxygen.Project</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment"></span></div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment"># If you want full control over the layout of the generated HTML pages it might</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment"># be necessary to disable the index and replace it with your own. The</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment"># DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top</span></div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment"># of each HTML page. A value of NO enables the index and the value YES disables</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="comment"># it. Since the tabs in the index contain the same information as the navigation</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="comment"># tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment"></span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">DISABLE_INDEX = NO</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment"></span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index</span></div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <span class="comment"># structure should be generated to display hierarchical information. If the tag</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment"># value is set to YES, a side panel will be generated containing a tree-like</span></div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment"># index structure (just like the one that is generated for HTML Help). For this</span></div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment"># to work a browser that supports JavaScript, DHTML, CSS and frames is required</span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment"># (i.e. any modern browser). Windows users are probably better off using the</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment"># HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment"># further fine-tune the look of the index. As an example, the default style</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"># sheet generated by doxygen has an example that shows how to put an image at</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment"># the root of the tree instead of the PROJECT_NAME. Since the tree basically has</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment"># the same information as the tab index, you could consider setting</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment"># DISABLE_INDEX to YES when enabling this option.</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"></span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">GENERATE_TREEVIEW = NO</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment"></span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment"># doxygen will group on one line in the generated HTML documentation.</span></div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment"># Note that a value of 0 will completely suppress the enum values from appearing</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment"># in the overview section.</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"># Minimum value: 0, maximum value: 20, default value: 4.</span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment"></span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">ENUM_VALUES_PER_LINE = 4</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment"></span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment"># to set the initial width (in pixels) of the frame in which the tree is shown.</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment"># Minimum value: 0, maximum value: 1500, default value: 250.</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment"></span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment">TREEVIEW_WIDTH = 250</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment"></span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"># If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to</span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"># external symbols imported via tag files in a separate window.</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment"></span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">EXT_LINKS_IN_WINDOW = NO</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment"></span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment"># Use this tag to change the font size of LaTeX formulas included as images in</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment"># the HTML documentation. When you change the font size after a successful</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment"># doxygen run you need to manually remove any form_*.png images from the HTML</span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment"># output directory to force them to be regenerated.</span></div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment"># Minimum value: 8, maximum value: 50, default value: 10.</span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment"></span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">FORMULA_FONTSIZE = 10</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment"></span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are not</span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment"># supported properly for IE 6.0, but are supported on all modern browsers.</span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="comment"># Note that when changing this option you need to delete any form_*.png files in</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment"># the HTML output directory before the changes have effect.</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment"></span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">FORMULA_TRANSPARENT = YES</span></div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment"></span></div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see</span></div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment"># http://www.mathjax.org) which uses client side Javascript for the rendering</span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment"># instead of using pre-rendered bitmaps. Use this if you do not have LaTeX</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment"># installed or if you want to formulas look prettier in the HTML output. When</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment"># enabled you may also need to install MathJax separately and configure the path</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment"># to it using the MATHJAX_RELPATH option.</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment"></span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">USE_MATHJAX = NO</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="comment"></span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment"># When MathJax is enabled you can set the default output format to be used for</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment"># the MathJax output. See the MathJax site (see:</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="comment"># http://docs.mathjax.org/en/latest/output.html) for more details.</span></div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <span class="comment"># Possible values are: HTML-CSS (which is slower, but has the best</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment"># compatibility), NativeMML (i.e. MathML) and SVG.</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="comment"># The default value is: HTML-CSS.</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment"></span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">MATHJAX_FORMAT = HTML-CSS</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment"></span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment"># When MathJax is enabled you need to specify the location relative to the HTML</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="comment"># output directory using the MATHJAX_RELPATH option. The destination directory</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment"># should contain the MathJax.js script. For instance, if the mathjax directory</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="comment"># is located at the same level as the HTML output directory, then</span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment"># Content Delivery Network so you can quickly see the result without installing</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="comment"># MathJax. However, it is strongly recommended to install a local copy of</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment"># MathJax from http://www.mathjax.org before deployment.</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment"># The default value is: http://cdn.mathjax.org/mathjax/latest.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment"></span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="comment">MATHJAX_RELPATH = http://www.mathjax.org/mathjax</span></div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <span class="comment"></span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="comment"># extension names that should be enabled during MathJax rendering. For example</span></div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment"># MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="comment"></span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">MATHJAX_EXTENSIONS = </span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment"></span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment"># The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="comment"># of code that will be used on startup of the MathJax code. See the MathJax site</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> <span class="comment"># (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="comment"># example see the documentation.</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> <span class="comment"></span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <span class="comment">MATHJAX_CODEFILE = </span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="comment"></span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box for</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="comment"># the HTML output. The underlying search engine uses javascript and DHTML and</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment"># should work on any modern browser. Note that when using HTML help</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="comment"># (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)</span></div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="comment"># there is already a search function so this one should typically be disabled.</span></div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> <span class="comment"># For large projects the javascript based search engine can be slow, then</span></div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> <span class="comment"># enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="comment"># search using the keyboard; to jump to the search box use <access key> + S</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> <span class="comment"># (what the <access key> is depends on the OS and browser, but it is typically</span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="comment"># <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="comment"># key> to jump into the search results window, the results can be navigated</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="comment"># using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> <span class="comment"># the search. The filter options can be selected when the cursor is inside the</span></div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> <span class="comment"># search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys></span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="comment"># to select a filter and <Enter> or <escape> to activate or cancel the filter</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="comment"># option.</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="comment"></span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">SEARCHENGINE = NO</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="comment"></span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="comment"># implemented using a web server instead of a web client using Javascript. There</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment"># are two flavors of web server based searching depending on the EXTERNAL_SEARCH</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment"># setting. When disabled, doxygen will generate a PHP script for searching and</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment"># an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment"># and searching needs to be provided by external tools. See the section</span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment"># "External Indexing and Searching" for details.</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment"></span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">SERVER_BASED_SEARCH = NO</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment"></span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment"># When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment"># script for searching. Instead the search results are written to an XML file</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="comment"># which needs to be processed by an external indexer. Doxygen will invoke an</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment"># external search engine pointed to by the SEARCHENGINE_URL option to obtain the</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment"># search results.</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment"># Xapian (see: http://xapian.org/).</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="comment"># See the section "External Indexing and Searching" for details.</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="comment"></span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <span class="comment">EXTERNAL_SEARCH = NO</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <span class="comment"></span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="comment"># The SEARCHENGINE_URL should point to a search engine hosted by a web server</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="comment"># which will return the search results when EXTERNAL_SEARCH is enabled.</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment"># Xapian (see: http://xapian.org/). See the section "External Indexing and</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment"># Searching" for details.</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="comment"></span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="comment">SEARCHENGINE_URL = </span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="comment"></span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="comment"># search data is written to a file for indexing by an external tool. With the</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> <span class="comment"># SEARCHDATA_FILE tag the name of this file can be specified.</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="comment"># The default file is: searchdata.xml.</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> <span class="comment"></span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="comment">SEARCHDATA_FILE = searchdata.xml</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="comment"></span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> <span class="comment"># EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is</span></div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="comment"># useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="comment"># projects and redirect the results back to the right project.</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> <span class="comment"></span></div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> <span class="comment">EXTERNAL_SEARCH_ID = </span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="comment"></span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="comment"># The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> <span class="comment"># projects other than the one defined by this configuration file, but that are</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="comment"># all added to the same external search index. Each project needs to have a</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="comment"># unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of</span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="comment"># to a relative location where the documentation can be found. The format is:</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> <span class="comment"># EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...</span></div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="comment"></span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="comment">EXTRA_SEARCH_MAPPINGS = </span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> <span class="comment"></span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> <span class="comment"># Configuration options related to the LaTeX output</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment"># If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment"></span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">GENERATE_LATEX = NO</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="comment"></span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> <span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="comment"># The default directory is: latex.</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="comment"></span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="comment">LATEX_OUTPUT = latex</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> <span class="comment"></span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> <span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment"># invoked.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> <span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for generating</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="comment"># bitmaps for formulas in the HTML output, but not in the Makefile that is</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="comment"># written to the output directory.</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> <span class="comment"># The default file is: latex.</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> <span class="comment"></span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">LATEX_CMD_NAME = latex</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="comment"></span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <span class="comment"># index for LaTeX.</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="comment"># The default file is: makeindex.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment"></span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> <span class="comment">MAKEINDEX_CMD_NAME = makeindex</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> <span class="comment"></span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="comment"># If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> <span class="comment"></span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="comment">COMPACT_LATEX = NO</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> <span class="comment"></span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used by the</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="comment"># printer.</span></div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="comment"># Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x</span></div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> <span class="comment"># 14 inches) and executive (7.25 x 10.5 inches).</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="comment"># The default value is: a4.</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> <span class="comment"></span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> <span class="comment">PAPER_TYPE = a4wide</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="comment"></span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="comment"># The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names</span></div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> <span class="comment"># that should be included in the LaTeX output. The package can be specified just</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="comment"># by its name or with the correct syntax as to be used with the LaTeX</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="comment"># \usepackage command. To get the times font for instance you can specify :</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <span class="comment"># EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="comment"># To use the option intlimits with the amsmath package you can specify:</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="comment"># EXTRA_PACKAGES=[intlimits]{amsmath}</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment"># If left blank no extra packages will be included.</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment"></span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">EXTRA_PACKAGES = </span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="comment"></span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for the</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> <span class="comment"># generated LaTeX document. The header should contain everything until the first</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard header. See</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment"># section "Doxygen usage" for information on how to let doxygen write the</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment"># default header to a separate file.</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment"># Note: Only use a user-defined header if you know what you are doing! The</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="comment"># following commands have a special meaning inside the header: $title,</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment"># $datetime, $date, $doxygenversion, $projectname, $projectnumber,</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment"># $projectbrief, $projectlogo. Doxygen will replace $title with the empty</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment"># string, for the replacement values of the other commands the user is referred</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment"># to HTML_HEADER.</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment"></span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="comment">LATEX_HEADER = </span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="comment"></span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the</span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> <span class="comment"># generated LaTeX document. The footer should contain everything after the last</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard footer. See</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> <span class="comment"># LATEX_HEADER for more information on how to generate a default footer and what</span></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment"># special commands can be used inside the footer.</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> <span class="comment"># Note: Only use a user-defined footer if you know what you are doing!</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="comment"></span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="comment">LATEX_FOOTER = </span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> <span class="comment"></span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> <span class="comment"># The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="comment"># LaTeX style sheets that are included after the standard style sheets created</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> <span class="comment"># by doxygen. Using this option one can overrule certain style aspects. Doxygen</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> <span class="comment"># will copy the style sheet files to the output directory.</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="comment"># list).</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="comment"></span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="comment">LATEX_EXTRA_STYLESHEET = </span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="comment"></span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="comment"># The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> <span class="comment"># other source files which should be copied to the LATEX_OUTPUT output</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="comment"># directory. Note that the files will be copied as-is; there are no commands or</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment"># markers available.</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment"></span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="comment">LATEX_EXTRA_FILES = </span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment"></span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <span class="comment"># prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="comment"># contain links (just like the HTML output) instead of page references. This</span></div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="comment"># makes the output suitable for online browsing using a PDF viewer.</span></div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="comment"></span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="comment">PDF_HYPERLINKS = NO</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="comment"></span></div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="comment"># If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate</span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="comment"># the PDF file directly from the LaTeX files. Set this option to YES, to get a</span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="comment"># higher quality PDF documentation.</span></div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="comment"></span></div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> <span class="comment">USE_PDFLATEX = YES</span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment"></span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep running</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="comment"># if errors occur, instead of asking the user for help. This option is also used</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <span class="comment"># when generating formulas in HTML.</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="comment"></span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="comment">LATEX_BATCHMODE = NO</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> <span class="comment"></span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment"># If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment"># index chapters (such as File Index, Compound Index, etc.) in the output.</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="comment"></span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="comment">LATEX_HIDE_INDICES = NO</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="comment"></span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="comment"># If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="comment"># code with syntax highlighting in the LaTeX output.</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <span class="comment"></span></div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> <span class="comment">LATEX_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="comment"></span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="comment"># bibliography, e.g. plainnat, or ieeetr. See</span></div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> <span class="comment"># http://en.wikipedia.org/wiki/BibTeX and \cite for more info.</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="comment"># The default value is: plain.</span></div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="comment"></span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="comment">LATEX_BIB_STYLE = plain</span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="comment"></span></div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="comment"># Configuration options related to the RTF output</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment"></span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment"># If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment"># RTF output is optimized for Word 97 and may not look too pretty with other RTF</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="comment"># readers/editors.</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment"></span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment">GENERATE_RTF = NO</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="comment"></span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="comment"># The default directory is: rtf.</span></div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> <span class="comment"></span></div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="comment">RTF_OUTPUT = glm.rtf</span></div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="comment"></span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="comment"># If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF</span></div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="comment"># trees in general.</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="comment"></span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">COMPACT_RTF = NO</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="comment"></span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will</span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="comment"># contain hyperlink fields. The RTF file will contain links (just like the HTML</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment"># output) instead of page references. This makes the output suitable for online</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment"># browsing using Word or some other Word compatible readers that support those</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"># fields.</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment"># Note: WordPad (write) and others do not support links.</span></div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment"></span></div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">RTF_HYPERLINKS = YES</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="comment"></span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="comment"># Load stylesheet definitions from file. Syntax is similar to doxygen's config</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment"># file, i.e. a series of assignments. You only have to provide replacements,</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment"># missing definitions are set to their default value.</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the</span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="comment"># default style sheet that doxygen normally uses.</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> <span class="comment"></span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <span class="comment">RTF_STYLESHEET_FILE = </span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="comment"></span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="comment"># Set optional variables used in the generation of an RTF document. Syntax is</span></div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <span class="comment"># similar to doxygen's config file. A template extensions file can be generated</span></div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> <span class="comment"># using doxygen -e rtf extensionFile.</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> <span class="comment"></span></div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <span class="comment">RTF_EXTENSIONS_FILE = </span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="comment"></span></div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="comment"># If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <span class="comment"># with syntax highlighting in the RTF output.</span></div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> <span class="comment"># SOURCE_BROWSER.</span></div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> <span class="comment"></span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="comment">RTF_SOURCE_CODE = NO</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="comment"></span></div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> <span class="comment"># Configuration options related to the man page output</span></div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <span class="comment"></span></div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="comment"># If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <span class="comment"># classes and files.</span></div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment"></span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">GENERATE_MAN = NO</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment"></span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. If a</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> <span class="comment"># it. A directory man3 will be created inside the directory specified by</span></div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> <span class="comment"># MAN_OUTPUT.</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="comment"># The default directory is: man.</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="comment"></span></div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> <span class="comment">MAN_OUTPUT = man</span></div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="comment"></span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <span class="comment"># The MAN_EXTENSION tag determines the extension that is added to the generated</span></div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> <span class="comment"># man pages. In case the manual section does not start with a number, the number</span></div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="comment"># 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="comment"># optional.</span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="comment"># The default value is: .3.</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> <span class="comment"></span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">MAN_EXTENSION = .3</span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="comment"></span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="comment"># The MAN_SUBDIR tag determines the name of the directory created within</span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> <span class="comment"># MAN_OUTPUT in which the man pages are placed. If defaults to man followed by</span></div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> <span class="comment"># MAN_EXTENSION with the initial . removed.</span></div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> <span class="comment"></span></div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> <span class="comment">MAN_SUBDIR = </span></div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="comment"></span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment"># If the MAN_LINKS tag is set to YES and doxygen generates man output, then it</span></div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> <span class="comment"># will generate one additional man file for each entity documented in the real</span></div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> <span class="comment"># man page(s). These additional files only source the real man page, but without</span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <span class="comment"># them the man command would be unable to find the correct page.</span></div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="comment"></span></div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> <span class="comment">MAN_LINKS = NO</span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="comment"></span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> <span class="comment"># Configuration options related to the XML output</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="comment"></span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="comment"># If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that</span></div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> <span class="comment"># captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="comment"></span></div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> <span class="comment">GENERATE_XML = NO</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <span class="comment"></span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. If a</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <span class="comment"># it.</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> <span class="comment"># The default directory is: xml.</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="comment"></span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="comment">XML_OUTPUT = xml</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> <span class="comment"></span></div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> <span class="comment"># If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program</span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="comment"># listings (including syntax highlighting and cross-referencing information) to</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> <span class="comment"># the XML output. Note that enabling this will significantly increase the size</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="comment"># of the XML output.</span></div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="comment"></span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">XML_PROGRAMLISTING = YES</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> <span class="comment"></span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="comment"># Configuration options related to the DOCBOOK output</span></div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="comment"></span></div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="comment"># If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="comment"># that can be used to generate PDF.</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> <span class="comment"></span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="comment">GENERATE_DOCBOOK = NO</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="comment"></span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> <span class="comment"># The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.</span></div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be put in</span></div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> <span class="comment"># front of it.</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="comment"># The default directory is: docbook.</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> <span class="comment"></span></div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="comment">DOCBOOK_OUTPUT = docbook</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="comment"></span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> <span class="comment"># If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the</span></div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> <span class="comment"># program listings (including syntax highlighting and cross-referencing</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> <span class="comment"># information) to the DOCBOOK output. Note that enabling this will significantly</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="comment"># increase the size of the DOCBOOK output.</span></div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> <span class="comment"></span></div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="comment">DOCBOOK_PROGRAMLISTING = NO</span></div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="comment"></span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> <span class="comment"># Configuration options for the AutoGen Definitions output</span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="comment"></span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an</span></div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> <span class="comment"># AutoGen Definitions (see http://autogen.sf.net) file that captures the</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="comment"># structure of the code including all documentation. Note that this feature is</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="comment"># still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> <span class="comment"></span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="comment">GENERATE_AUTOGEN_DEF = NO</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="comment"></span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="comment"># Configuration options related to the Perl module output</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="comment"></span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> <span class="comment"># If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module</span></div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> <span class="comment"># file that captures the structure of the code including all documentation.</span></div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> <span class="comment">#</span></div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <span class="comment"># Note that this feature is still experimental and incomplete at the moment.</span></div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="comment"></span></div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">GENERATE_PERLMOD = NO</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="comment"></span></div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment"># If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> <span class="comment"># Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI</span></div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="comment"># output from the Perl module output.</span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="comment"></span></div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="comment">PERLMOD_LATEX = NO</span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="comment"></span></div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <span class="comment"># If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely</span></div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="comment"># formatted so it can be parsed by a human reader. This is useful if you want to</span></div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment"># understand what is going on. On the other hand, if this tag is set to NO, the</span></div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment"># size of the Perl module output will be much smaller and Perl will parse it</span></div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment"># just the same.</span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment"></span></div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="comment">PERLMOD_PRETTY = YES</span></div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="comment"></span></div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="comment"># The names of the make variables in the generated doxyrules.make file are</span></div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="comment"># prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful</span></div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <span class="comment"># so different doxyrules.make files included by the same Makefile don't</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> <span class="comment"># overwrite each other's variables.</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="comment"></span></div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">PERLMOD_MAKEVAR_PREFIX = </span></div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment"></span></div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment"># Configuration options related to the preprocessor</span></div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment"></span></div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment"># C-preprocessor directives found in the sources and include files.</span></div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment"></span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">ENABLE_PREPROCESSING = YES</span></div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="comment"></span></div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="comment"># If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment"># in the source code. If set to NO, only conditional compilation will be</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="comment"># performed. Macro expansion can be done in a controlled way by setting</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="comment"># EXPAND_ONLY_PREDEF to YES.</span></div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> <span class="comment"></span></div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="comment">MACRO_EXPANSION = NO</span></div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="comment"></span></div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> <span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then</span></div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> <span class="comment"># the macro expansion is limited to the macros specified with the PREDEFINED and</span></div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="comment"># EXPAND_AS_DEFINED tags.</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> <span class="comment"></span></div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="comment">EXPAND_ONLY_PREDEF = NO</span></div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> <span class="comment"></span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="comment"># If the SEARCH_INCLUDES tag is set to YES, the include files in the</span></div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> <span class="comment"># INCLUDE_PATH will be searched if a #include is found.</span></div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="comment"></span></div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <span class="comment">SEARCH_INCLUDES = YES</span></div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="comment"></span></div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> <span class="comment"># contain include files that are not input files but should be processed by the</span></div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment"># preprocessor.</span></div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment"># This tag requires that the tag SEARCH_INCLUDES is set to YES.</span></div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment"></span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment">INCLUDE_PATH = </span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment"></span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the</span></div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will be</span></div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="comment"># used.</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment"></span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="comment">INCLUDE_FILE_PATTERNS = </span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="comment"></span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> <span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that are</span></div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="comment"># defined before the preprocessor is started (similar to the -D option of e.g.</span></div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment"># gcc). The argument of the tag is a list of macros of the form: name or</span></div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment"># name=definition (no spaces). If the definition and the "=" are omitted, "=1"</span></div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> <span class="comment"># is assumed. To prevent a macro definition from being undefined via #undef or</span></div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="comment"># recursively expanded use the := operator instead of the = operator.</span></div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> <span class="comment"></span></div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> <span class="comment">PREDEFINED = </span></div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="comment"></span></div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this</span></div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> <span class="comment"># tag can be used to specify a list of macro names that should be expanded. The</span></div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> <span class="comment"># macro definition that is found in the sources will be used. Use the PREDEFINED</span></div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="comment"># tag if you want to use a different macro definition that overrules the</span></div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="comment"># definition found in the source code.</span></div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> <span class="comment"></span></div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="comment">EXPAND_AS_DEFINED = </span></div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> <span class="comment"></span></div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> <span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will</span></div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <span class="comment"># remove all references to function-like macros that are alone on a line, have</span></div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="comment"># an all uppercase name, and do not end with a semicolon. Such function macros</span></div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="comment"># are typically used for boiler-plate code, and will confuse the parser if not</span></div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="comment"># removed.</span></div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment"></span></div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="comment">SKIP_FUNCTION_MACROS = YES</span></div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> <span class="comment"></span></div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="comment"># Configuration options related to external references</span></div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> <span class="comment"></span></div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="comment"># The TAGFILES tag can be used to specify one or more tag files. For each tag</span></div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="comment"># file the location of the external documentation should be added. The format of</span></div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> <span class="comment"># a tag file without this location is as follows:</span></div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> <span class="comment"># TAGFILES = file1 file2 ...</span></div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="comment"># Adding location for the tag files is done as follows:</span></div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="comment"># TAGFILES = file1=loc1 "file2 = loc2" ...</span></div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <span class="comment"># where loc1 and loc2 can be relative or absolute paths or URLs. See the</span></div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> <span class="comment"># section "Linking to external documentation" for more information about the use</span></div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="comment"># of tag files.</span></div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="comment"># Note: Each tag file must have a unique name (where the name does NOT include</span></div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> <span class="comment"># the path). If a tag file is not located in the directory in which doxygen is</span></div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> <span class="comment"># run, you must also specify the path to the tagfile here.</span></div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="comment"></span></div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> <span class="comment">TAGFILES = </span></div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> <span class="comment"></span></div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> <span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create a</span></div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="comment"># tag file that is based on the input files it reads. See section "Linking to</span></div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="comment"># external documentation" for more information about the usage of tag files.</span></div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="comment"></span></div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="comment">GENERATE_TAGFILE = </span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="comment"></span></div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="comment"># If the ALLEXTERNALS tag is set to YES, all external class will be listed in</span></div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="comment"># the class index. If set to NO, only the inherited external classes will be</span></div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment"># listed.</span></div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"></span></div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment">ALLEXTERNALS = NO</span></div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> <span class="comment"></span></div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> <span class="comment"># If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed</span></div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="comment"># in the modules index. If set to NO, only the current project's groups will be</span></div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment"># listed.</span></div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="comment"></span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">EXTERNAL_GROUPS = YES</span></div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <span class="comment"></span></div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> <span class="comment"># If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in</span></div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="comment"># the related pages index. If set to NO, only the current project's pages will</span></div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="comment"># be listed.</span></div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <span class="comment"></span></div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> <span class="comment">EXTERNAL_PAGES = YES</span></div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="comment"></span></div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> <span class="comment"># The PERL_PATH should be the absolute path and name of the perl script</span></div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> <span class="comment"># interpreter (i.e. the result of 'which perl').</span></div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> <span class="comment"># The default file (with absolute path) is: /usr/bin/perl.</span></div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="comment"></span></div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> <span class="comment">PERL_PATH = /usr/bin/perl</span></div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> <span class="comment"></span></div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="comment"># Configuration options related to the dot tool</span></div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="comment"></span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <span class="comment"># If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram</span></div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="comment"># (in HTML and LaTeX) for classes with base or super classes. Setting the tag to</span></div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="comment"># NO turns the diagrams off. Note that this option also works with HAVE_DOT</span></div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> <span class="comment"># disabled, but it is recommended to install and use dot, since it yields more</span></div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> <span class="comment"># powerful graphs.</span></div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="comment"></span></div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> <span class="comment">CLASS_DIAGRAMS = YES</span></div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> <span class="comment"></span></div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <span class="comment"># You can define message sequence charts within doxygen comments using the \msc</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="comment"># command. Doxygen will then run the mscgen tool (see:</span></div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> <span class="comment"># http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the</span></div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where</span></div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the</span></div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="comment"># default search path.</span></div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> <span class="comment"></span></div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <span class="comment">MSCGEN_PATH = </span></div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="comment"></span></div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="comment"># You can include diagrams made with dia in doxygen documentation. Doxygen will</span></div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <span class="comment"># then run dia to produce the diagram and insert it in the documentation. The</span></div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> <span class="comment"># DIA_PATH tag allows you to specify the directory where the dia binary resides.</span></div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> <span class="comment"># If left empty dia is assumed to be found in the default search path.</span></div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> <span class="comment"></span></div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> <span class="comment">DIA_PATH = </span></div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> <span class="comment"></span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> <span class="comment"># If set to YES the inheritance and collaboration graphs will hide inheritance</span></div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> <span class="comment"># and usage relations if the target is undocumented or is not a class.</span></div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> <span class="comment"></span></div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> <span class="comment">HIDE_UNDOC_RELATIONS = YES</span></div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="comment"></span></div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> <span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is</span></div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> <span class="comment"># available from the path. This tool is part of Graphviz (see:</span></div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> <span class="comment"># http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent</span></div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> <span class="comment"># Bell Labs. The other options in this section have no effect if this option is</span></div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> <span class="comment"># set to NO</span></div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> <span class="comment"></span></div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="comment">HAVE_DOT = NO</span></div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> <span class="comment"></span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> <span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed</span></div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> <span class="comment"># to run in parallel. When set to 0 doxygen will base this on the number of</span></div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="comment"># processors available in the system. You can set it explicitly to a value</span></div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> <span class="comment"># larger than 0 to get control over the balance between CPU load and processing</span></div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> <span class="comment"># speed.</span></div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> <span class="comment"># Minimum value: 0, maximum value: 32, default value: 0.</span></div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> <span class="comment"></span></div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> <span class="comment">DOT_NUM_THREADS = 0</span></div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="comment"></span></div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="comment"># When you want a differently looking font in the dot files that doxygen</span></div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> <span class="comment"># generates you can specify the font name using DOT_FONTNAME. You need to make</span></div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="comment"># sure dot is able to find the font, which can be done by putting it in a</span></div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="comment"># standard location or by setting the DOTFONTPATH environment variable or by</span></div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="comment"># setting DOT_FONTPATH to the directory containing the font.</span></div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment"># The default value is: Helvetica.</span></div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="comment"></span></div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="comment">DOT_FONTNAME = Helvetica</span></div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="comment"></span></div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="comment"># The DOT_FONTSIZE tag can be used to set the size (in points) of the font of</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> <span class="comment"># dot graphs.</span></div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="comment"># Minimum value: 4, maximum value: 24, default value: 10.</span></div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> <span class="comment"></span></div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> <span class="comment">DOT_FONTSIZE = 10</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="comment"></span></div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> <span class="comment"># By default doxygen will tell dot to use the default font as specified with</span></div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> <span class="comment"># DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set</span></div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> <span class="comment"># the path where dot can find it using this tag.</span></div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="comment"></span></div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> <span class="comment">DOT_FONTPATH = </span></div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> <span class="comment"></span></div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> <span class="comment"># If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> <span class="comment"># each documented class showing the direct and indirect inheritance relations.</span></div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> <span class="comment"># Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.</span></div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="comment"></span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="comment">CLASS_GRAPH = YES</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> <span class="comment"></span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> <span class="comment"># If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a</span></div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="comment"># graph for each documented class showing the direct and indirect implementation</span></div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> <span class="comment"># dependencies (inheritance, containment, and class references variables) of the</span></div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> <span class="comment"># class with other documented classes.</span></div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> <span class="comment"></span></div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span> <span class="comment">COLLABORATION_GRAPH = YES</span></div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> <span class="comment"></span></div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> <span class="comment"># If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for</span></div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> <span class="comment"># groups, showing the direct groups dependencies.</span></div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <span class="comment"></span></div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> <span class="comment">GROUP_GRAPHS = YES</span></div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span> <span class="comment"></span></div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="comment"># If the UML_LOOK tag is set to YES, doxygen will generate inheritance and</span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment"># collaboration diagrams in a style similar to the OMG's Unified Modeling</span></div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> <span class="comment"># Language.</span></div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> <span class="comment"></span></div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> <span class="comment">UML_LOOK = NO</span></div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> <span class="comment"></span></div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <span class="comment"># If the UML_LOOK tag is enabled, the fields and methods are shown inside the</span></div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> <span class="comment"># class node. If there are many fields or methods and many nodes the graph may</span></div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> <span class="comment"># become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the</span></div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> <span class="comment"># number of items for each type to make the size more manageable. Set this to 0</span></div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span> <span class="comment"># for no limit. Note that the threshold may be exceeded by 50% before the limit</span></div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> <span class="comment"># is enforced. So when you set the threshold to 10, up to 15 fields may appear,</span></div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> <span class="comment"># but if the number exceeds 15, the total amount of fields shown is limited to</span></div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span> <span class="comment"># 10.</span></div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> <span class="comment"># Minimum value: 0, maximum value: 100, default value: 10.</span></div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="comment"></span></div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="comment">UML_LIMIT_NUM_FIELDS = 10</span></div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> <span class="comment"></span></div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> <span class="comment"># If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and</span></div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> <span class="comment"># collaboration graphs will show the relations between templates and their</span></div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> <span class="comment"># instances.</span></div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> <span class="comment"></span></div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span> <span class="comment">TEMPLATE_RELATIONS = NO</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> <span class="comment"></span></div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> <span class="comment"># If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to</span></div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> <span class="comment"># YES then doxygen will generate a graph for each documented file showing the</span></div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span> <span class="comment"># direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> <span class="comment"># files.</span></div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> <span class="comment"></span></div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> <span class="comment">INCLUDE_GRAPH = YES</span></div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> <span class="comment"></span></div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> <span class="comment"># If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are</span></div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="comment"># set to YES then doxygen will generate a graph for each documented file showing</span></div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> <span class="comment"># the direct and indirect include dependencies of the file with other documented</span></div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="comment"># files.</span></div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> <span class="comment"></span></div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> <span class="comment">INCLUDED_BY_GRAPH = YES</span></div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> <span class="comment"></span></div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="comment"># If the CALL_GRAPH tag is set to YES then doxygen will generate a call</span></div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> <span class="comment"># So in most cases it will be better to enable call graphs for selected</span></div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> <span class="comment"># functions only using the \callgraph command. Disabling a call graph can be</span></div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="comment"># accomplished by means of the command \hidecallgraph.</span></div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> <span class="comment"></span></div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <span class="comment">CALL_GRAPH = YES</span></div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> <span class="comment"></span></div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="comment"># If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller</span></div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="comment"># So in most cases it will be better to enable caller graphs for selected</span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> <span class="comment"># functions only using the \callergraph command. Disabling a caller graph can be</span></div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> <span class="comment"># accomplished by means of the command \hidecallergraph.</span></div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment"></span></div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="comment">CALLER_GRAPH = YES</span></div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="comment"></span></div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> <span class="comment"># If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical</span></div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="comment"># hierarchy of all classes instead of a textual one.</span></div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> <span class="comment"></span></div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> <span class="comment">GRAPHICAL_HIERARCHY = YES</span></div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> <span class="comment"></span></div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="comment"># If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the</span></div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="comment"># dependencies a directory has on other directories in a graphical way. The</span></div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="comment"># dependency relations are determined by the #include relations between the</span></div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> <span class="comment"># files in the directories.</span></div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="comment"></span></div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> <span class="comment">DIRECTORY_GRAPH = YES</span></div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="comment"></span></div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images</span></div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="comment"># generated by dot. For an explanation of the image formats see the section</span></div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="comment"># output formats in the documentation of the dot tool (Graphviz (see:</span></div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="comment"># http://www.graphviz.org/)).</span></div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="comment"># Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order</span></div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="comment"># to make the SVG files visible in IE 9+ (other browsers do not have this</span></div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="comment"># requirement).</span></div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="comment"># Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,</span></div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="comment"># png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and</span></div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="comment"># png:gdiplus:gdiplus.</span></div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> <span class="comment"># The default value is: png.</span></div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="comment"></span></div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="comment">DOT_IMAGE_FORMAT = png</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="comment"></span></div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="comment"># enable generation of interactive SVG images that allow zooming and panning.</span></div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="comment"># Note that this requires a modern browser other than Internet Explorer. Tested</span></div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="comment"># and working are Firefox, Chrome, Safari, and Opera.</span></div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> <span class="comment"># Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make</span></div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="comment"># the SVG files visible. Older versions of IE do not have SVG support.</span></div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="comment"></span></div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="comment">INTERACTIVE_SVG = NO</span></div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="comment"></span></div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="comment"># The DOT_PATH tag can be used to specify the path where the dot tool can be</span></div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span></div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="comment"></span></div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="comment">DOT_PATH = </span></div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="comment"></span></div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> <span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="comment"># contain dot files that are included in the documentation (see the \dotfile</span></div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="comment"></span></div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="comment">DOTFILE_DIRS = </span></div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="comment"></span></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="comment"># contain msc files that are included in the documentation (see the \mscfile</span></div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="comment"></span></div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="comment">MSCFILE_DIRS = </span></div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> <span class="comment"></span></div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="comment"># The DIAFILE_DIRS tag can be used to specify one or more directories that</span></div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="comment"># contain dia files that are included in the documentation (see the \diafile</span></div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="comment"># command).</span></div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="comment"></span></div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="comment">DIAFILE_DIRS = </span></div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="comment"></span></div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="comment"># When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the</span></div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="comment"># path where java can find the plantuml.jar file. If left blank, it is assumed</span></div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> <span class="comment"># PlantUML is not used or called during a preprocessing step. Doxygen will</span></div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> <span class="comment"># generate a warning when it encounters a \startuml command in this case and</span></div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> <span class="comment"># will not generate output for the diagram.</span></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="comment"></span></div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="comment">PLANTUML_JAR_PATH = </span></div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="comment"></span></div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="comment"># When using plantuml, the specified paths are searched for files specified by</span></div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> <span class="comment"># the !include statement in a plantuml block.</span></div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> <span class="comment"></span></div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> <span class="comment">PLANTUML_INCLUDE_PATH = </span></div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="comment"></span></div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes</span></div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="comment"># that will be shown in the graph. If the number of nodes in a graph becomes</span></div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <span class="comment"># larger than this value, doxygen will truncate the graph, which is visualized</span></div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span> <span class="comment"># by representing a node as a red box. Note that doxygen if the number of direct</span></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span> <span class="comment"># children of the root node in a graph is already larger than</span></div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that</span></div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="comment"># the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span></div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="comment"># Minimum value: 0, maximum value: 10000, default value: 50.</span></div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span> <span class="comment"></span></div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> <span class="comment">DOT_GRAPH_MAX_NODES = 50</span></div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> <span class="comment"></span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span> <span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs</span></div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span> <span class="comment"># generated by dot. A depth value of 3 means that only nodes reachable from the</span></div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> <span class="comment"># root by following a path via at most 3 edges will be shown. Nodes that lay</span></div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="comment"># further from the root node will be omitted. Note that setting this option to 1</span></div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="comment"># or 2 may greatly reduce the computation time needed for large code bases. Also</span></div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> <span class="comment"># note that the size of a graph can be further restricted by</span></div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> <span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span></div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <span class="comment"># Minimum value: 0, maximum value: 1000, default value: 0.</span></div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> <span class="comment"></span></div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> <span class="comment">MAX_DOT_GRAPH_DEPTH = 1000</span></div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> <span class="comment"></span></div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span> <span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent</span></div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span> <span class="comment"># background. This is disabled by default, because dot on Windows does not seem</span></div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> <span class="comment"># to support this out of the box.</span></div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> <span class="comment">#</span></div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span> <span class="comment"># Warning: Depending on the platform used, enabling this option may lead to</span></div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> <span class="comment"># badly anti-aliased labels on the edges of a graph (i.e. they become hard to</span></div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> <span class="comment"># read).</span></div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span> <span class="comment"></span></div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> <span class="comment">DOT_TRANSPARENT = NO</span></div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> <span class="comment"></span></div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span> <span class="comment"># Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output</span></div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span> <span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This</span></div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> <span class="comment"># makes dot run faster, but since only newer versions of dot (>1.8.10) support</span></div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> <span class="comment"># this, this feature is disabled by default.</span></div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span> <span class="comment"># The default value is: NO.</span></div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> <span class="comment"></span></div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span> <span class="comment">DOT_MULTI_TARGETS = NO</span></div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> <span class="comment"></span></div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span> <span class="comment"># If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page</span></div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> <span class="comment"># explaining the meaning of the various boxes and arrows in the dot generated</span></div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span> <span class="comment"># graphs.</span></div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> <span class="comment"></span></div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span> <span class="comment">GENERATE_LEGEND = YES</span></div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span> <span class="comment"></span></div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> <span class="comment"># If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot</span></div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span> <span class="comment"># files that are used to generate the various graphs.</span></div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> <span class="comment"># The default value is: YES.</span></div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> <span class="comment"></span></div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span> <span class="comment">DOT_CLEANUP = YES</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00051.html b/doc/api/a00051.html
index 3752de6..5dc17c1 100644
--- a/doc/api/a00051.html
+++ b/doc/api/a00051.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_integer.hpp File Reference</title>
+<title>0.9.8: mat2x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,26 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_integer.hpp File Reference</div> </div>
+<div class="title">mat2x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00051_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-11 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00051_source.html">intrinsic_integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00051_source.html">mat2x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00051_source.html b/doc/api/a00051_source.html
index 5d74cd6..8147043 100644
--- a/doc/api/a00051_source.html
+++ b/doc/api/a00051_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_integer.hpp Source File</title>
+<title>0.9.8: mat2x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,37 +41,42 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_integer.hpp</div> </div>
+<div class="title">mat2x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00051.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00040.html">glm/glm.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> __m128i _mm_bit_interleave_si128(__m128i x);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "intrinsic_integer.inl"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00040_html"><div class="ttname"><a href="a00040.html">glm.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00115.html">detail/type_mat2x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00046">type_mat.hpp:46</a></div></div>
+<div class="ttc" id="a00115_html"><div class="ttname"><a href="a00115.html">type_mat2x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00039">type_mat.hpp:39</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00158.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00074">type_mat.hpp:74</a></div></div>
+<div class="ttc" id="a00158_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00067">type_mat.hpp:67</a></div></div>
+<div class="ttc" id="a00158_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00060">type_mat.hpp:60</a></div></div>
+<div class="ttc" id="a00158_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00053">type_mat.hpp:53</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00089_source.html b/doc/api/a00052.html
similarity index 78%
copy from doc/api/a00089_source.html
copy to doc/api/a00052.html
index 36f060b..b2bd9f5 100644
--- a/doc/api/a00089_source.html
+++ b/doc/api/a00052.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: pages.doxy Source File</title>
+<title>0.9.8: mat2x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,16 +41,21 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pages.doxy</div> </div>
+<div class="title">mat2x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-</div><!-- fragment --></div><!-- contents -->
+
+<p><a href="a00052_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00052_source.html">mat2x3.hpp</a>.</p>
+</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">
diff --git a/doc/api/a00052_source.html b/doc/api/a00052_source.html
index ff72ca2..bfc7dcd 100644
--- a/doc/api/a00052_source.html
+++ b/doc/api/a00052_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_matrix.hpp Source File</title>
+<title>0.9.8: mat2x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,57 +41,34 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_matrix.hpp</div> </div>
+<div class="title">mat2x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
+<a href="a00052.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00116.html">detail/type_mat2x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat2x3<float, lowp> <a class="code" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat2x3<float, mediump> <a class="code" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00050.html">intrinsic_geometric.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">void</span> sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> __m128 sse_mul_ps(__m128 m[4], __m128 v);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> __m128 sse_mul_ps(__m128 v, __m128 m[4]);</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keywordtype">void</span> sse_mul_ps(__m128 <span class="keyword">const</span> in1[4], __m128 <span class="keyword">const</span> in2[4], __m128 out[4]);</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> sse_transpose_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">void</span> sse_inverse_ps(__m128 <span class="keyword">const</span> in[4], __m128 out[4]);</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">void</span> sse_rotate_ps(__m128 <span class="keyword">const</span> in[4], <span class="keywordtype">float</span> Angle, <span class="keywordtype">float</span> <span class="keyword">const</span> v[3], __m128 out[4]);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> __m128 sse_det_ps(__m128 <span class="keyword">const</span> m[4]);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> __m128 sse_slow_det_ps(__m128 <span class="keyword">const</span> m[4]);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "intrinsic_matrix.inl"</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00050_html"><div class="ttname"><a href="a00050.html">intrinsic_geometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, lowp > lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00086">type_mat.hpp:86</a></div></div>
+<div class="ttc" id="a00158_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3< float, mediump > mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00093">type_mat.hpp:93</a></div></div>
+<div class="ttc" id="a00116_html"><div class="ttname"><a href="a00116.html">type_mat2x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, highp > highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00100">type_mat.hpp:100</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00053.html b/doc/api/a00053.html
index 53427b8..53bcc06 100644
--- a/doc/api/a00053.html
+++ b/doc/api/a00053.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_trigonometric.hpp File Reference</title>
+<title>0.9.8: mat2x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,26 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_trigonometric.hpp File Reference</div> </div>
+<div class="title">mat2x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00053_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00053_source.html">intrinsic_trigonometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00053_source.html">mat2x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00053_source.html b/doc/api/a00053_source.html
index 0e2a1dd..8eef9f5 100644
--- a/doc/api/a00053_source.html
+++ b/doc/api/a00053_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_trigonometric.hpp Source File</title>
+<title>0.9.8: mat2x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,35 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_trigonometric.hpp</div> </div>
+<div class="title">mat2x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00053.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00117.html">detail/type_mat2x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat2x4<float, lowp> <a class="code" href="a00158.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat2x4<float, mediump> <a class="code" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "intrinsic_trigonometric.inl"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00158.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, lowp > lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00112">type_mat.hpp:112</a></div></div>
+<div class="ttc" id="a00117_html"><div class="ttname"><a href="a00117.html">type_mat2x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, highp > highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00126">type_mat.hpp:126</a></div></div>
+<div class="ttc" id="a00158_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4< float, mediump > mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00119">type_mat.hpp:119</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00054.html b/doc/api/a00054.html
index df68a3e..0777a27 100644
--- a/doc/api/a00054.html
+++ b/doc/api/a00054.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_vector_relational.hpp File Reference</title>
+<title>0.9.8: mat3x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,26 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_vector_relational.hpp File Reference</div> </div>
+<div class="title">mat3x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00054_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-09 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00054_source.html">intrinsic_vector_relational.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00054_source.html">mat3x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00054_source.html b/doc/api/a00054_source.html
index 1b9dce7..e56e553 100644
--- a/doc/api/a00054_source.html
+++ b/doc/api/a00054_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: intrinsic_vector_relational.hpp Source File</title>
+<title>0.9.8: mat3x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,35 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">intrinsic_vector_relational.hpp</div> </div>
+<div class="title">mat3x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00054.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00118.html">detail/type_mat3x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat3x2<float, lowp> <a class="code" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat3x2<float, mediump> <a class="code" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if(!(GLM_ARCH & GLM_ARCH_SSE2))</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># error "SSE2 instructions not supported or enabled"</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "intrinsic_vector_relational.inl"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace</span></div>
+<div class="ttc" id="a00118_html"><div class="ttname"><a href="a00118.html">type_mat3x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2< float, mediump > mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00145">type_mat.hpp:145</a></div></div>
+<div class="ttc" id="a00158_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, highp > highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00152">type_mat.hpp:152</a></div></div>
+<div class="ttc" id="a00158_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, lowp > lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00138">type_mat.hpp:138</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00055.html b/doc/api/a00055.html
index 7598e51..8df165f 100644
--- a/doc/api/a00055.html
+++ b/doc/api/a00055.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: io.hpp File Reference</title>
+<title>0.9.8: mat3x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,30 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">io.hpp File Reference</div> </div>
+<div class="title">mat3x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00055_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00205.html">GLM_GTX_io</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-11-22 / 2014-11-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Jan P Springer (<a href="#" onclick="location.href='mai'+'lto:'+'reg'+'ni'+'rps'+'j@'+'gma'+'il'+'.co'+'m'; return false;">regni<span style="display: none;">.nosp at m.</span>rpsj<span style="display: none;">.nosp at m.</span>@gmai<span style="display: none;">.nosp at m.</span>l.co<span style="display: none;">.nosp at m.</span>m</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00055_source.html">io.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00055_source.html">mat3x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00055_source.html b/doc/api/a00055_source.html
index 43cb20a..ef15c8b 100644
--- a/doc/api/a00055_source.html
+++ b/doc/api/a00055_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: io.hpp Source File</title>
+<title>0.9.8: mat3x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,199 +41,42 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">io.hpp</div> </div>
+<div class="title">mat3x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00055.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(glm_ext))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_io extension included")</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <iosfwd></span> <span class="comment">// std::basic_ostream<> (fwd)</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <locale></span> <span class="comment">// std::locale, std::locale::facet, std::locale::id</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <utility></span> <span class="comment">// std::pair<></span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">namespace </span>io</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">enum</span> order_type { column_major, row_major};</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">class </span>format_punct : <span class="keyword">public</span> std::locale::facet</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> CTy char_type;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">static</span> std::locale::id id;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">bool</span> formatted;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">unsigned</span> precision;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">unsigned</span> width;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> char_type separator;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> char_type delim_left;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> char_type delim_right;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> char_type space;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> char_type newline;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> order_type order;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">explicit</span> format_punct(<span class="keywordtype">size_t</span> a = 0);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">explicit</span> format_punct(format_punct <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">class </span>basic_state_saver {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">explicit</span> basic_state_saver(std::basic_ios<CTy,CTr>&);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> ~basic_state_saver();</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> typedef ::std::basic_ios<CTy,CTr> state_type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> state_type::char_type char_type;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> typedef ::std::ios_base::fmtflags flags_type;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> typedef ::std::streamsize streamsize_type;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> typedef ::std::locale <span class="keyword">const</span> locale_type;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> state_type& state_;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> flags_type flags_;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> streamsize_type precision_;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> streamsize_type width_;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> char_type fill_;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> locale_type locale_;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> basic_state_saver& operator=(basic_state_saver <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> };</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> basic_state_saver<char> state_saver;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">typedef</span> basic_state_saver<wchar_t> wstate_saver;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr = std::<span class="keywordtype">char</span>_traits<CTy> ></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">class </span>basic_format_saver</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">explicit</span> basic_format_saver(std::basic_ios<CTy,CTr>&);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> ~basic_format_saver();</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> basic_state_saver<CTy> <span class="keyword">const</span> bss_;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> basic_format_saver& operator=(basic_format_saver <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> };</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">typedef</span> basic_format_saver<char> format_saver;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">typedef</span> basic_format_saver<wchar_t> wformat_saver;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">struct </span>precision</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> {</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keywordtype">unsigned</span> value;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">explicit</span> precision(<span class="keywordtype">unsigned</span>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> };</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">struct </span>width</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">unsigned</span> value;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">explicit</span> width(<span class="keywordtype">unsigned</span>);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> };</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">struct </span>delimeter</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> CTy value[3];</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">explicit</span> delimeter(CTy <span class="comment">/* left */</span>, CTy <span class="comment">/* right */</span>, CTy <span class="comment">/* separator */</span> = <span class="charliteral">','</span>);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">struct </span>order</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> order_type value;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">explicit</span> order(order_type);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// functions, inlined (inline)</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> FTy <span class="keyword">const</span>& get_facet(std::basic_ios<CTy,CTr>&);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> FTy, <span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }<span class="comment">//namespace io</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec1<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> <span class="keyword">const</span>&);</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> std::basic_ostream<CTy,CTr> &,</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> std::pair<tmat4x4<T,P> <span class="keyword">const</span>,</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> tmat4x4<T,P> <span class="keyword">const</span>> <span class="keyword">const</span> &);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">template</span> <<span class="keyword">typename</span> CTy, <span class="keyword">typename</span> CTr, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> std::basic_ostream<CTy,CTr> &,</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> std::pair<tmat4x4<T,P>,</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> tmat4x4<T,P> > <span class="keyword">const</span> &);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor">#include "io.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00119.html">detail/type_mat3x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00158.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00185">type_mat.hpp:185</a></div></div>
+<div class="ttc" id="a00158_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00178">type_mat.hpp:178</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00171">type_mat.hpp:171</a></div></div>
+<div class="ttc" id="a00158_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00199">type_mat.hpp:199</a></div></div>
+<div class="ttc" id="a00158_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00192">type_mat.hpp:192</a></div></div>
+<div class="ttc" id="a00158_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00164">type_mat.hpp:164</a></div></div>
+<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_mat3x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00056.html b/doc/api/a00056.html
index e53bdf5..f3b8cd1 100644
--- a/doc/api/a00056.html
+++ b/doc/api/a00056.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: log_base.hpp File Reference</title>
+<title>0.9.8: mat3x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,40 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">log_base.hpp File Reference</div> </div>
+<div class="title">mat3x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00056_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a> (genType x, genType base)</td></tr>
-<tr class="separator:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType< T, P > const &x, vecType< T, P > const &base)</td></tr>
-<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00206.html">GLM_GTX_log_base</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-24 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00056_source.html">log_base.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00056_source.html">mat3x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00056_source.html b/doc/api/a00056_source.html
index e40f9cd..468f247 100644
--- a/doc/api/a00056_source.html
+++ b/doc/api/a00056_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: log_base.hpp Source File</title>
+<title>0.9.8: mat3x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,43 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">log_base.hpp</div> </div>
+<div class="title">mat3x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00056.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_log_base extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> genType x,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> genType base);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> vecType<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> vecType<T, P> <span class="keyword">const</span> & base);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "log_base.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00206_html_ga1842004a127a9f3573764362ff639191"><div class="ttname"><a href="a00206.html#ga1842004a127a9f3573764362ff639191">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x, vecType< T, P > const &base)</div><div class="ttdoc">Logarithm for any base. </div></div>
-<div class="ttc" id="a00206_html_ga3e5bcabee78a977e3d7d1bf352b9ea9f"><div class="ttname"><a href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL genType log(genType x, genType base)</div><div class="ttdoc">Logarithm for any base. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">detail/type_mat3x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat3x4<float, lowp> <a class="code" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat3x4<float, mediump> <a class="code" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00158.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00158.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, highp > highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00225">type_mat.hpp:225</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, lowp > lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00211">type_mat.hpp:211</a></div></div>
+<div class="ttc" id="a00158_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4< float, mediump > mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00218">type_mat.hpp:218</a></div></div>
+<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat3x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00089_source.html b/doc/api/a00057.html
similarity index 78%
copy from doc/api/a00089_source.html
copy to doc/api/a00057.html
index 36f060b..dd2a847 100644
--- a/doc/api/a00089_source.html
+++ b/doc/api/a00057.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: pages.doxy Source File</title>
+<title>0.9.8: mat4x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,16 +41,21 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pages.doxy</div> </div>
+<div class="title">mat4x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-</div><!-- fragment --></div><!-- contents -->
+
+<p><a href="a00057_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
+
+<p>Definition in file <a class="el" href="a00057_source.html">mat4x2.hpp</a>.</p>
+</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html">
diff --git a/doc/api/a00057_source.html b/doc/api/a00057_source.html
index 6785d38..937bd88 100644
--- a/doc/api/a00057_source.html
+++ b/doc/api/a00057_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: man.doxy Source File</title>
+<title>0.9.8: mat4x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,2411 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">man.doxy</div> </div>
+<div class="title">mat4x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor"># Doxyfile 1.8.10</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"># This file describes the settings to be used by the documentation system</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor"># doxygen (www.doxygen.org) for a project.</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor"># All text after a double hash (##) is considered a comment and is placed in</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"># front of the TAG it is preceding.</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># All text after a single hash (#) is considered a comment and will be ignored.</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># The format is:</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># TAG = value [value, ...]</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># For lists, items can also be appended using:</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"># TAG += value [value, ...]</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"># Values that contain spaces should be placed between quotes (\" \").</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"># Project related configuration options</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># This tag specifies the encoding used for all characters in the config file</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># that follow. The default is UTF-8 which is also the encoding used for all text</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># before the first occurrence of this tag. Doxygen uses libiconv (or the iconv</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># built into libc) for the transcoding. See http://www.gnu.org/software/libiconv</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># for the list of possible encodings.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> DOXYFILE_ENCODING = UTF-8</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># The PROJECT_NAME tag is a single word (or a sequence of words surrounded by</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># double-quotes, unless you are using Doxywizard) that should identify the</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># project for which the documentation is generated. This name is used in the</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># title of most generated pages and in a few other places.</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># The default value is: My Project.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> PROJECT_NAME = 0.9.7</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># The PROJECT_NUMBER tag can be used to enter a project or revision number. This</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># could be handy for archiving the generated documentation or if some version</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># control system is used.</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> PROJECT_NUMBER = </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># Using the PROJECT_BRIEF tag one can provide an optional one line description</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"># for a project that appears at the top of each page and should give viewer a</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># quick idea about the purpose of the project. Keep the description short.</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> PROJECT_BRIEF = </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># With the PROJECT_LOGO tag one can specify a logo or an icon that is included</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># in the documentation. The maximum height of the logo should not exceed 55</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pixels and the maximum width should not exceed 200 pixels. Doxygen will copy</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># the logo to the output directory.</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> PROJECT_LOGO = E:/Source/G-Truc/<a class="code" href="a00146.html">glm</a>/doc/logo.png</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># into which the generated documentation will be written. If a relative path is</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># entered, it will be relative to the location where doxygen was started. If</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># left blank the current directory will be used.</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> OUTPUT_DIRECTORY = .</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># directories (in 2 levels) under the output directory of each output format and</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># will distribute the generated files over these directories. Enabling this</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># option can be useful when feeding doxygen a huge amount of source files, where</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># putting all generated files in the same directory would otherwise causes</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># performance problems for the file system.</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> CREATE_SUBDIRS = NO</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"># characters to appear in the names of generated files. If set to NO, non-ASCII</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># characters will be escaped, for example _xE3_x81_x84 will be used for Unicode</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># U+3044.</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> ALLOW_UNICODE_NAMES = NO</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># The OUTPUT_LANGUAGE tag is used to specify the language in which all</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># documentation generated by doxygen is written. Doxygen will use this</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># information to generate all constant output in the proper language.</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># Ukrainian and Vietnamese.</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># The default value is: English.</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> OUTPUT_LANGUAGE = English</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># descriptions after the members that are listed in the file and class</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># documentation (similar to Javadoc). Set to NO to disable this.</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> BRIEF_MEMBER_DESC = NO</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># description of a member or function before the detailed description</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"># Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># brief descriptions will be completely suppressed.</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> REPEAT_BRIEF = YES</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># This tag implements a quasi-intelligent brief description abbreviator that is</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># used to form the text in various listings. Each string in this list, if found</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"># as the leading text of the brief description, will be stripped from the text</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># and the result, after processing the whole list, is used as the annotated</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># text. Otherwise, the brief description is used as-is. If left blank, the</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"># following values are used ($name is automatically replaced with the name of</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"># the entity):The $name class, The $name widget, The $name file, is, provides,</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># specifies, contains, represents, a, an and the.</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> ABBREVIATE_BRIEF = <span class="stringliteral">"The $name class "</span> \</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="stringliteral">"The $name widget "</span> \</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="stringliteral">"The $name file "</span> \</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> is \</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> provides \</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> specifies \</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> contains \</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> represents \</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> a \</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> an \</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> the</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"># If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"># doxygen will generate a detailed section even if there is only a brief</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"># description.</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> ALWAYS_DETAILED_SEC = NO</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"># If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor"># inherited members of a class in the documentation of that class as if those</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor"># members were ordinary class members. Constructors, destructors and assignment</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor"># operators of the base classes will not be shown.</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> INLINE_INHERITED_MEMB = NO</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"># If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"># before files name in the file list and in the header files. If set to NO the</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"># shortest path that makes the file name unique will be used</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> FULL_PATH_NAMES = NO</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"># Stripping is only done if one of the specified strings matches the left-hand</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"># part of the path. The tag can be used to show relative paths in the file list.</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"># If left blank the directory from which doxygen is run is used as the path to</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"># strip.</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"># Note that you can specify absolute paths here, but also relative paths, which</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"># will be relative from the directory where doxygen is started.</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"># This tag requires that the tag FULL_PATH_NAMES is set to YES.</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> STRIP_FROM_PATH = <span class="stringliteral">"C:/Documents and Settings/Groove/ "</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"># The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"># path mentioned in the documentation of a class, which tells the reader which</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"># header file to include in order to use a class. If left blank only the name of</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"># the header file containing the class definition is used. Otherwise one should</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"># specify the list of include paths that are normally passed to the compiler</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"># using the -I flag.</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> STRIP_FROM_INC_PATH = </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"># If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"># less readable) file names. This can be useful is your file systems doesn't</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"># support long names like on DOS, Mac, or CD-ROM.</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> SHORT_NAMES = YES</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"># If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"># first line (until the first dot) of a Javadoc-style comment as the brief</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"># description. If set to NO, the Javadoc-style will behave just like regular Qt-</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"># style comments (thus requiring an explicit @brief command for a brief</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor"># description.)</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> JAVADOC_AUTOBRIEF = YES</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"># If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"># line (until the first dot) of a Qt-style comment as the brief description. If</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"># set to NO, the Qt-style will behave just like regular Qt-style comments (thus</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"># requiring an explicit \brief command for a brief description.)</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> QT_AUTOBRIEF = NO</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"># multi-line C++ special comment block (i.e. a block of </span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"># a brief description. This used to be the default behavior. The new default is</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># to treat a multi-line C++ comment block as a detailed description. Set this</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"># tag to YES if you prefer the old behavior instead.</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"># Note that setting this tag to YES also means that rational rose comments are</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"># not recognized any more.</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> MULTILINE_CPP_IS_BRIEF = NO</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"># If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"># documentation from any documented member that it re-implements.</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> INHERIT_DOCS = YES</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"># If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"># page for each member. If set to NO, the documentation of a member will be part</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"># of the file/class/namespace that contains it.</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> SEPARATE_MEMBER_PAGES = NO</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"># The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"># uses this value to replace tabs by spaces in code fragments.</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"># Minimum value: 1, maximum value: 16, default value: 4.</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> TAB_SIZE = 8</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"># This tag can be used to specify a number of aliases that act as commands in</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"># the documentation. An alias has the form:</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"># name=value</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"># For example adding</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"># "sideeffect=@par Side Effects:\n"</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"># will allow you to put the command \sideeffect (or @sideeffect) in the</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"># documentation, which will result in a user-defined paragraph with heading</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"># "Side Effects:". You can put \n's in the value part of an alias to insert</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"># newlines.</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> ALIASES = </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"># This tag can be used to specify a number of word-keyword mappings (TCL only).</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># A mapping has the form "name=value". For example adding "class=itcl::class"</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"># will allow you to use the command class in the itcl::class meaning.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> TCL_SUBST = </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"># only. Doxygen will then generate output that is more tailored for C. For</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"># instance, some of the names that are used will be different. The list of all</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"># members will be omitted, etc.</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> OPTIMIZE_OUTPUT_FOR_C = NO</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"># Python sources only. Doxygen will then generate output that is more tailored</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># for that language. For instance, namespaces will be presented as packages,</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># qualified scopes will look different, etc.</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> OPTIMIZE_OUTPUT_JAVA = NO</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for Fortran.</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> OPTIMIZE_FOR_FORTRAN = NO</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># sources. Doxygen will then generate output that is tailored for VHDL.</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> OPTIMIZE_OUTPUT_VHDL = NO</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># Doxygen selects the parser to use depending on the extension of the files it</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"># parses. With this tag you can assign which parser to use for a given</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># extension. Doxygen has a built-in mapping, but you can override or extend it</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># using this tag. The format is ext=language, where ext is a file extension, and</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># language is one of the parsers supported by doxygen: IDL, Java, Javascript,</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"># C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># Fortran. In the later case the parser tries to guess whether the code is fixed</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># or free formatted code, this is the default for Fortran type files), VHDL. For</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"># instance to make doxygen treat .inc files as Fortran files (default is PHP),</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor"># and .f files as C (default is Fortran), use: inc=Fortran f=C.</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># Note: For files without extension you can use no_extension as a placeholder.</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># Note that for custom extensions you also need to set FILE_PATTERNS otherwise</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># the files are not read by doxygen.</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> EXTENSION_MAPPING = </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># according to the Markdown format, which allows for more readable</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"># documentation. See http://daringfireball.net/projects/markdown/ for details.</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># The output of markdown processing is further processed by doxygen, so you can</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># case of backward compatibilities issues.</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> MARKDOWN_SUPPORT = YES</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"># When enabled doxygen tries to link words that correspond to documented</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># classes, or namespaces to their corresponding documentation. Such a link can</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># be prevented in individual cases by putting a % sign in front of the word or</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># globally by setting AUTOLINK_SUPPORT to NO.</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> AUTOLINK_SUPPORT = YES</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"># If you use STL classes (i.e. std::string, std::vector, etc.) but do not want</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># to include (a tag file for) the STL sources as input, then you should set this</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"># tag to YES in order to let doxygen match functions declarations and</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># definitions whose arguments contain STL classes (e.g. func(std::string);</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"># versus func(std::string) {}). This also make the inheritance and collaboration</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"># diagrams that involve STL classes more complete and accurate.</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> BUILTIN_STL_SUPPORT = NO</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor"># If you use Microsoft's C++/CLI language, you should set this option to YES to</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor"># enable parsing support.</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> CPP_CLI_SUPPORT = NO</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># Set the SIP_SUPPORT tag to YES if your project consists of sip (see:</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># will parse them like normal C++ but will assume all classes use public instead</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># of private inheritance when no explicit protection keyword is present.</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> SIP_SUPPORT = NO</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"># For Microsoft's IDL there are propget and propput attributes to indicate</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># getter and setter methods for a property. Setting this option to YES will make</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># doxygen to replace the get and set methods by a property in the documentation.</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># This will only work if the methods are indeed getting or setting a simple</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"># type. If this is not the case, or you want to show the methods anyway, you</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># should set this option to NO.</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> IDL_PROPERTY_SUPPORT = YES</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"># If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># tag is set to YES then doxygen will reuse the documentation of the first</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"># member in the group (if any) for the other members of the group. By default</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># all members of a group must be documented explicitly.</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> DISTRIBUTE_GROUP_DOC = NO</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"># If one adds a struct or class to a group and this option is enabled, then also</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># any nested class or struct is added to the same group. By default this option</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"># is disabled and one has to add nested compounds explicitly via \ingroup.</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> GROUP_NESTED_COMPOUNDS = NO</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># Set the SUBGROUPING tag to YES to allow class member groups of the same type</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># (for instance a group of public functions) to be put as a subgroup of that</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># type (e.g. under the Public Functions section). Set it to NO to prevent</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"># subgrouping. Alternatively, this can be done per class using the</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># \nosubgrouping command.</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> SUBGROUPING = NO</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"># When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"># are shown inside the group in which they are included (e.g. using \ingroup)</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor"># instead of on a separate page (for HTML and Man pages) or section (for LaTeX</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor"># and RTF).</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor"># Note that this feature does not work in combination with</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"># SEPARATE_MEMBER_PAGES.</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> INLINE_GROUPED_CLASSES = NO</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"># When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"># with only public data fields or simple typedef fields will be shown inline in</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"># the documentation of the scope in which they are defined (i.e. file,</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"># namespace, or group documentation), provided this scope is documented. If set</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor"># to NO, structs, classes, and unions are shown on a separate page (for HTML and</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor"># Man pages) or section (for LaTeX and RTF).</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> INLINE_SIMPLE_STRUCTS = NO</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor"># When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"># enum is documented as struct, union, or enum with the name of the typedef. So</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># typedef struct TypeS {} TypeT, will appear in the documentation as a struct</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># with name TypeT. When disabled the typedef will appear as a member of a file,</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># namespace, or class. And the struct will be named TypeS. This can typically be</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"># useful for C code in case the coding convention dictates that all compound</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"># types are typedef'ed and only the typedef is referenced, never the tag name.</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> TYPEDEF_HIDES_STRUCT = NO</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"># The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># cache is used to resolve symbols given their name and scope. Since this can be</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"># an expensive process and often the same symbol appears multiple times in the</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"># code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"># doxygen will become slower. If the cache is too large, memory is wasted. The</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"># cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"># is 0..9, the default is 0, corresponding to a cache size of 2^16=65536</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"># symbols. At the end of a run doxygen will report the cache usage and suggest</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"># the optimal cache size from a speed point of view.</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"># Minimum value: 0, maximum value: 9, default value: 0.</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> LOOKUP_CACHE_SIZE = 0</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># Build related configuration options</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"># If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"># documentation are documented, even if no documentation was available. Private</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"># class members and static file members will be hidden unless the</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"># EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"># Note: This will also disable the warnings about undocumented members that are</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"># normally produced when WARNINGS is set to YES.</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> EXTRACT_ALL = NO</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"># If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"># be included in the documentation.</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> EXTRACT_PRIVATE = NO</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"># If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"># scope will be included in the documentation.</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> EXTRACT_PACKAGE = NO</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"># If the EXTRACT_STATIC tag is set to YES, all static members of a file will be</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"># included in the documentation.</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> EXTRACT_STATIC = YES</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"># If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"># locally in source files will be included in the documentation. If set to NO,</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"># only classes defined in header files are included. Does not have any effect</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor"># for Java sources.</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> EXTRACT_LOCAL_CLASSES = NO</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"># This flag is only useful for Objective-C code. If set to YES, local methods,</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"># which are defined in the implementation section but not in the interface are</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"># included in the documentation. If set to NO, only methods in the interface are</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"># included.</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> EXTRACT_LOCAL_METHODS = NO</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"># If this flag is set to YES, the members of anonymous namespaces will be</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"># extracted and appear in the documentation as a namespace called</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"># 'anonymous_namespace{file}', where file will be replaced with the base name of</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"># the file that contains the anonymous namespace. By default anonymous namespace</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"># are hidden.</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> EXTRACT_ANON_NSPACES = NO</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"># If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"># undocumented members inside documented classes or files. If set to NO these</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"># members will be included in the various overviews, but no documentation</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"># section is generated. This option has no effect if EXTRACT_ALL is enabled.</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> HIDE_UNDOC_MEMBERS = YES</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"># If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"># undocumented classes that are normally visible in the class hierarchy. If set</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"># to NO, these classes will be included in the various overviews. This option</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"># has no effect if EXTRACT_ALL is enabled.</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> HIDE_UNDOC_CLASSES = YES</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"># If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"># (class|struct|union) declarations. If set to NO, these declarations will be</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"># included in the documentation.</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> HIDE_FRIEND_COMPOUNDS = YES</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"># If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"># documentation blocks found inside the body of a function. If set to NO, these</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># blocks will be appended to the function's detailed documentation block.</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> HIDE_IN_BODY_DOCS = YES</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor"># The INTERNAL_DOCS tag determines if documentation that is typed after a</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"># \internal command is included. If the tag is set to NO then the documentation</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"># will be excluded. Set it to YES to include the internal documentation.</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> INTERNAL_DOCS = NO</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"># If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"># names in lower-case letters. If set to YES, upper-case letters are also</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># allowed. This is useful if you have classes or files whose names only differ</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># in case and if your file system supports case sensitive file names. Windows</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"># and Mac users are advised to set this option to NO.</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"># The default value is: system dependent.</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> CASE_SENSE_NAMES = YES</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"># If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"># their full class and namespace scopes in the documentation. If set to YES, the</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"># scope will be hidden.</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> HIDE_SCOPE_NAMES = YES</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"># If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"># append additional text to a page's title, such as Class Reference. If set to</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"># YES the compound reference will be hidden.</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> HIDE_COMPOUND_REFERENCE= NO</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"># If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"># the files that are included by a file in the documentation of that file.</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> SHOW_INCLUDE_FILES = NO</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor"># If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"># grouped member an include statement to the documentation, telling the reader</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"># which file to include in order to use the member.</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> SHOW_GROUPED_MEMB_INC = NO</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"># If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"># files with double quotes in the documentation rather than with sharp brackets.</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> FORCE_LOCAL_INCLUDES = NO</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"># If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"># documentation for inline members.</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> INLINE_INFO = NO</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor"># If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"># (detailed) documentation of file and class members alphabetically by member</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order.</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> SORT_MEMBER_DOCS = YES</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"># If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor"># descriptions of file, namespace and class members alphabetically by member</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor"># name. If set to NO, the members will appear in declaration order. Note that</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"># this will also influence the order of the classes in the class list.</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> SORT_BRIEF_DOCS = YES</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"># If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"># (brief and detailed) documentation of class members so that constructors and</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"># destructors are listed first. If set to NO the constructors will appear in the</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"># respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor"># Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor"># member documentation.</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="preprocessor"># Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor"># detailed member documentation.</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> SORT_MEMBERS_CTORS_1ST = NO</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"># If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor"># of group names into alphabetical order. If set to NO the group names will</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"># appear in their defined order.</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> SORT_GROUP_NAMES = NO</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"># If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor"># fully-qualified names, including namespaces. If set to NO, the class list will</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"># be sorted only by class name, not including the namespace part.</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor"># Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"># Note: This option applies only to the class list, not to the alphabetical</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor"># list.</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> SORT_BY_SCOPE_NAME = YES</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor"># If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"># type resolution of all parameters of a function it will reject a match between</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor"># the prototype and the implementation of a member function even if there is</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"># only one candidate or it is obvious which candidate to choose by doing a</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"># simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"># accept a match between prototype and implementation in such cases.</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> STRICT_PROTO_MATCHING = NO</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="preprocessor"># The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo</span></div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="preprocessor"># list. This list is created by putting \todo commands in the documentation.</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> GENERATE_TODOLIST = YES</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"># The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"># list. This list is created by putting \test commands in the documentation.</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> GENERATE_TESTLIST = YES</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor"># The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"># list. This list is created by putting \bug commands in the documentation.</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> GENERATE_BUGLIST = YES</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor"># The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"># the deprecated list. This list is created by putting \deprecated commands in</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"># the documentation.</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> GENERATE_DEPRECATEDLIST= YES</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor"># The ENABLED_SECTIONS tag can be used to enable conditional documentation</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"># sections, marked by \if <section_label> ... \endif and \cond <section_label></span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor"># ... \endcond blocks.</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> ENABLED_SECTIONS = </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"># The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"># initial value of a variable or macro / define can have for it to appear in the</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"># documentation. If the initializer consists of more lines than specified here</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"># it will be hidden. Use a value of 0 to hide initializers completely. The</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"># appearance of the value of individual variables and macros / defines can be</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"># controlled using \showinitializer or \hideinitializer command in the</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"># documentation regardless of this setting.</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"># Minimum value: 0, maximum value: 10000, default value: 30.</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> MAX_INITIALIZER_LINES = 30</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"># Set the SHOW_USED_FILES tag to NO to disable the list of files generated at</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"># the bottom of the documentation of classes and structs. If set to YES, the</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"># list will mention the files that were used to generate the documentation.</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> SHOW_USED_FILES = NO</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"># Set the SHOW_FILES tag to NO to disable the generation of the Files page. This</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"># will remove the Files entry from the Quick Index and from the Folder Tree View</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"># (if specified).</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> SHOW_FILES = YES</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"># Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"># page. This will remove the Namespaces entry from the Quick Index and from the</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor"># Folder Tree View (if specified).</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> SHOW_NAMESPACES = YES</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"># The FILE_VERSION_FILTER tag can be used to specify a program or script that</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"># doxygen should invoke to get the current version for each file (typically from</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"># the version control system). Doxygen will invoke the program by executing (via</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor"># popen()) the command command input-file, where command is the value of the</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"># FILE_VERSION_FILTER tag, and input-file is the name of an input file provided</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"># by doxygen. Whatever the program writes to standard output is used as the file</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"># version. For an example see the documentation.</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> FILE_VERSION_FILTER = </div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"># The LAYOUT_FILE tag can be used to specify a layout file which will be parsed</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor"># by doxygen. The layout file controls the global structure of the generated</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"># output files in an output format independent way. To create the layout file</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"># that represents doxygen's defaults, run doxygen with the -l option. You can</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"># optionally specify a file name after the option, if omitted DoxygenLayout.xml</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"># will be used as the name of the layout file.</span></div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"># Note that if you run doxygen from a directory containing a file called</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"># DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"># tag is left empty.</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> LAYOUT_FILE = </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor"># The CITE_BIB_FILES tag can be used to specify one or more bib files containing</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"># the reference definitions. This must be a list of .bib files. The .bib</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor"># extension is automatically appended if omitted. This requires the bibtex tool</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"># to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"># For LaTeX the style of the bibliography can be controlled using</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"># LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"># search path. See also \cite for info how to create references.</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> CITE_BIB_FILES = </div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"># Configuration options related to warning and progress messages</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"># The QUIET tag can be used to turn on/off the messages that are generated to</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"># standard output by doxygen. If QUIET is set to YES this implies that the</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"># messages are off.</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> QUIET = NO</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor"># The WARNINGS tag can be used to turn on/off the warning messages that are</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor"># generated to standard error (stderr) by doxygen. If WARNINGS is set to YES</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"># this implies that the warnings are on.</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"># Tip: Turn warnings on while writing the documentation.</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> WARNINGS = YES</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"># If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"># warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"># will automatically be disabled.</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> WARN_IF_UNDOCUMENTED = YES</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor"># If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"># potential errors in the documentation, such as not documenting some parameters</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor"># in a documented function, or documenting parameters that don't exist or using</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"># markup commands wrongly.</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor"># The default value is: YES.</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> WARN_IF_DOC_ERROR = YES</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor"># This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"># are documented, but have no documentation for their parameters or return</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor"># value. If set to NO, doxygen will only warn about wrong or incomplete</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"># parameter documentation, but not about the absence of documentation.</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> WARN_NO_PARAMDOC = NO</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"># The WARN_FORMAT tag determines the format of the warning messages that doxygen</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"># can produce. The string should contain the $file, $line, and $text tags, which</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"># will be replaced by the file and line number from which the warning originated</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"># and the warning text. Optionally the format may contain $version, which will</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"># be replaced by the version of the file (if it could be obtained via</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"># FILE_VERSION_FILTER)</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"># The default value is: $file:$line: $text.</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> WARN_FORMAT = <span class="stringliteral">"$file:$line: $text"</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"># The WARN_LOGFILE tag can be used to specify a file to which warning and error</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"># messages should be written. If left blank the output is written to standard</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"># error (stderr).</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> WARN_LOGFILE = </div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"># Configuration options related to the input files</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"># The INPUT tag is used to specify the files and/or directories that contain</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"># documented source files. You may enter file names like myfile.cpp or</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"># directories like /usr/src/myproject. Separate the files or directories with</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"># spaces. See also FILE_PATTERNS and EXTENSION_MAPPING</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"># Note: If this tag is empty the current directory is searched.</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> INPUT = ../<a class="code" href="a00146.html">glm</a> \</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> .</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> # This tag can be used to specify the character encoding of the source files</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"># that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"># libiconv (or the iconv built into libc) for the transcoding. See the libiconv</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"># documentation (see: http://www.gnu.org/software/libiconv) for the list of</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"># possible encodings.</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor"># The default value is: UTF-8.</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> INPUT_ENCODING = UTF-8</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="preprocessor"># FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor"># *.h) to filter out the source-files in the directories.</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"># Note that for custom extensions or not directly supported extensions you also</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor"># need to set EXTENSION_MAPPING for the extension otherwise the files are not</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="preprocessor"># read by doxygen.</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"># If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor"># *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor"># *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"># *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor"># *.vhdl, *.ucf, *.qsf, *.as and *.js.</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> FILE_PATTERNS = *.hpp \</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> *.doxy</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"># The RECURSIVE tag can be used to specify whether or not subdirectories should</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor"># be searched for input files as well.</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> RECURSIVE = YES</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="preprocessor"># The EXCLUDE tag can be used to specify files and/or directories that should be</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="preprocessor"># excluded from the INPUT source files. This way you can easily exclude a</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="preprocessor"># subdirectory from a directory tree whose root is specified with the INPUT tag.</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"># Note that relative paths are relative to the directory from which doxygen is</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor"># run.</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> EXCLUDE = </div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"># The EXCLUDE_SYMLINKS tag can be used to select whether or not files or</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"># directories that are symbolic links (a Unix file system feature) are excluded</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"># from the input.</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"># The default value is: NO.</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> EXCLUDE_SYMLINKS = NO</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"># If the value of the INPUT tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"># EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"># certain files from those directories.</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor">#</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor"># exclude all test directories for example use the pattern */test</span><span class="comment">/*</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="comment"></span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="comment">EXCLUDE_PATTERNS = </span></div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment"></span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment"># The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="comment"># (namespaces, classes, functions, etc.) that should be excluded from the</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="comment"># output. The symbol name can be a fully qualified name, a word, or if the</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"># wildcard * is used, a substring. Examples: ANamespace, AClass,</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="comment"># AClass::ANamespace, ANamespace::*Test</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment"># Note that the wildcards are matched against the file with absolute path, so to</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="comment"># exclude all test directories use the pattern */</span><span class="preprocessor">test</span><span class="comment">/*</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="comment"></span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="comment">EXCLUDE_SYMBOLS = </span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment"></span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="comment"># The EXAMPLE_PATH tag can be used to specify one or more files or directories</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"># that contain example code fragments that are included (see the \include</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment"># command).</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment"></span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="comment">EXAMPLE_PATH = </span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"></span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment"># If the value of the EXAMPLE_PATH tag contains directories, you can use the</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment"># EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment"># *.h) to filter out the source-files in the directories. If left blank all</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment"># files are included.</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="comment"></span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment">EXAMPLE_PATTERNS = *</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment"></span></div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment"># If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment"># searched for input files to be used with the \include or \dontinclude commands</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment"># irrespective of the value of the RECURSIVE tag.</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="comment"></span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment">EXAMPLE_RECURSIVE = NO</span></div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment"></span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment"># The IMAGE_PATH tag can be used to specify one or more files or directories</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="comment"># that contain images that are to be included in the documentation (see the</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="comment"># \image command).</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment"></span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="comment">IMAGE_PATH = </span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="comment"></span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="comment"># The INPUT_FILTER tag can be used to specify a program that doxygen should</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="comment"># invoke to filter for each input file. Doxygen will invoke the filter program</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment"># by executing (via popen()) the command:</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="comment"># <filter> <input-file></span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="comment"># where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="comment"># name of an input file. Doxygen will then use the output that the filter</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="comment"># program writes to standard output. If FILTER_PATTERNS is specified, this tag</span></div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="comment"># will be ignored.</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="comment"># Note that the filter must not add or remove lines; it is applied before the</span></div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="comment"># code is scanned, but not when the output code is generated. If lines are added</span></div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment"># or removed, the anchors will not be placed correctly.</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment"></span></div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">INPUT_FILTER = </span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="comment"></span></div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="comment"># The FILTER_PATTERNS tag can be used to specify filters on a per file pattern</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="comment"># basis. Doxygen will compare the file name with each pattern and apply the</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="comment"># filter if there is a match. The filters are a list of the form: pattern=filter</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="comment"># (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="comment"># filters are used. If the FILTER_PATTERNS tag is empty or if none of the</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="comment"># patterns match the file name, INPUT_FILTER is applied.</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="comment"></span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment">FILTER_PATTERNS = </span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment"></span></div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment"># If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using</span></div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment"># INPUT_FILTER) will also be used to filter the input files that are used for</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="comment"># producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).</span></div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="comment"></span></div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="comment">FILTER_SOURCE_FILES = NO</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="comment"></span></div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="comment"># The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment"># pattern. A pattern will override the setting for FILTER_PATTERN (if any) and</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment"># it is also possible to disable source filtering for a specific pattern using</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment"># *.ext= (so without naming a filter).</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment"># This tag requires that the tag FILTER_SOURCE_FILES is set to YES.</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment"></span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment">FILTER_SOURCE_PATTERNS = </span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment"></span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="comment"># If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="comment"># is part of the input, its contents will be placed on the main page</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="comment"># (index.html). This can be useful if you have a project on for instance GitHub</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment"># and want to reuse the introduction page also for the doxygen output.</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="comment"></span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="comment">USE_MDFILE_AS_MAINPAGE = </span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="comment"></span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment"># Configuration options related to source browsing</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="comment"></span></div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="comment"># If the SOURCE_BROWSER tag is set to YES then a list of source files will be</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="comment"># generated. Documented entities will be cross-referenced with these sources.</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment"># Note: To get rid of all source code in the generated output, make sure that</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="comment"># also VERBATIM_HEADERS is set to NO.</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="comment"></span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="comment">SOURCE_BROWSER = YES</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="comment"></span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="comment"># Setting the INLINE_SOURCES tag to YES will include the body of functions,</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="comment"># classes and enums directly into the documentation.</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="comment"></span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment">INLINE_SOURCES = NO</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"></span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="comment"># Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment"># special comment blocks from generated source code fragments. Normal C, C++ and</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="comment"># Fortran comments will always remain visible.</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment"></span></div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment">STRIP_CODE_COMMENTS = YES</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment"></span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"># If the REFERENCED_BY_RELATION tag is set to YES then for each documented</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="comment"># function all documented functions referencing it will be listed.</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="comment"></span></div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="comment">REFERENCED_BY_RELATION = YES</span></div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment"></span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="comment"># If the REFERENCES_RELATION tag is set to YES then for each documented function</span></div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment"># all documented entities called/used by that function will be listed.</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="comment"></span></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="comment">REFERENCES_RELATION = YES</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="comment"></span></div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="comment"># If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="comment"># to YES then the hyperlinks from functions in REFERENCES_RELATION and</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="comment"># REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="comment"># link to the documentation.</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="comment"></span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="comment">REFERENCES_LINK_SOURCE = YES</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="comment"></span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="comment"># If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="comment"># source code will show a tooltip with additional information such as prototype,</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="comment"># brief description and links to the definition and documentation. Since this</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="comment"># will make the HTML file larger and loading of large files a bit slower, you</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="comment"># can opt to disable this feature.</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="comment"></span></div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="comment">SOURCE_TOOLTIPS = YES</span></div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="comment"></span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="comment"># If the USE_HTAGS tag is set to YES then the references to source code will</span></div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="comment"># point to the HTML generated by the htags(1) tool instead of doxygen built-in</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="comment"># source browser. The htags tool is part of GNU's global source tagging system</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment"># (see http://www.gnu.org/software/global/global.html). You will need version</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="comment"># 4.8.6 or higher.</span></div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment"># To use it do the following:</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment"># - Install the latest version of global</span></div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment"># - Enable SOURCE_BROWSER and USE_HTAGS in the config file</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="comment"># - Make sure the INPUT points to the root of the source tree</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="comment"># - Run doxygen as normal</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="comment"># Doxygen will invoke htags (and that will in turn invoke gtags), so these</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="comment"># tools must be available from the command line (i.e. in the search path).</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="comment">#</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="comment"># The result: instead of the source browser generated by doxygen, the links to</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="comment"># source code will now point to the output of htags.</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment"># This tag requires that the tag SOURCE_BROWSER is set to YES.</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment"></span></div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment">USE_HTAGS = NO</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment"></span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment"># If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment"># verbatim copy of the header file for each class for which an include is</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment"># specified. Set to NO to disable this.</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment"># See also: Section \class.</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment"></span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">VERBATIM_HEADERS = YES</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment"></span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment"># Configuration options related to the alphabetical class index</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment"></span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment"># If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment"># compounds will be generated. Enable this if the project contains a lot of</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment"># classes, structs, unions or interfaces.</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="comment"></span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">ALPHABETICAL_INDEX = NO</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment"></span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment"># The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in</span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment"># which the alphabetical index list will be split.</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment"># Minimum value: 1, maximum value: 20, default value: 5.</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment"></span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">COLS_IN_ALPHA_INDEX = 5</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment"></span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment"># In case all classes in a project start with a common prefix, all classes will</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment"># be put under the same header in the alphabetical index. The IGNORE_PREFIX tag</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment"># can be used to specify a prefix (or a list of prefixes) that should be ignored</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment"># while generating the index headers.</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment"># This tag requires that the tag ALPHABETICAL_INDEX is set to YES.</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment"></span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">IGNORE_PREFIX = </span></div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment"></span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment"># Configuration options related to the HTML output</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment"></span></div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment"># If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output</span></div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment"></span></div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment">GENERATE_HTML = YES</span></div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment"></span></div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment"># The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a</span></div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment"># it.</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment"># The default directory is: html.</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment"></span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">HTML_OUTPUT = html</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment"></span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment"># The HTML_FILE_EXTENSION tag can be used to specify the file extension for each</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment"># generated HTML page (for example: .htm, .php, .asp).</span></div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment"># The default value is: .html.</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment"></span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">HTML_FILE_EXTENSION = .html</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"></span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment"># The HTML_HEADER tag can be used to specify a user-defined HTML header file for</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment"># each generated HTML page. If the tag is left blank doxygen will generate a</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment"># standard header.</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment"># To get valid HTML the header file that includes any scripts and style sheets</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment"># that doxygen needs, which is dependent on the configuration options used (e.g.</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="comment"># the setting GENERATE_TREEVIEW). It is highly recommended to start with a</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"># default header using</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment"># doxygen -w html new_header.html new_footer.html new_stylesheet.css</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment"># YourConfigFile</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment"># and then modify the file new_header.html. See also section "Doxygen usage"</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment"># for information on how to generate the default header that doxygen normally</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment"># uses.</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment"># Note: The header is subject to change so you typically have to regenerate the</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment"># default header when upgrading to a newer version of doxygen. For a description</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment"># of the possible markers and block names see the documentation.</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="comment"></span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment">HTML_HEADER = </span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment"></span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment"># The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment"># generated HTML page. If the tag is left blank doxygen will generate a standard</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment"># footer. See HTML_HEADER for more information on how to generate a default</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment"># footer and what special commands can be used inside the footer. See also</span></div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment"># section "Doxygen usage" for information on how to generate the default footer</span></div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment"># that doxygen normally uses.</span></div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment"></span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">HTML_FOOTER = </span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment"></span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment"># The HTML_STYLESHEET tag can be used to specify a user-defined cascading style</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"># sheet that is used by each HTML page. It can be used to fine-tune the look of</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment"># the HTML output. If left blank doxygen will generate a default style sheet.</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the style</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment"># sheet that doxygen normally uses.</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"># Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment"># it is more robust and this tag (HTML_STYLESHEET) will in the future become</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> <span class="comment"># obsolete.</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment"></span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">HTML_STYLESHEET = </span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment"></span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment"># The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment"># cascading style sheets that are included after the standard style sheets</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment"># created by doxygen. Using this option one can overrule certain style aspects.</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment"># This is preferred over using HTML_STYLESHEET since it does not replace the</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment"># standard style sheet and is therefore more robust against future updates.</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment"># Doxygen will copy the style sheet files to the output directory.</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment"># list). For an example see the documentation.</span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment"></span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">HTML_EXTRA_STYLESHEET = </span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment"></span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment"># The HTML_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"># other source files which should be copied to the HTML output directory. Note</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment"># that these files will be copied to the base HTML output directory. Use the</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment"># $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment"># files. In the HTML_STYLESHEET file, use the file name only. Also note that the</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment"># files will be copied as-is; there are no commands or markers available.</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment"></span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">HTML_EXTRA_FILES = </span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment"></span></div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment"># The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment"># will adjust the colors in the style sheet and background images according to</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment"># this color. Hue is specified as an angle on a colorwheel, see</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment"># http://en.wikipedia.org/wiki/Hue for more information. For instance the value</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment"># 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment"># purple, and 360 is red again.</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment"># Minimum value: 0, maximum value: 359, default value: 220.</span></div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment"></span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">HTML_COLORSTYLE_HUE = 220</span></div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"></span></div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment"># The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"># in the HTML output. For a value of 0 the output will use grayscales only. A</span></div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment"># value of 255 will produce the most vivid colors.</span></div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"># Minimum value: 0, maximum value: 255, default value: 100.</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"></span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">HTML_COLORSTYLE_SAT = 100</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment"></span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment"># The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment"># luminance component of the colors in the HTML output. Values below 100</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment"># gradually make the output lighter, whereas values above 100 make the output</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment"># darker. The value divided by 100 is the actual gamma applied, so 80 represents</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"># a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"># change the gamma.</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment"># Minimum value: 40, maximum value: 240, default value: 80.</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"></span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">HTML_COLORSTYLE_GAMMA = 80</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment"></span></div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"># If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML</span></div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"># page will contain the date and time when the page was generated. Setting this</span></div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"># to YES can help to show when doxygen was last run and thus if the</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"># documentation is up to date.</span></div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"></span></div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">HTML_TIMESTAMP = NO</span></div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"></span></div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"># If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML</span></div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"># documentation will contain sections that can be hidden and shown after the</span></div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"># page has loaded.</span></div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span></div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment">HTML_DYNAMIC_SECTIONS = NO</span></div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"></span></div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"># With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries</span></div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"># shown in the various tree structured indices initially; the user can expand</span></div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"># and collapse entries dynamically later on. Doxygen will expand the tree to</span></div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"># such a level that at most the specified number of entries are visible (unless</span></div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"># a fully collapsed tree already exceeds this amount). So setting the number of</span></div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"># entries 1 will produce a full collapsed tree by default. 0 is a special value</span></div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"># representing an infinite number of entries and will result in a full expanded</span></div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"># tree by default.</span></div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"># Minimum value: 0, maximum value: 9999, default value: 100.</span></div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"></span></div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">HTML_INDEX_NUM_ENTRIES = 100</span></div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"></span></div>
-<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"># If the GENERATE_DOCSET tag is set to YES, additional index files will be</span></div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"># generated that can be used as input for Apple's Xcode 3 integrated development</span></div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"># environment (see: http://developer.apple.com/tools/xcode/), introduced with</span></div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"># OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a</span></div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"># Makefile in the HTML output directory. Running make will produce the docset in</span></div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment"># that directory and running make install will install the docset in</span></div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment"># ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at</span></div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"># startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html</span></div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"># for more information.</span></div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"></span></div>
-<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">GENERATE_DOCSET = NO</span></div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"></span></div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"># This tag determines the name of the docset feed. A documentation feed provides</span></div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"># an umbrella under which multiple documentation sets from a single provider</span></div>
-<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"># (such as a company or product suite) can be grouped.</span></div>
-<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"># The default value is: Doxygen generated docs.</span></div>
-<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"></span></div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">DOCSET_FEEDNAME = "Doxygen generated docs"</span></div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"></span></div>
-<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"># This tag specifies a string that should uniquely identify the documentation</span></div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"># set bundle. This should be a reverse domain-name style string, e.g.</span></div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"># com.mycompany.MyDocSet. Doxygen will append .docset to the name.</span></div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"></span></div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">DOCSET_BUNDLE_ID = org.doxygen.Project</span></div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"></span></div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"># The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify</span></div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"># the documentation publisher. This should be a reverse domain-name style</span></div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"># string, e.g. com.mycompany.MyDocSet.documentation.</span></div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"># The default value is: org.doxygen.Publisher.</span></div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"></span></div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">DOCSET_PUBLISHER_ID = org.doxygen.Publisher</span></div>
-<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment"></span></div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment"># The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.</span></div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment"># The default value is: Publisher.</span></div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"># This tag requires that the tag GENERATE_DOCSET is set to YES.</span></div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment"></span></div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">DOCSET_PUBLISHER_NAME = Publisher</span></div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"></span></div>
-<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"># If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three</span></div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"># additional HTML index files: index.hhp, index.hhc, and index.hhk. The</span></div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"># index.hhp is a project file that can be read by Microsoft's HTML Help Workshop</span></div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"># (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on</span></div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"># Windows.</span></div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"># The HTML Help Workshop contains a compiler that can convert all HTML output</span></div>
-<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"># generated by doxygen into a single compiled HTML file (.chm). Compiled HTML</span></div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"># files are now used as the Windows 98 help format, and will replace the old</span></div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"># Windows help format (.hlp) on all Windows platforms in the future. Compressed</span></div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"># HTML files also contain an index, a table of contents, and you can search for</span></div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"># words in the documentation. The HTML workshop also contains a viewer for</span></div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"># compressed HTML files.</span></div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"></span></div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment">GENERATE_HTMLHELP = NO</span></div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span></div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment"># The CHM_FILE tag can be used to specify the file name of the resulting .chm</span></div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"># file. You can add a path in front of the file if the result should not be</span></div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"># written to the html output directory.</span></div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"></span></div>
-<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">CHM_FILE = </span></div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"></span></div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"># The HHC_LOCATION tag can be used to specify the location (absolute path</span></div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"># including file name) of the HTML help compiler (hhc.exe). If non-empty,</span></div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"># doxygen will try to run the HTML help compiler on the generated index.hhp.</span></div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"># The file has to be specified with full path.</span></div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"></span></div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">HHC_LOCATION = </span></div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment"></span></div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"># The GENERATE_CHI flag controls if a separate .chi index file is generated</span></div>
-<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"># (YES) or that it should be included in the master .chm file (NO).</span></div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"></span></div>
-<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">GENERATE_CHI = NO</span></div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment"></span></div>
-<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment"># The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)</span></div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment"># and project file content.</span></div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment"></span></div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">CHM_INDEX_ENCODING = </span></div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment"></span></div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment"># The BINARY_TOC flag controls whether a binary table of contents is generated</span></div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment"># (YES) or a normal table of contents (NO) in the .chm file. Furthermore it</span></div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment"># enables the Previous and Next buttons.</span></div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment"></span></div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">BINARY_TOC = NO</span></div>
-<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment"></span></div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment"># The TOC_EXPAND flag can be set to YES to add extra items for group members to</span></div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment"># the table of contents of the HTML help documentation and to the tree view.</span></div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment"># This tag requires that the tag GENERATE_HTMLHELP is set to YES.</span></div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment"></span></div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">TOC_EXPAND = NO</span></div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment"></span></div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment"># If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and</span></div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment"># QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that</span></div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment"># can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help</span></div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"># (.qch) of the generated HTML documentation.</span></div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"></span></div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">GENERATE_QHP = NO</span></div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment"></span></div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment"># If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify</span></div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment"># the file name of the resulting .qch file. The path specified is relative to</span></div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment"># the HTML output folder.</span></div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment"></span></div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">QCH_FILE = </span></div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment"></span></div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment"># The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help</span></div>
-<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment"># Project output. For more information please see Qt Help Project / Namespace</span></div>
-<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment"># (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).</span></div>
-<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment"></span></div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">QHP_NAMESPACE = org.doxygen.Project</span></div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment"></span></div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment"># The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt</span></div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment"># Help Project output. For more information please see Qt Help Project / Virtual</span></div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment"># Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-</span></div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment"># folders).</span></div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment"># The default value is: doc.</span></div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"></span></div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">QHP_VIRTUAL_FOLDER = doc</span></div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment"></span></div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment"># If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom</span></div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment"># filter to add. For more information please see Qt Help Project / Custom</span></div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment"># filters).</span></div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment"></span></div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment">QHP_CUST_FILTER_NAME = </span></div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"></span></div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment"># The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the</span></div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment"># custom filter to add. For more information please see Qt Help Project / Custom</span></div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment"># Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-</span></div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment"># filters).</span></div>
-<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment"></span></div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">QHP_CUST_FILTER_ATTRS = </span></div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"></span></div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment"># The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this</span></div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment"># project's filter section matches. Qt Help Project / Filter Attributes (see:</span></div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment"># http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).</span></div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment"></span></div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">QHP_SECT_FILTER_ATTRS = </span></div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment"></span></div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment"># The QHG_LOCATION tag can be used to specify the location of Qt's</span></div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment"># qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the</span></div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment"># generated .qhp file.</span></div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment"># This tag requires that the tag GENERATE_QHP is set to YES.</span></div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"></span></div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">QHG_LOCATION = </span></div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"></span></div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="comment"># If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be</span></div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment"># generated, together with the HTML files, they form an Eclipse help plugin. To</span></div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment"># install this plugin and make it available under the help contents menu in</span></div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment"># Eclipse, the contents of the directory containing the HTML and XML files needs</span></div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment"># to be copied into the plugins directory of eclipse. The name of the directory</span></div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"># within the plugins directory should be the same as the ECLIPSE_DOC_ID value.</span></div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment"># After copying Eclipse needs to be restarted before the help appears.</span></div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment"></span></div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">GENERATE_ECLIPSEHELP = NO</span></div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment"></span></div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment"># A unique identifier for the Eclipse help plugin. When installing the plugin</span></div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"># the directory name containing the HTML and XML files should also have this</span></div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment"># name. Each documentation set should have its own identifier.</span></div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment"># The default value is: org.doxygen.Project.</span></div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment"># This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.</span></div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment"></span></div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">ECLIPSE_DOC_ID = org.doxygen.Project</span></div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment"></span></div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment"># If you want full control over the layout of the generated HTML pages it might</span></div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment"># be necessary to disable the index and replace it with your own. The</span></div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment"># DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top</span></div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="comment"># of each HTML page. A value of NO enables the index and the value YES disables</span></div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="comment"># it. Since the tabs in the index contain the same information as the navigation</span></div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="comment"># tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.</span></div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment"></span></div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">DISABLE_INDEX = NO</span></div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment"></span></div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment"># The GENERATE_TREEVIEW tag is used to specify whether a tree-like index</span></div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <span class="comment"># structure should be generated to display hierarchical information. If the tag</span></div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment"># value is set to YES, a side panel will be generated containing a tree-like</span></div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment"># index structure (just like the one that is generated for HTML Help). For this</span></div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment"># to work a browser that supports JavaScript, DHTML, CSS and frames is required</span></div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment"># (i.e. any modern browser). Windows users are probably better off using the</span></div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment"># HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can</span></div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment"># further fine-tune the look of the index. As an example, the default style</span></div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"># sheet generated by doxygen has an example that shows how to put an image at</span></div>
-<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment"># the root of the tree instead of the PROJECT_NAME. Since the tree basically has</span></div>
-<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment"># the same information as the tab index, you could consider setting</span></div>
-<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment"># DISABLE_INDEX to YES when enabling this option.</span></div>
-<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"></span></div>
-<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">GENERATE_TREEVIEW = NO</span></div>
-<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment"></span></div>
-<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment"># The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that</span></div>
-<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment"># doxygen will group on one line in the generated HTML documentation.</span></div>
-<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment"># Note that a value of 0 will completely suppress the enum values from appearing</span></div>
-<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment"># in the overview section.</span></div>
-<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"># Minimum value: 0, maximum value: 20, default value: 4.</span></div>
-<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment"></span></div>
-<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">ENUM_VALUES_PER_LINE = 4</span></div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment"></span></div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment"># If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used</span></div>
-<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> <span class="comment"># to set the initial width (in pixels) of the frame in which the tree is shown.</span></div>
-<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment"># Minimum value: 0, maximum value: 1500, default value: 250.</span></div>
-<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment"></span></div>
-<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment">TREEVIEW_WIDTH = 250</span></div>
-<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment"></span></div>
-<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"># If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to</span></div>
-<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"># external symbols imported via tag files in a separate window.</span></div>
-<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment"></span></div>
-<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment">EXT_LINKS_IN_WINDOW = NO</span></div>
-<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment"></span></div>
-<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment"># Use this tag to change the font size of LaTeX formulas included as images in</span></div>
-<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment"># the HTML documentation. When you change the font size after a successful</span></div>
-<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment"># doxygen run you need to manually remove any form_*.png images from the HTML</span></div>
-<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment"># output directory to force them to be regenerated.</span></div>
-<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment"># Minimum value: 8, maximum value: 50, default value: 10.</span></div>
-<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment"></span></div>
-<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">FORMULA_FONTSIZE = 10</span></div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment"></span></div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment"># Use the FORMULA_TRANPARENT tag to determine whether or not the images</span></div>
-<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment"># generated for formulas are transparent PNGs. Transparent PNGs are not</span></div>
-<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment"># supported properly for IE 6.0, but are supported on all modern browsers.</span></div>
-<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="comment"># Note that when changing this option you need to delete any form_*.png files in</span></div>
-<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment"># the HTML output directory before the changes have effect.</span></div>
-<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment"></span></div>
-<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">FORMULA_TRANSPARENT = YES</span></div>
-<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> <span class="comment"></span></div>
-<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="comment"># Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see</span></div>
-<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment"># http://www.mathjax.org) which uses client side Javascript for the rendering</span></div>
-<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment"># instead of using pre-rendered bitmaps. Use this if you do not have LaTeX</span></div>
-<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment"># installed or if you want to formulas look prettier in the HTML output. When</span></div>
-<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment"># enabled you may also need to install MathJax separately and configure the path</span></div>
-<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment"># to it using the MATHJAX_RELPATH option.</span></div>
-<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> <span class="comment"></span></div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">USE_MATHJAX = NO</span></div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="comment"></span></div>
-<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="comment"># When MathJax is enabled you can set the default output format to be used for</span></div>
-<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="comment"># the MathJax output. See the MathJax site (see:</span></div>
-<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> <span class="comment"># http://docs.mathjax.org/en/latest/output.html) for more details.</span></div>
-<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <span class="comment"># Possible values are: HTML-CSS (which is slower, but has the best</span></div>
-<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="comment"># compatibility), NativeMML (i.e. MathML) and SVG.</span></div>
-<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> <span class="comment"># The default value is: HTML-CSS.</span></div>
-<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> <span class="comment"></span></div>
-<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> <span class="comment">MATHJAX_FORMAT = HTML-CSS</span></div>
-<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment"></span></div>
-<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment"># When MathJax is enabled you need to specify the location relative to the HTML</span></div>
-<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="comment"># output directory using the MATHJAX_RELPATH option. The destination directory</span></div>
-<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> <span class="comment"># should contain the MathJax.js script. For instance, if the mathjax directory</span></div>
-<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="comment"># is located at the same level as the HTML output directory, then</span></div>
-<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment"># MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax</span></div>
-<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment"># Content Delivery Network so you can quickly see the result without installing</span></div>
-<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="comment"># MathJax. However, it is strongly recommended to install a local copy of</span></div>
-<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment"># MathJax from http://www.mathjax.org before deployment.</span></div>
-<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment"># The default value is: http://cdn.mathjax.org/mathjax/latest.</span></div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment"></span></div>
-<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="comment">MATHJAX_RELPATH = http://www.mathjax.org/mathjax</span></div>
-<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <span class="comment"></span></div>
-<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="comment"># The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax</span></div>
-<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> <span class="comment"># extension names that should be enabled during MathJax rendering. For example</span></div>
-<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> <span class="comment"># MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols</span></div>
-<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="comment"></span></div>
-<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">MATHJAX_EXTENSIONS = </span></div>
-<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> <span class="comment"></span></div>
-<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment"># The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces</span></div>
-<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="comment"># of code that will be used on startup of the MathJax code. See the MathJax site</span></div>
-<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> <span class="comment"># (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an</span></div>
-<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="comment"># example see the documentation.</span></div>
-<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> <span class="comment"># This tag requires that the tag USE_MATHJAX is set to YES.</span></div>
-<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> <span class="comment"></span></div>
-<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> <span class="comment">MATHJAX_CODEFILE = </span></div>
-<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <span class="comment"></span></div>
-<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="comment"># When the SEARCHENGINE tag is enabled doxygen will generate a search box for</span></div>
-<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="comment"># the HTML output. The underlying search engine uses javascript and DHTML and</span></div>
-<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment"># should work on any modern browser. Note that when using HTML help</span></div>
-<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="comment"># (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)</span></div>
-<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="comment"># there is already a search function so this one should typically be disabled.</span></div>
-<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> <span class="comment"># For large projects the javascript based search engine can be slow, then</span></div>
-<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> <span class="comment"># enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to</span></div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="comment"># search using the keyboard; to jump to the search box use <access key> + S</span></div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> <span class="comment"># (what the <access key> is depends on the OS and browser, but it is typically</span></div>
-<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> <span class="comment"># <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down</span></div>
-<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="comment"># key> to jump into the search results window, the results can be navigated</span></div>
-<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> <span class="comment"># using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel</span></div>
-<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> <span class="comment"># the search. The filter options can be selected when the cursor is inside the</span></div>
-<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> <span class="comment"># search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys></span></div>
-<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="comment"># to select a filter and <Enter> or <escape> to activate or cancel the filter</span></div>
-<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="comment"># option.</span></div>
-<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment"># This tag requires that the tag GENERATE_HTML is set to YES.</span></div>
-<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="comment"></span></div>
-<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">SEARCHENGINE = NO</span></div>
-<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="comment"></span></div>
-<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment"># When the SERVER_BASED_SEARCH tag is enabled the search engine will be</span></div>
-<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="comment"># implemented using a web server instead of a web client using Javascript. There</span></div>
-<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment"># are two flavors of web server based searching depending on the EXTERNAL_SEARCH</span></div>
-<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment"># setting. When disabled, doxygen will generate a PHP script for searching and</span></div>
-<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> <span class="comment"># an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing</span></div>
-<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment"># and searching needs to be provided by external tools. See the section</span></div>
-<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment"># "External Indexing and Searching" for details.</span></div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="comment"></span></div>
-<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment">SERVER_BASED_SEARCH = NO</span></div>
-<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment"></span></div>
-<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span> <span class="comment"># When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP</span></div>
-<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span> <span class="comment"># script for searching. Instead the search results are written to an XML file</span></div>
-<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> <span class="comment"># which needs to be processed by an external indexer. Doxygen will invoke an</span></div>
-<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment"># external search engine pointed to by the SEARCHENGINE_URL option to obtain the</span></div>
-<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment"># search results.</span></div>
-<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
-<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
-<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> <span class="comment"># Xapian (see: http://xapian.org/).</span></div>
-<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="comment"># See the section "External Indexing and Searching" for details.</span></div>
-<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> <span class="comment"></span></div>
-<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <span class="comment">EXTERNAL_SEARCH = NO</span></div>
-<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <span class="comment"></span></div>
-<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="comment"># The SEARCHENGINE_URL should point to a search engine hosted by a web server</span></div>
-<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <span class="comment"># which will return the search results when EXTERNAL_SEARCH is enabled.</span></div>
-<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment"># Doxygen ships with an example indexer (doxyindexer) and search engine</span></div>
-<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment"># (doxysearch.cgi) which are based on the open source search engine library</span></div>
-<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment"># Xapian (see: http://xapian.org/). See the section "External Indexing and</span></div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment"># Searching" for details.</span></div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> <span class="comment"></span></div>
-<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="comment">SEARCHENGINE_URL = </span></div>
-<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> <span class="comment"></span></div>
-<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed</span></div>
-<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> <span class="comment"># search data is written to a file for indexing by an external tool. With the</span></div>
-<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> <span class="comment"># SEARCHDATA_FILE tag the name of this file can be specified.</span></div>
-<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> <span class="comment"># The default file is: searchdata.xml.</span></div>
-<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> <span class="comment"></span></div>
-<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> <span class="comment">SEARCHDATA_FILE = searchdata.xml</span></div>
-<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> <span class="comment"></span></div>
-<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="comment"># When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the</span></div>
-<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> <span class="comment"># EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is</span></div>
-<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="comment"># useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple</span></div>
-<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="comment"># projects and redirect the results back to the right project.</span></div>
-<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> <span class="comment"></span></div>
-<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> <span class="comment">EXTERNAL_SEARCH_ID = </span></div>
-<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> <span class="comment"></span></div>
-<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> <span class="comment"># The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen</span></div>
-<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> <span class="comment"># projects other than the one defined by this configuration file, but that are</span></div>
-<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="comment"># all added to the same external search index. Each project needs to have a</span></div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> <span class="comment"># unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of</span></div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> <span class="comment"># to a relative location where the documentation can be found. The format is:</span></div>
-<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span> <span class="comment"># EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...</span></div>
-<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> <span class="comment"># This tag requires that the tag SEARCHENGINE is set to YES.</span></div>
-<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="comment"></span></div>
-<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="comment">EXTRA_SEARCH_MAPPINGS = </span></div>
-<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> <span class="comment"></span></div>
-<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> <span class="comment"># Configuration options related to the LaTeX output</span></div>
-<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
-<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment"># If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.</span></div>
-<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment"></span></div>
-<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> <span class="comment">GENERATE_LATEX = NO</span></div>
-<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <span class="comment"></span></div>
-<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> <span class="comment"># The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a</span></div>
-<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="comment"># it.</span></div>
-<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> <span class="comment"># The default directory is: latex.</span></div>
-<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> <span class="comment"></span></div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> <span class="comment">LATEX_OUTPUT = latex</span></div>
-<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> <span class="comment"></span></div>
-<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span> <span class="comment"># The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be</span></div>
-<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> <span class="comment"># invoked.</span></div>
-<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> <span class="comment"># Note that when enabling USE_PDFLATEX this option is only used for generating</span></div>
-<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="comment"># bitmaps for formulas in the HTML output, but not in the Makefile that is</span></div>
-<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> <span class="comment"># written to the output directory.</span></div>
-<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> <span class="comment"># The default file is: latex.</span></div>
-<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> <span class="comment"></span></div>
-<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">LATEX_CMD_NAME = latex</span></div>
-<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="comment"></span></div>
-<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment"># The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate</span></div>
-<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <span class="comment"># index for LaTeX.</span></div>
-<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="comment"># The default file is: makeindex.</span></div>
-<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment"></span></div>
-<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> <span class="comment">MAKEINDEX_CMD_NAME = makeindex</span></div>
-<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> <span class="comment"></span></div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="comment"># If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX</span></div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
-<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="comment"># trees in general.</span></div>
-<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> <span class="comment"></span></div>
-<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> <span class="comment">COMPACT_LATEX = NO</span></div>
-<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> <span class="comment"></span></div>
-<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> <span class="comment"># The PAPER_TYPE tag can be used to set the paper type that is used by the</span></div>
-<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="comment"># printer.</span></div>
-<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="comment"># Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x</span></div>
-<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> <span class="comment"># 14 inches) and executive (7.25 x 10.5 inches).</span></div>
-<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="comment"># The default value is: a4.</span></div>
-<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> <span class="comment"></span></div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> <span class="comment">PAPER_TYPE = a4wide</span></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> <span class="comment"></span></div>
-<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> <span class="comment"># The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names</span></div>
-<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> <span class="comment"># that should be included in the LaTeX output. The package can be specified just</span></div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> <span class="comment"># by its name or with the correct syntax as to be used with the LaTeX</span></div>
-<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> <span class="comment"># \usepackage command. To get the times font for instance you can specify :</span></div>
-<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> <span class="comment"># EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}</span></div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="comment"># To use the option intlimits with the amsmath package you can specify:</span></div>
-<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> <span class="comment"># EXTRA_PACKAGES=[intlimits]{amsmath}</span></div>
-<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> <span class="comment"># If left blank no extra packages will be included.</span></div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="comment"></span></div>
-<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span> <span class="comment">EXTRA_PACKAGES = </span></div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> <span class="comment"></span></div>
-<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> <span class="comment"># The LATEX_HEADER tag can be used to specify a personal LaTeX header for the</span></div>
-<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> <span class="comment"># generated LaTeX document. The header should contain everything until the first</span></div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard header. See</span></div>
-<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span> <span class="comment"># section "Doxygen usage" for information on how to let doxygen write the</span></div>
-<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> <span class="comment"># default header to a separate file.</span></div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> <span class="comment"># Note: Only use a user-defined header if you know what you are doing! The</span></div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="comment"># following commands have a special meaning inside the header: $title,</span></div>
-<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment"># $datetime, $date, $doxygenversion, $projectname, $projectnumber,</span></div>
-<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment"># $projectbrief, $projectlogo. Doxygen will replace $title with the empty</span></div>
-<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment"># string, for the replacement values of the other commands the user is referred</span></div>
-<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment"># to HTML_HEADER.</span></div>
-<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment"></span></div>
-<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="comment">LATEX_HEADER = </span></div>
-<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="comment"></span></div>
-<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> <span class="comment"># The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the</span></div>
-<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> <span class="comment"># generated LaTeX document. The footer should contain everything after the last</span></div>
-<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="comment"># chapter. If it is left blank doxygen will generate a standard footer. See</span></div>
-<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> <span class="comment"># LATEX_HEADER for more information on how to generate a default footer and what</span></div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> <span class="comment"># special commands can be used inside the footer.</span></div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> <span class="comment"># Note: Only use a user-defined footer if you know what you are doing!</span></div>
-<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="comment"></span></div>
-<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="comment">LATEX_FOOTER = </span></div>
-<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> <span class="comment"></span></div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> <span class="comment"># The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined</span></div>
-<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> <span class="comment"># LaTeX style sheets that are included after the standard style sheets created</span></div>
-<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> <span class="comment"># by doxygen. Using this option one can overrule certain style aspects. Doxygen</span></div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span> <span class="comment"># will copy the style sheet files to the output directory.</span></div>
-<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <span class="comment"># Note: The order of the extra style sheet files is of importance (e.g. the last</span></div>
-<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> <span class="comment"># style sheet in the list overrules the setting of the previous ones in the</span></div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="comment"># list).</span></div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> <span class="comment"></span></div>
-<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> <span class="comment">LATEX_EXTRA_STYLESHEET = </span></div>
-<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="comment"></span></div>
-<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> <span class="comment"># The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or</span></div>
-<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> <span class="comment"># other source files which should be copied to the LATEX_OUTPUT output</span></div>
-<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="comment"># directory. Note that the files will be copied as-is; there are no commands or</span></div>
-<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> <span class="comment"># markers available.</span></div>
-<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> <span class="comment"></span></div>
-<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="comment">LATEX_EXTRA_FILES = </span></div>
-<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="comment"></span></div>
-<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="comment"># If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is</span></div>
-<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span> <span class="comment"># prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will</span></div>
-<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> <span class="comment"># contain links (just like the HTML output) instead of page references. This</span></div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="comment"># makes the output suitable for online browsing using a PDF viewer.</span></div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> <span class="comment"></span></div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="comment">PDF_HYPERLINKS = NO</span></div>
-<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="comment"></span></div>
-<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="comment"># If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate</span></div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> <span class="comment"># the PDF file directly from the LaTeX files. Set this option to YES, to get a</span></div>
-<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="comment"># higher quality PDF documentation.</span></div>
-<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="comment"></span></div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> <span class="comment">USE_PDFLATEX = YES</span></div>
-<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> <span class="comment"></span></div>
-<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> <span class="comment"># If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode</span></div>
-<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> <span class="comment"># command to the generated LaTeX files. This will instruct LaTeX to keep running</span></div>
-<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="comment"># if errors occur, instead of asking the user for help. This option is also used</span></div>
-<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> <span class="comment"># when generating formulas in HTML.</span></div>
-<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="comment"></span></div>
-<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="comment">LATEX_BATCHMODE = NO</span></div>
-<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> <span class="comment"></span></div>
-<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment"># If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the</span></div>
-<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment"># index chapters (such as File Index, Compound Index, etc.) in the output.</span></div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="comment"></span></div>
-<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="comment">LATEX_HIDE_INDICES = NO</span></div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> <span class="comment"></span></div>
-<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="comment"># If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source</span></div>
-<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> <span class="comment"># code with syntax highlighting in the LaTeX output.</span></div>
-<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> <span class="comment"># SOURCE_BROWSER.</span></div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> <span class="comment"></span></div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> <span class="comment">LATEX_SOURCE_CODE = NO</span></div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> <span class="comment"></span></div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> <span class="comment"># The LATEX_BIB_STYLE tag can be used to specify the style to use for the</span></div>
-<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> <span class="comment"># bibliography, e.g. plainnat, or ieeetr. See</span></div>
-<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> <span class="comment"># http://en.wikipedia.org/wiki/BibTeX and \cite for more info.</span></div>
-<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> <span class="comment"># The default value is: plain.</span></div>
-<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> <span class="comment"># This tag requires that the tag GENERATE_LATEX is set to YES.</span></div>
-<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span> <span class="comment"></span></div>
-<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> <span class="comment">LATEX_BIB_STYLE = plain</span></div>
-<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> <span class="comment"></span></div>
-<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> <span class="comment"># Configuration options related to the RTF output</span></div>
-<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> <span class="comment"></span></div>
-<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> <span class="comment"># If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The</span></div>
-<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> <span class="comment"># RTF output is optimized for Word 97 and may not look too pretty with other RTF</span></div>
-<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> <span class="comment"># readers/editors.</span></div>
-<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> <span class="comment"></span></div>
-<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> <span class="comment">GENERATE_RTF = NO</span></div>
-<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> <span class="comment"></span></div>
-<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span> <span class="comment"># The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a</span></div>
-<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> <span class="comment"># it.</span></div>
-<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> <span class="comment"># The default directory is: rtf.</span></div>
-<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> <span class="comment"></span></div>
-<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="comment">RTF_OUTPUT = glm.rtf</span></div>
-<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> <span class="comment"></span></div>
-<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="comment"># If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF</span></div>
-<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> <span class="comment"># documents. This may be useful for small projects and may help to save some</span></div>
-<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="comment"># trees in general.</span></div>
-<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span> <span class="comment"></span></div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> <span class="comment">COMPACT_RTF = NO</span></div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> <span class="comment"></span></div>
-<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="comment"># If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will</span></div>
-<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> <span class="comment"># contain hyperlink fields. The RTF file will contain links (just like the HTML</span></div>
-<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> <span class="comment"># output) instead of page references. This makes the output suitable for online</span></div>
-<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="comment"># browsing using Word or some other Word compatible readers that support those</span></div>
-<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> <span class="comment"># fields.</span></div>
-<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="comment"># Note: WordPad (write) and others do not support links.</span></div>
-<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> <span class="comment"></span></div>
-<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">RTF_HYPERLINKS = YES</span></div>
-<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span> <span class="comment"></span></div>
-<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> <span class="comment"># Load stylesheet definitions from file. Syntax is similar to doxygen's config</span></div>
-<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> <span class="comment"># file, i.e. a series of assignments. You only have to provide replacements,</span></div>
-<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span> <span class="comment"># missing definitions are set to their default value.</span></div>
-<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> <span class="comment"># See also section "Doxygen usage" for information on how to generate the</span></div>
-<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span> <span class="comment"># default style sheet that doxygen normally uses.</span></div>
-<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> <span class="comment"></span></div>
-<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> <span class="comment">RTF_STYLESHEET_FILE = </span></div>
-<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> <span class="comment"></span></div>
-<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="comment"># Set optional variables used in the generation of an RTF document. Syntax is</span></div>
-<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> <span class="comment"># similar to doxygen's config file. A template extensions file can be generated</span></div>
-<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> <span class="comment"># using doxygen -e rtf extensionFile.</span></div>
-<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span> <span class="comment"></span></div>
-<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> <span class="comment">RTF_EXTENSIONS_FILE = </span></div>
-<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span> <span class="comment"></span></div>
-<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> <span class="comment"># If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code</span></div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> <span class="comment"># with syntax highlighting in the RTF output.</span></div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span> <span class="comment"># Note that which sources are shown also depends on other settings such as</span></div>
-<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> <span class="comment"># SOURCE_BROWSER.</span></div>
-<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> <span class="comment"># This tag requires that the tag GENERATE_RTF is set to YES.</span></div>
-<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> <span class="comment"></span></div>
-<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="comment">RTF_SOURCE_CODE = NO</span></div>
-<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="comment"></span></div>
-<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> <span class="comment"># Configuration options related to the man page output</span></div>
-<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <span class="comment"></span></div>
-<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="comment"># If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for</span></div>
-<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <span class="comment"># classes and files.</span></div>
-<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment"></span></div>
-<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">GENERATE_MAN = NO</span></div>
-<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment"></span></div>
-<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> <span class="comment"># The MAN_OUTPUT tag is used to specify where the man pages will be put. If a</span></div>
-<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> <span class="comment"># it. A directory man3 will be created inside the directory specified by</span></div>
-<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> <span class="comment"># MAN_OUTPUT.</span></div>
-<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> <span class="comment"># The default directory is: man.</span></div>
-<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> <span class="comment"></span></div>
-<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> <span class="comment">MAN_OUTPUT = man</span></div>
-<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> <span class="comment"></span></div>
-<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> <span class="comment"># The MAN_EXTENSION tag determines the extension that is added to the generated</span></div>
-<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> <span class="comment"># man pages. In case the manual section does not start with a number, the number</span></div>
-<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="comment"># 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is</span></div>
-<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> <span class="comment"># optional.</span></div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> <span class="comment"># The default value is: .3.</span></div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> <span class="comment"></span></div>
-<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">MAN_EXTENSION = .3</span></div>
-<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> <span class="comment"></span></div>
-<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="comment"># The MAN_SUBDIR tag determines the name of the directory created within</span></div>
-<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span> <span class="comment"># MAN_OUTPUT in which the man pages are placed. If defaults to man followed by</span></div>
-<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> <span class="comment"># MAN_EXTENSION with the initial . removed.</span></div>
-<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> <span class="comment"></span></div>
-<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> <span class="comment">MAN_SUBDIR = </span></div>
-<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="comment"></span></div>
-<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span> <span class="comment"># If the MAN_LINKS tag is set to YES and doxygen generates man output, then it</span></div>
-<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> <span class="comment"># will generate one additional man file for each entity documented in the real</span></div>
-<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span> <span class="comment"># man page(s). These additional files only source the real man page, but without</span></div>
-<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span> <span class="comment"># them the man command would be unable to find the correct page.</span></div>
-<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="comment"># This tag requires that the tag GENERATE_MAN is set to YES.</span></div>
-<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> <span class="comment"></span></div>
-<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> <span class="comment">MAN_LINKS = NO</span></div>
-<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> <span class="comment"></span></div>
-<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> <span class="comment"># Configuration options related to the XML output</span></div>
-<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="comment"></span></div>
-<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="comment"># If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that</span></div>
-<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> <span class="comment"># captures the structure of the code including all documentation.</span></div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="comment"></span></div>
-<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> <span class="comment">GENERATE_XML = NO</span></div>
-<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> <span class="comment"></span></div>
-<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <span class="comment"># The XML_OUTPUT tag is used to specify where the XML pages will be put. If a</span></div>
-<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span> <span class="comment"># relative path is entered the value of OUTPUT_DIRECTORY will be put in front of</span></div>
-<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> <span class="comment"># it.</span></div>
-<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span> <span class="comment"># The default directory is: xml.</span></div>
-<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
-<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span> <span class="comment"></span></div>
-<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span> <span class="comment">XML_OUTPUT = xml</span></div>
-<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span> <span class="comment"></span></div>
-<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span> <span class="comment"># If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program</span></div>
-<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="comment"># listings (including syntax highlighting and cross-referencing information) to</span></div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> <span class="comment"># the XML output. Note that enabling this will significantly increase the size</span></div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="comment"># of the XML output.</span></div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> <span class="comment"># This tag requires that the tag GENERATE_XML is set to YES.</span></div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> <span class="comment"></span></div>
-<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">XML_PROGRAMLISTING = YES</span></div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span> <span class="comment"></span></div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="comment"># Configuration options related to the DOCBOOK output</span></div>
-<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="comment"></span></div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="comment"># If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files</span></div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span> <span class="comment"># that can be used to generate PDF.</span></div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> <span class="comment"></span></div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="comment">GENERATE_DOCBOOK = NO</span></div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span> <span class="comment"></span></div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> <span class="comment"># The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.</span></div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span> <span class="comment"># If a relative path is entered the value of OUTPUT_DIRECTORY will be put in</span></div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> <span class="comment"># front of it.</span></div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="comment"># The default directory is: docbook.</span></div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> <span class="comment"></span></div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span> <span class="comment">DOCBOOK_OUTPUT = docbook</span></div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="comment"></span></div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span> <span class="comment"># If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the</span></div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span> <span class="comment"># program listings (including syntax highlighting and cross-referencing</span></div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> <span class="comment"># information) to the DOCBOOK output. Note that enabling this will significantly</span></div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="comment"># increase the size of the DOCBOOK output.</span></div>
-<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span> <span class="comment"># This tag requires that the tag GENERATE_DOCBOOK is set to YES.</span></div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span> <span class="comment"></span></div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> <span class="comment">DOCBOOK_PROGRAMLISTING = NO</span></div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="comment"></span></div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> <span class="comment"># Configuration options for the AutoGen Definitions output</span></div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="comment"></span></div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment"># If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an</span></div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> <span class="comment"># AutoGen Definitions (see http://autogen.sf.net) file that captures the</span></div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span> <span class="comment"># structure of the code including all documentation. Note that this feature is</span></div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> <span class="comment"># still experimental and incomplete at the moment.</span></div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> <span class="comment"></span></div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span> <span class="comment">GENERATE_AUTOGEN_DEF = NO</span></div>
-<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> <span class="comment"></span></div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="comment"># Configuration options related to the Perl module output</span></div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> <span class="comment"></span></div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span> <span class="comment"># If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module</span></div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> <span class="comment"># file that captures the structure of the code including all documentation.</span></div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> <span class="comment">#</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> <span class="comment"># Note that this feature is still experimental and incomplete at the moment.</span></div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="comment"></span></div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> <span class="comment">GENERATE_PERLMOD = NO</span></div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span> <span class="comment"></span></div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="comment"># If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span> <span class="comment"># Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI</span></div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> <span class="comment"># output from the Perl module output.</span></div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> <span class="comment"></span></div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span> <span class="comment">PERLMOD_LATEX = NO</span></div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> <span class="comment"></span></div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> <span class="comment"># If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely</span></div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="comment"># formatted so it can be parsed by a human reader. This is useful if you want to</span></div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment"># understand what is going on. On the other hand, if this tag is set to NO, the</span></div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment"># size of the Perl module output will be much smaller and Perl will parse it</span></div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment"># just the same.</span></div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span> <span class="comment"></span></div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="comment">PERLMOD_PRETTY = YES</span></div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span> <span class="comment"></span></div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> <span class="comment"># The names of the make variables in the generated doxyrules.make file are</span></div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span> <span class="comment"># prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful</span></div>
-<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> <span class="comment"># so different doxyrules.make files included by the same Makefile don't</span></div>
-<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> <span class="comment"># overwrite each other's variables.</span></div>
-<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> <span class="comment"># This tag requires that the tag GENERATE_PERLMOD is set to YES.</span></div>
-<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span> <span class="comment"></span></div>
-<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">PERLMOD_MAKEVAR_PREFIX = </span></div>
-<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="comment"></span></div>
-<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> <span class="comment"># Configuration options related to the preprocessor</span></div>
-<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment"></span></div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="comment"># If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all</span></div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment"># C-preprocessor directives found in the sources and include files.</span></div>
-<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment"></span></div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">ENABLE_PREPROCESSING = YES</span></div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="comment"></span></div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="comment"># If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names</span></div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment"># in the source code. If set to NO, only conditional compilation will be</span></div>
-<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="comment"># performed. Macro expansion can be done in a controlled way by setting</span></div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span> <span class="comment"># EXPAND_ONLY_PREDEF to YES.</span></div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> <span class="comment"></span></div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="comment">MACRO_EXPANSION = NO</span></div>
-<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="comment"></span></div>
-<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> <span class="comment"># If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then</span></div>
-<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> <span class="comment"># the macro expansion is limited to the macros specified with the PREDEFINED and</span></div>
-<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="comment"># EXPAND_AS_DEFINED tags.</span></div>
-<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> <span class="comment"></span></div>
-<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="comment">EXPAND_ONLY_PREDEF = NO</span></div>
-<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> <span class="comment"></span></div>
-<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="comment"># If the SEARCH_INCLUDES tag is set to YES, the include files in the</span></div>
-<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span> <span class="comment"># INCLUDE_PATH will be searched if a #include is found.</span></div>
-<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> <span class="comment"></span></div>
-<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span> <span class="comment">SEARCH_INCLUDES = YES</span></div>
-<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span> <span class="comment"></span></div>
-<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> <span class="comment"># The INCLUDE_PATH tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> <span class="comment"># contain include files that are not input files but should be processed by the</span></div>
-<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="comment"># preprocessor.</span></div>
-<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span> <span class="comment"># This tag requires that the tag SEARCH_INCLUDES is set to YES.</span></div>
-<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="comment"></span></div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> <span class="comment">INCLUDE_PATH = </span></div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment"></span></div>
-<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment"># You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard</span></div>
-<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment"># patterns (like *.h and *.hpp) to filter out the header-files in the</span></div>
-<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> <span class="comment"># directories. If left blank, the patterns specified with FILE_PATTERNS will be</span></div>
-<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> <span class="comment"># used.</span></div>
-<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span> <span class="comment"></span></div>
-<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> <span class="comment">INCLUDE_FILE_PATTERNS = </span></div>
-<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span> <span class="comment"></span></div>
-<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span> <span class="comment"># The PREDEFINED tag can be used to specify one or more macro names that are</span></div>
-<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> <span class="comment"># defined before the preprocessor is started (similar to the -D option of e.g.</span></div>
-<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> <span class="comment"># gcc). The argument of the tag is a list of macros of the form: name or</span></div>
-<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> <span class="comment"># name=definition (no spaces). If the definition and the "=" are omitted, "=1"</span></div>
-<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> <span class="comment"># is assumed. To prevent a macro definition from being undefined via #undef or</span></div>
-<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="comment"># recursively expanded use the := operator instead of the = operator.</span></div>
-<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> <span class="comment"></span></div>
-<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span> <span class="comment">PREDEFINED = </span></div>
-<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> <span class="comment"></span></div>
-<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <span class="comment"># If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this</span></div>
-<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> <span class="comment"># tag can be used to specify a list of macro names that should be expanded. The</span></div>
-<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> <span class="comment"># macro definition that is found in the sources will be used. Use the PREDEFINED</span></div>
-<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> <span class="comment"># tag if you want to use a different macro definition that overrules the</span></div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="comment"># definition found in the source code.</span></div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> <span class="comment"></span></div>
-<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> <span class="comment">EXPAND_AS_DEFINED = </span></div>
-<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> <span class="comment"></span></div>
-<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> <span class="comment"># If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will</span></div>
-<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <span class="comment"># remove all references to function-like macros that are alone on a line, have</span></div>
-<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> <span class="comment"># an all uppercase name, and do not end with a semicolon. Such function macros</span></div>
-<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> <span class="comment"># are typically used for boiler-plate code, and will confuse the parser if not</span></div>
-<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="comment"># removed.</span></div>
-<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="comment"># This tag requires that the tag ENABLE_PREPROCESSING is set to YES.</span></div>
-<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment"></span></div>
-<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="comment">SKIP_FUNCTION_MACROS = YES</span></div>
-<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span> <span class="comment"></span></div>
-<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="comment"># Configuration options related to external references</span></div>
-<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> <span class="comment"></span></div>
-<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> <span class="comment"># The TAGFILES tag can be used to specify one or more tag files. For each tag</span></div>
-<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span> <span class="comment"># file the location of the external documentation should be added. The format of</span></div>
-<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> <span class="comment"># a tag file without this location is as follows:</span></div>
-<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span> <span class="comment"># TAGFILES = file1 file2 ...</span></div>
-<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> <span class="comment"># Adding location for the tag files is done as follows:</span></div>
-<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> <span class="comment"># TAGFILES = file1=loc1 "file2 = loc2" ...</span></div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> <span class="comment"># where loc1 and loc2 can be relative or absolute paths or URLs. See the</span></div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span> <span class="comment"># section "Linking to external documentation" for more information about the use</span></div>
-<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span> <span class="comment"># of tag files.</span></div>
-<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span> <span class="comment"># Note: Each tag file must have a unique name (where the name does NOT include</span></div>
-<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> <span class="comment"># the path). If a tag file is not located in the directory in which doxygen is</span></div>
-<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> <span class="comment"># run, you must also specify the path to the tagfile here.</span></div>
-<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="comment"></span></div>
-<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span> <span class="comment">TAGFILES = </span></div>
-<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> <span class="comment"></span></div>
-<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> <span class="comment"># When a file name is specified after GENERATE_TAGFILE, doxygen will create a</span></div>
-<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> <span class="comment"># tag file that is based on the input files it reads. See section "Linking to</span></div>
-<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="comment"># external documentation" for more information about the usage of tag files.</span></div>
-<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="comment"></span></div>
-<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="comment">GENERATE_TAGFILE = </span></div>
-<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="comment"></span></div>
-<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="comment"># If the ALLEXTERNALS tag is set to YES, all external class will be listed in</span></div>
-<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> <span class="comment"># the class index. If set to NO, only the inherited external classes will be</span></div>
-<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment"># listed.</span></div>
-<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment"></span></div>
-<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="comment">ALLEXTERNALS = NO</span></div>
-<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> <span class="comment"></span></div>
-<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> <span class="comment"># If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed</span></div>
-<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span> <span class="comment"># in the modules index. If set to NO, only the current project's groups will be</span></div>
-<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> <span class="comment"># listed.</span></div>
-<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="comment"></span></div>
-<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">EXTERNAL_GROUPS = YES</span></div>
-<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <span class="comment"></span></div>
-<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span> <span class="comment"># If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in</span></div>
-<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> <span class="comment"># the related pages index. If set to NO, only the current project's pages will</span></div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span> <span class="comment"># be listed.</span></div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <span class="comment"></span></div>
-<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> <span class="comment">EXTERNAL_PAGES = YES</span></div>
-<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <span class="comment"></span></div>
-<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> <span class="comment"># The PERL_PATH should be the absolute path and name of the perl script</span></div>
-<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> <span class="comment"># interpreter (i.e. the result of 'which perl').</span></div>
-<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span> <span class="comment"># The default file (with absolute path) is: /usr/bin/perl.</span></div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> <span class="comment"></span></div>
-<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span> <span class="comment">PERL_PATH = /usr/bin/perl</span></div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span> <span class="comment"></span></div>
-<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> <span class="comment"># Configuration options related to the dot tool</span></div>
-<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> <span class="comment">#---------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span> <span class="comment"></span></div>
-<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span> <span class="comment"># If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram</span></div>
-<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span> <span class="comment"># (in HTML and LaTeX) for classes with base or super classes. Setting the tag to</span></div>
-<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="comment"># NO turns the diagrams off. Note that this option also works with HAVE_DOT</span></div>
-<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> <span class="comment"># disabled, but it is recommended to install and use dot, since it yields more</span></div>
-<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> <span class="comment"># powerful graphs.</span></div>
-<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="comment"></span></div>
-<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> <span class="comment">CLASS_DIAGRAMS = YES</span></div>
-<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> <span class="comment"></span></div>
-<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span> <span class="comment"># You can define message sequence charts within doxygen comments using the \msc</span></div>
-<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span> <span class="comment"># command. Doxygen will then run the mscgen tool (see:</span></div>
-<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span> <span class="comment"># http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the</span></div>
-<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> <span class="comment"># documentation. The MSCGEN_PATH tag allows you to specify the directory where</span></div>
-<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span> <span class="comment"># the mscgen tool resides. If left empty the tool is assumed to be found in the</span></div>
-<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span> <span class="comment"># default search path.</span></div>
-<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span> <span class="comment"></span></div>
-<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <span class="comment">MSCGEN_PATH = </span></div>
-<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> <span class="comment"></span></div>
-<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span> <span class="comment"># You can include diagrams made with dia in doxygen documentation. Doxygen will</span></div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span> <span class="comment"># then run dia to produce the diagram and insert it in the documentation. The</span></div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span> <span class="comment"># DIA_PATH tag allows you to specify the directory where the dia binary resides.</span></div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span> <span class="comment"># If left empty dia is assumed to be found in the default search path.</span></div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> <span class="comment"></span></div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span> <span class="comment">DIA_PATH = </span></div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> <span class="comment"></span></div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> <span class="comment"># If set to YES the inheritance and collaboration graphs will hide inheritance</span></div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span> <span class="comment"># and usage relations if the target is undocumented or is not a class.</span></div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> <span class="comment"></span></div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> <span class="comment">HIDE_UNDOC_RELATIONS = YES</span></div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> <span class="comment"></span></div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> <span class="comment"># If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is</span></div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span> <span class="comment"># available from the path. This tool is part of Graphviz (see:</span></div>
-<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> <span class="comment"># http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent</span></div>
-<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span> <span class="comment"># Bell Labs. The other options in this section have no effect if this option is</span></div>
-<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span> <span class="comment"># set to NO</span></div>
-<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span> <span class="comment"></span></div>
-<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> <span class="comment">HAVE_DOT = NO</span></div>
-<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> <span class="comment"></span></div>
-<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span> <span class="comment"># The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed</span></div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span> <span class="comment"># to run in parallel. When set to 0 doxygen will base this on the number of</span></div>
-<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> <span class="comment"># processors available in the system. You can set it explicitly to a value</span></div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span> <span class="comment"># larger than 0 to get control over the balance between CPU load and processing</span></div>
-<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> <span class="comment"># speed.</span></div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span> <span class="comment"># Minimum value: 0, maximum value: 32, default value: 0.</span></div>
-<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span> <span class="comment"></span></div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> <span class="comment">DOT_NUM_THREADS = 0</span></div>
-<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="comment"></span></div>
-<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span> <span class="comment"># When you want a differently looking font in the dot files that doxygen</span></div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> <span class="comment"># generates you can specify the font name using DOT_FONTNAME. You need to make</span></div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span> <span class="comment"># sure dot is able to find the font, which can be done by putting it in a</span></div>
-<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="comment"># standard location or by setting the DOTFONTPATH environment variable or by</span></div>
-<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> <span class="comment"># setting DOT_FONTPATH to the directory containing the font.</span></div>
-<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="comment"># The default value is: Helvetica.</span></div>
-<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="comment"></span></div>
-<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="comment">DOT_FONTNAME = Helvetica</span></div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="comment"></span></div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="comment"># The DOT_FONTSIZE tag can be used to set the size (in points) of the font of</span></div>
-<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span> <span class="comment"># dot graphs.</span></div>
-<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="comment"># Minimum value: 4, maximum value: 24, default value: 10.</span></div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> <span class="comment"></span></div>
-<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> <span class="comment">DOT_FONTSIZE = 10</span></div>
-<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="comment"></span></div>
-<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span> <span class="comment"># By default doxygen will tell dot to use the default font as specified with</span></div>
-<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> <span class="comment"># DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set</span></div>
-<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> <span class="comment"># the path where dot can find it using this tag.</span></div>
-<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="comment"></span></div>
-<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> <span class="comment">DOT_FONTPATH = </span></div>
-<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span> <span class="comment"></span></div>
-<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span> <span class="comment"># If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for</span></div>
-<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> <span class="comment"># each documented class showing the direct and indirect inheritance relations.</span></div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> <span class="comment"># Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.</span></div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="comment"></span></div>
-<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="comment">CLASS_GRAPH = YES</span></div>
-<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> <span class="comment"></span></div>
-<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span> <span class="comment"># If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a</span></div>
-<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="comment"># graph for each documented class showing the direct and indirect implementation</span></div>
-<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> <span class="comment"># dependencies (inheritance, containment, and class references variables) of the</span></div>
-<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> <span class="comment"># class with other documented classes.</span></div>
-<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> <span class="comment"></span></div>
-<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span> <span class="comment">COLLABORATION_GRAPH = YES</span></div>
-<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> <span class="comment"></span></div>
-<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> <span class="comment"># If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for</span></div>
-<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> <span class="comment"># groups, showing the direct groups dependencies.</span></div>
-<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> <span class="comment"></span></div>
-<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> <span class="comment">GROUP_GRAPHS = YES</span></div>
-<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span> <span class="comment"></span></div>
-<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> <span class="comment"># If the UML_LOOK tag is set to YES, doxygen will generate inheritance and</span></div>
-<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="comment"># collaboration diagrams in a style similar to the OMG's Unified Modeling</span></div>
-<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span> <span class="comment"># Language.</span></div>
-<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span> <span class="comment"></span></div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> <span class="comment">UML_LOOK = NO</span></div>
-<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> <span class="comment"></span></div>
-<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span> <span class="comment"># If the UML_LOOK tag is enabled, the fields and methods are shown inside the</span></div>
-<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> <span class="comment"># class node. If there are many fields or methods and many nodes the graph may</span></div>
-<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> <span class="comment"># become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the</span></div>
-<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> <span class="comment"># number of items for each type to make the size more manageable. Set this to 0</span></div>
-<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span> <span class="comment"># for no limit. Note that the threshold may be exceeded by 50% before the limit</span></div>
-<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span> <span class="comment"># is enforced. So when you set the threshold to 10, up to 15 fields may appear,</span></div>
-<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span> <span class="comment"># but if the number exceeds 15, the total amount of fields shown is limited to</span></div>
-<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span> <span class="comment"># 10.</span></div>
-<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> <span class="comment"># Minimum value: 0, maximum value: 100, default value: 10.</span></div>
-<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="comment"></span></div>
-<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="comment">UML_LIMIT_NUM_FIELDS = 10</span></div>
-<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> <span class="comment"></span></div>
-<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span> <span class="comment"># If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and</span></div>
-<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> <span class="comment"># collaboration graphs will show the relations between templates and their</span></div>
-<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> <span class="comment"># instances.</span></div>
-<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> <span class="comment"></span></div>
-<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span> <span class="comment">TEMPLATE_RELATIONS = NO</span></div>
-<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> <span class="comment"></span></div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> <span class="comment"># If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to</span></div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span> <span class="comment"># YES then doxygen will generate a graph for each documented file showing the</span></div>
-<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span> <span class="comment"># direct and indirect include dependencies of the file with other documented</span></div>
-<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> <span class="comment"># files.</span></div>
-<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> <span class="comment"></span></div>
-<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> <span class="comment">INCLUDE_GRAPH = YES</span></div>
-<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> <span class="comment"></span></div>
-<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> <span class="comment"># If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are</span></div>
-<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="comment"># set to YES then doxygen will generate a graph for each documented file showing</span></div>
-<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> <span class="comment"># the direct and indirect include dependencies of the file with other documented</span></div>
-<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> <span class="comment"># files.</span></div>
-<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span> <span class="comment"></span></div>
-<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> <span class="comment">INCLUDED_BY_GRAPH = YES</span></div>
-<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> <span class="comment"></span></div>
-<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="comment"># If the CALL_GRAPH tag is set to YES then doxygen will generate a call</span></div>
-<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
-<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> <span class="comment">#</span></div>
-<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
-<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> <span class="comment"># So in most cases it will be better to enable call graphs for selected</span></div>
-<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span> <span class="comment"># functions only using the \callgraph command. Disabling a call graph can be</span></div>
-<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="comment"># accomplished by means of the command \hidecallgraph.</span></div>
-<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span> <span class="comment"></span></div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> <span class="comment">CALL_GRAPH = YES</span></div>
-<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span> <span class="comment"></span></div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span> <span class="comment"># If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller</span></div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span> <span class="comment"># dependency graph for every global function or class method.</span></div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span> <span class="comment">#</span></div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> <span class="comment"># Note that enabling this option will significantly increase the time of a run.</span></div>
-<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> <span class="comment"># So in most cases it will be better to enable caller graphs for selected</span></div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> <span class="comment"># functions only using the \callergraph command. Disabling a caller graph can be</span></div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> <span class="comment"># accomplished by means of the command \hidecallergraph.</span></div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> <span class="comment"></span></div>
-<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span> <span class="comment">CALLER_GRAPH = YES</span></div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> <span class="comment"></span></div>
-<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> <span class="comment"># If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical</span></div>
-<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <span class="comment"># hierarchy of all classes instead of a textual one.</span></div>
-<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span> <span class="comment"></span></div>
-<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> <span class="comment">GRAPHICAL_HIERARCHY = YES</span></div>
-<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> <span class="comment"></span></div>
-<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="comment"># If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the</span></div>
-<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="comment"># dependencies a directory has on other directories in a graphical way. The</span></div>
-<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> <span class="comment"># dependency relations are determined by the #include relations between the</span></div>
-<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span> <span class="comment"># files in the directories.</span></div>
-<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span> <span class="comment"></span></div>
-<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> <span class="comment">DIRECTORY_GRAPH = YES</span></div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> <span class="comment"></span></div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="comment"># The DOT_IMAGE_FORMAT tag can be used to set the image format of the images</span></div>
-<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> <span class="comment"># generated by dot. For an explanation of the image formats see the section</span></div>
-<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> <span class="comment"># output formats in the documentation of the dot tool (Graphviz (see:</span></div>
-<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <span class="comment"># http://www.graphviz.org/)).</span></div>
-<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span> <span class="comment"># Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order</span></div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> <span class="comment"># to make the SVG files visible in IE 9+ (other browsers do not have this</span></div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="comment"># requirement).</span></div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="comment"># Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,</span></div>
-<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> <span class="comment"># png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and</span></div>
-<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <span class="comment"># png:gdiplus:gdiplus.</span></div>
-<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> <span class="comment"># The default value is: png.</span></div>
-<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> <span class="comment"></span></div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> <span class="comment">DOT_IMAGE_FORMAT = png</span></div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> <span class="comment"></span></div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <span class="comment"># If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to</span></div>
-<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> <span class="comment"># enable generation of interactive SVG images that allow zooming and panning.</span></div>
-<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> <span class="comment">#</span></div>
-<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span> <span class="comment"># Note that this requires a modern browser other than Internet Explorer. Tested</span></div>
-<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> <span class="comment"># and working are Firefox, Chrome, Safari, and Opera.</span></div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> <span class="comment"># Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make</span></div>
-<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <span class="comment"># the SVG files visible. Older versions of IE do not have SVG support.</span></div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span> <span class="comment"></span></div>
-<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="comment">INTERACTIVE_SVG = NO</span></div>
-<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="comment"></span></div>
-<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="comment"># The DOT_PATH tag can be used to specify the path where the dot tool can be</span></div>
-<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="comment"># found. If left blank, it is assumed the dot tool can be found in the path.</span></div>
-<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> <span class="comment"></span></div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="comment">DOT_PATH = </span></div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span> <span class="comment"></span></div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span> <span class="comment"># The DOTFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span> <span class="comment"># contain dot files that are included in the documentation (see the \dotfile</span></div>
-<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span> <span class="comment"># command).</span></div>
-<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> <span class="comment"></span></div>
-<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span> <span class="comment">DOTFILE_DIRS = </span></div>
-<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span> <span class="comment"></span></div>
-<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span> <span class="comment"># The MSCFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span> <span class="comment"># contain msc files that are included in the documentation (see the \mscfile</span></div>
-<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span> <span class="comment"># command).</span></div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span> <span class="comment"></span></div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span> <span class="comment">MSCFILE_DIRS = </span></div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span> <span class="comment"></span></div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span> <span class="comment"># The DIAFILE_DIRS tag can be used to specify one or more directories that</span></div>
-<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span> <span class="comment"># contain dia files that are included in the documentation (see the \diafile</span></div>
-<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span> <span class="comment"># command).</span></div>
-<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span> <span class="comment"></span></div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span> <span class="comment">DIAFILE_DIRS = </span></div>
-<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span> <span class="comment"></span></div>
-<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span> <span class="comment"># When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the</span></div>
-<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span> <span class="comment"># path where java can find the plantuml.jar file. If left blank, it is assumed</span></div>
-<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span> <span class="comment"># PlantUML is not used or called during a preprocessing step. Doxygen will</span></div>
-<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span> <span class="comment"># generate a warning when it encounters a \startuml command in this case and</span></div>
-<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span> <span class="comment"># will not generate output for the diagram.</span></div>
-<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span> <span class="comment"></span></div>
-<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="comment">PLANTUML_JAR_PATH = </span></div>
-<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="comment"></span></div>
-<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> <span class="comment"># When using plantuml, the specified paths are searched for files specified by</span></div>
-<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> <span class="comment"># the !include statement in a plantuml block.</span></div>
-<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> <span class="comment"></span></div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span> <span class="comment">PLANTUML_INCLUDE_PATH = </span></div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span> <span class="comment"></span></div>
-<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span> <span class="comment"># The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes</span></div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span> <span class="comment"># that will be shown in the graph. If the number of nodes in a graph becomes</span></div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> <span class="comment"># larger than this value, doxygen will truncate the graph, which is visualized</span></div>
-<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span> <span class="comment"># by representing a node as a red box. Note that doxygen if the number of direct</span></div>
-<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span> <span class="comment"># children of the root node in a graph is already larger than</span></div>
-<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span> <span class="comment"># DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that</span></div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span> <span class="comment"># the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.</span></div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="comment"># Minimum value: 0, maximum value: 10000, default value: 50.</span></div>
-<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span> <span class="comment"></span></div>
-<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span> <span class="comment">DOT_GRAPH_MAX_NODES = 50</span></div>
-<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span> <span class="comment"></span></div>
-<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span> <span class="comment"># The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs</span></div>
-<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span> <span class="comment"># generated by dot. A depth value of 3 means that only nodes reachable from the</span></div>
-<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span> <span class="comment"># root by following a path via at most 3 edges will be shown. Nodes that lay</span></div>
-<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span> <span class="comment"># further from the root node will be omitted. Note that setting this option to 1</span></div>
-<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="comment"># or 2 may greatly reduce the computation time needed for large code bases. Also</span></div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> <span class="comment"># note that the size of a graph can be further restricted by</span></div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> <span class="comment"># DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.</span></div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <span class="comment"># Minimum value: 0, maximum value: 1000, default value: 0.</span></div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> <span class="comment"></span></div>
-<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span> <span class="comment">MAX_DOT_GRAPH_DEPTH = 1000</span></div>
-<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span> <span class="comment"></span></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span> <span class="comment"># Set the DOT_TRANSPARENT tag to YES to generate images with a transparent</span></div>
-<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span> <span class="comment"># background. This is disabled by default, because dot on Windows does not seem</span></div>
-<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span> <span class="comment"># to support this out of the box.</span></div>
-<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> <span class="comment">#</span></div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span> <span class="comment"># Warning: Depending on the platform used, enabling this option may lead to</span></div>
-<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> <span class="comment"># badly anti-aliased labels on the edges of a graph (i.e. they become hard to</span></div>
-<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span> <span class="comment"># read).</span></div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span> <span class="comment"></span></div>
-<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> <span class="comment">DOT_TRANSPARENT = NO</span></div>
-<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> <span class="comment"></span></div>
-<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span> <span class="comment"># Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output</span></div>
-<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span> <span class="comment"># files in one run (i.e. multiple -o and -T options on the command line). This</span></div>
-<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> <span class="comment"># makes dot run faster, but since only newer versions of dot (>1.8.10) support</span></div>
-<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span> <span class="comment"># this, this feature is disabled by default.</span></div>
-<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span> <span class="comment"># The default value is: NO.</span></div>
-<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span> <span class="comment"></span></div>
-<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span> <span class="comment">DOT_MULTI_TARGETS = NO</span></div>
-<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> <span class="comment"></span></div>
-<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span> <span class="comment"># If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page</span></div>
-<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span> <span class="comment"># explaining the meaning of the various boxes and arrows in the dot generated</span></div>
-<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span> <span class="comment"># graphs.</span></div>
-<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> <span class="comment"></span></div>
-<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span> <span class="comment">GENERATE_LEGEND = YES</span></div>
-<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span> <span class="comment"></span></div>
-<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> <span class="comment"># If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot</span></div>
-<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span> <span class="comment"># files that are used to generate the various graphs.</span></div>
-<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> <span class="comment"># The default value is: YES.</span></div>
-<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span> <span class="comment"># This tag requires that the tag HAVE_DOT is set to YES.</span></div>
-<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> <span class="comment"></span></div>
-<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span> <span class="comment">DOT_CLEANUP = YES</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<a href="a00057.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00121.html">detail/type_mat4x2.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat4x2<float, lowp> <a class="code" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat4x2<float, mediump> <a class="code" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00158.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, lowp > lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00237">type_mat.hpp:237</a></div></div>
+<div class="ttc" id="a00158_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00158.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, highp > highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="ttc" id="a00121_html"><div class="ttname"><a href="a00121.html">type_mat4x2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2< float, mediump > mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00244">type_mat.hpp:244</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00058.html b/doc/api/a00058.html
deleted file mode 100644
index e9dd025..0000000
--- a/doc/api/a00058.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x2.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">mat2x2.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00058_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00058_source.html">mat2x2.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00058_source.html b/doc/api/a00058_source.html
index f182e64..5e355e6 100644
--- a/doc/api/a00058_source.html
+++ b/doc/api/a00058_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x2.hpp Source File</title>
+<title>0.9.8: mat4x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,37 +46,28 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x2.hpp</div> </div>
+<div class="title">mat4x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00058.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00121.html">detail/type_mat2x2.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00072">type_mat.hpp:72</a></div></div>
-<div class="ttc" id="a00121_html"><div class="ttname"><a href="a00121.html">type_mat2x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00093">type_mat.hpp:93</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00086">type_mat.hpp:86</a></div></div>
-<div class="ttc" id="a00164_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00079">type_mat.hpp:79</a></div></div>
-<div class="ttc" id="a00164_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00164.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00100">type_mat.hpp:100</a></div></div>
-<div class="ttc" id="a00164_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00065">type_mat.hpp:65</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00122.html">detail/type_mat4x3.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat4x3<float, lowp> <a class="code" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat4x3<float, mediump> <a class="code" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, highp > highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_mat4x3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3< float, mediump > mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00270">type_mat.hpp:270</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, lowp > lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00263">type_mat.hpp:263</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00059.html b/doc/api/a00059.html
index 044915b..16837da 100644
--- a/doc/api/a00059.html
+++ b/doc/api/a00059.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x3.hpp File Reference</title>
+<title>0.9.8: mat4x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x3.hpp File Reference</div> </div>
+<div class="title">mat4x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00059_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00059_source.html">mat2x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00059_source.html">mat4x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00059_source.html b/doc/api/a00059_source.html
index 784348a..aa441e5 100644
--- a/doc/api/a00059_source.html
+++ b/doc/api/a00059_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x3.hpp Source File</title>
+<title>0.9.8: mat4x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,29 +46,37 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x3.hpp</div> </div>
+<div class="title">mat4x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00059.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00122.html">detail/type_mat2x3.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat2x3<float, lowp> <a class="code" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat2x3<float, mediump> <a class="code" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="ttc" id="a00122_html"><div class="ttname"><a href="a00122.html">type_mat2x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, lowp > lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00112">type_mat.hpp:112</a></div></div>
-<div class="ttc" id="a00164_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3< float, mediump > mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00119">type_mat.hpp:119</a></div></div>
-<div class="ttc" id="a00164_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, highp > highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00126">type_mat.hpp:126</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00123.html">detail/type_mat4x4.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00158.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00318">type_mat.hpp:318</a></div></div>
+<div class="ttc" id="a00158_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00311">type_mat.hpp:311</a></div></div>
+<div class="ttc" id="a00123_html"><div class="ttname"><a href="a00123.html">type_mat4x4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00304">type_mat.hpp:304</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00290">type_mat.hpp:290</a></div></div>
+<div class="ttc" id="a00158_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00325">type_mat.hpp:325</a></div></div>
+<div class="ttc" id="a00158_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00297">type_mat.hpp:297</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00060.html b/doc/api/a00060.html
index b07f429..f0f7c58 100644
--- a/doc/api/a00060.html
+++ b/doc/api/a00060.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x4.hpp File Reference</title>
+<title>0.9.8: matrix.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x4.hpp File Reference</div> </div>
+<div class="title">matrix.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00060_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00060_source.html">mat2x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00060_source.html">matrix.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00060_source.html b/doc/api/a00060_source.html
index a572c75..b2112bc 100644
--- a/doc/api/a00060_source.html
+++ b/doc/api/a00060_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat2x4.hpp Source File</title>
+<title>0.9.8: matrix.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,28 +46,14 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat2x4.hpp</div> </div>
+<div class="title">matrix.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00060.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00123.html">detail/type_mat2x4.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat2x4<float, lowp> <a class="code" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat2x4<float, mediump> <a class="code" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4< float, mediump > mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00145">type_mat.hpp:145</a></div></div>
-<div class="ttc" id="a00123_html"><div class="ttname"><a href="a00123.html">type_mat2x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00164.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, lowp > lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00138">type_mat.hpp:138</a></div></div>
-<div class="ttc" id="a00164_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, highp > highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00152">type_mat.hpp:152</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00033.html">detail/func_matrix.hpp</a>"</span></div>
+<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">func_matrix.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00061.html b/doc/api/a00061.html
index 1c2251f..bba35e9 100644
--- a/doc/api/a00061.html
+++ b/doc/api/a00061.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x2.hpp File Reference</title>
+<title>0.9.8: matrix_access.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,39 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat3x2.hpp File Reference</div> </div>
+<div class="title">matrix_access.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00061_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &m, length_t index, typename genType::col_type const &x)</td></tr>
+<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &m, length_t index, typename genType::row_type const &x)</td></tr>
+<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00061_source.html">mat3x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00061_source.html">matrix_access.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00061_source.html b/doc/api/a00061_source.html
index 9f9b131..251cdea 100644
--- a/doc/api/a00061_source.html
+++ b/doc/api/a00061_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x2.hpp Source File</title>
+<title>0.9.8: matrix_access.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,33 +41,55 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x2.hpp</div> </div>
+<div class="title">matrix_access.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00061.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00124.html">detail/type_mat3x2.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat3x2<float, lowp> <a class="code" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat3x2<float, mediump> <a class="code" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace</span></div>
-<div class="ttc" id="a00124_html"><div class="ttname"><a href="a00124.html">type_mat3x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, highp > highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00178">type_mat.hpp:178</a></div></div>
-<div class="ttc" id="a00164_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, lowp > lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00164">type_mat.hpp:164</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2< float, mediump > mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00171">type_mat.hpp:171</a></div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_access extension included")</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::row_type <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> length_t index);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL genType <a class="code" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> length_t index,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::col_type <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> length_t index);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL genType <a class="code" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> genType <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> length_t index,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "matrix_access.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00166_html_gaadcc64829aadf4103477679e48c7594f"><div class="ttname"><a href="a00166.html#gaadcc64829aadf4103477679e48c7594f">glm::row</a></div><div class="ttdeci">GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)</div><div class="ttdoc">Set a specific row to a matrix. </div></div>
+<div class="ttc" id="a00166_html_ga9e757377523890e8b80c5843dbe4dd15"><div class="ttname"><a href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">glm::column</a></div><div class="ttdeci">GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)</div><div class="ttdoc">Set a specific column to a matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00062.html b/doc/api/a00062.html
index a29ea7d..4cefc76 100644
--- a/doc/api/a00062.html
+++ b/doc/api/a00062.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x3.hpp File Reference</title>
+<title>0.9.8: matrix_cross_product.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,35 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat3x3.hpp File Reference</div> </div>
+<div class="title">matrix_cross_product.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00062_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00062_source.html">mat3x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00062_source.html">matrix_cross_product.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00062_source.html b/doc/api/a00062_source.html
index 53861a6..8585573 100644
--- a/doc/api/a00062_source.html
+++ b/doc/api/a00062_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x3.hpp Source File</title>
+<title>0.9.8: matrix_cross_product.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,42 +41,41 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x3.hpp</div> </div>
+<div class="title">matrix_cross_product.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00062.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00125.html">detail/type_mat3x3.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00197">type_mat.hpp:197</a></div></div>
-<div class="ttc" id="a00164_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00225">type_mat.hpp:225</a></div></div>
-<div class="ttc" id="a00164_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00190">type_mat.hpp:190</a></div></div>
-<div class="ttc" id="a00164_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00218">type_mat.hpp:218</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00164.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00211">type_mat.hpp:211</a></div></div>
-<div class="ttc" id="a00125_html"><div class="ttname"><a href="a00125.html">type_mat3x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00204">type_mat.hpp:204</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_cross_product extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "matrix_cross_product.inl"</span></div>
+<div class="ttc" id="a00203_html_ga2d46cc5253761c214aa5c782865156b1"><div class="ttname"><a href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">glm::matrixCross4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > matrixCross4(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00203_html_ga04385b2e3a93c78d116b51af2d8d708e"><div class="ttname"><a href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">glm::matrixCross3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > matrixCross3(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00063.html b/doc/api/a00063.html
index c2976b7..e462dc9 100644
--- a/doc/api/a00063.html
+++ b/doc/api/a00063.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x4.hpp File Reference</title>
+<title>0.9.8: matrix_decompose.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,30 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat3x4.hpp File Reference</div> </div>
+<div class="title">matrix_decompose.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00063_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)< [...]
+<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00063_source.html">mat3x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00063_source.html">matrix_decompose.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00063_source.html b/doc/api/a00063_source.html
index 03d24b7..2881a52 100644
--- a/doc/api/a00063_source.html
+++ b/doc/api/a00063_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat3x4.hpp Source File</title>
+<title>0.9.8: matrix_decompose.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,33 +41,45 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat3x4.hpp</div> </div>
+<div class="title">matrix_decompose.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00063.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00126.html">detail/type_mat3x4.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat3x4<float, lowp> <a class="code" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat3x4<float, mediump> <a class="code" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4< float, mediump > mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00244">type_mat.hpp:244</a></div></div>
-<div class="ttc" id="a00126_html"><div class="ttname"><a href="a00126.html">type_mat3x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, lowp > lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00237">type_mat.hpp:237</a></div></div>
-<div class="ttc" id="a00164_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00164.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, highp > highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/matrix_transform.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_decompose extension included")</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> tmat4x4<T, P> <span class="keyword">const</span> & modelMatrix,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec3<T, P> & <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, tquat<T, P> & <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & <a class="code" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "matrix_decompose.inl"</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00169_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
+<div class="ttc" id="a00204_html_ga0f1245817507156b337798a253577c8b"><div class="ttname"><a href="a00204.html#ga0f1245817507156b337798a253577c8b">glm::decompose</a></div><div class="ttdeci">GLM_FUNC_DECL bool decompose(tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)</div><div class="ttdoc">Decomposes a model matrix [...]
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00064.html b/doc/api/a00064.html
index e75f7e3..5a85643 100644
--- a/doc/api/a00064.html
+++ b/doc/api/a00064.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x2.hpp File Reference</title>
+<title>0.9.8: matrix_integer.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,219 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">mat4x2.hpp File Reference</div> </div>
+<div class="title">matrix_integer.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00064_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
+<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
+<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
+<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
+<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
+<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
+<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
+<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
+<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
+<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
+<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
+<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
+<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
+<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
+<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
+<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
+<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
+<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
+<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
+<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
+<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
+<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
+<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
+<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
+<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
+<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
+<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
+<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
+<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
+<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
+<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
+<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
+<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
+<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
+<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
+<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
+<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
+<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
+<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
+<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
+<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
+<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
+<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
+<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
+<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
+<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
+<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
+<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
+<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
+<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
+<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
+<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
+<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
+<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
+<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
+<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
+<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
+<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
+<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
+<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
+<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
+<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
+<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
+<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
+<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
+<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
+<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
+<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
+<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
+<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
+<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
+<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
+<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
+<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
+<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
+<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
+<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
+<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
+<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
+<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
+<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
+<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
+<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
+<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
+<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
+<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
+<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
+<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
+<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
+<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
+<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
+<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
+<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
+<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
+<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
+<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
+<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00064_source.html">mat4x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00064_source.html b/doc/api/a00064_source.html
index f6fb419..59a8291 100644
--- a/doc/api/a00064_source.html
+++ b/doc/api/a00064_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x2.hpp Source File</title>
+<title>0.9.8: matrix_integer.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,33 +41,392 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x2.hpp</div> </div>
+<div class="title">matrix_integer.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00064.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">detail/type_mat4x2.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat4x2<float, lowp> <a class="code" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat4x2<float, mediump> <a class="code" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_mat4x2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, lowp > lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00263">type_mat.hpp:263</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2< float, mediump > mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00270">type_mat.hpp:270</a></div></div>
-<div class="ttc" id="a00164_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00164.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, highp > highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_integer extension included")</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> {</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a"> 36</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9"> 40</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb"> 44</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a"> 48</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e"> 52</a></span> <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65"> 56</a></span> <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00167.html#ga0413bf87605b9247be2533c439127a1c"> 60</a></span> <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00167.html#gacce460d54216438bb577bf8c9d68299c"> 64</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49"> 68</a></span> <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599"> 72</a></span> <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73"> 76</a></span> <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00167.html#gae53db595d36f49a299e180302795e3c9"> 80</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655"> 85</a></span> <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c"> 89</a></span> <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615"> 93</a></span> <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8"> 98</a></span> <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a"> 102</a></span> <span class="keyword">typedef</span> tmat2x3<int, mediump> <a class="code" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00167.html#gaa08e27efc514088315ccbaf818f01880"> 106</a></span> <span class="keyword">typedef</span> tmat2x4<int, mediump> <a class="code" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983"> 110</a></span> <span class="keyword">typedef</span> tmat3x2<int, mediump> <a class="code" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3"> 114</a></span> <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38"> 118</a></span> <span class="keyword">typedef</span> tmat3x4<int, mediump> <a class="code" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54"> 122</a></span> <span class="keyword">typedef</span> tmat4x2<int, mediump> <a class="code" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d"> 126</a></span> <span class="keyword">typedef</span> tmat4x3<int, mediump> <a class="code" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8"> 130</a></span> <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0"> 135</a></span> <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c"> 139</a></span> <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4"> 143</a></span> <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31"> 148</a></span> <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a>;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc"> 152</a></span> <span class="keyword">typedef</span> tmat2x3<int, lowp> <a class="code" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b"> 156</a></span> <span class="keyword">typedef</span> tmat2x4<int, lowp> <a class="code" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35"> 160</a></span> <span class="keyword">typedef</span> tmat3x2<int, lowp> <a class="code" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f"> 164</a></span> <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b"> 168</a></span> <span class="keyword">typedef</span> tmat3x4<int, lowp> <a class="code" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df"> 172</a></span> <span class="keyword">typedef</span> tmat4x2<int, lowp> <a class="code" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69"> 176</a></span> <span class="keyword">typedef</span> tmat4x3<int, lowp> <a class="code" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80"> 180</a></span> <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c"> 185</a></span> <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a>; </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147"> 189</a></span> <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c"> 193</a></span> <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb"> 197</a></span> <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a>;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5"> 201</a></span> <span class="keyword">typedef</span> tmat2x3<uint, highp> <a class="code" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213"> 205</a></span> <span class="keyword">typedef</span> tmat2x4<uint, highp> <a class="code" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f"> 209</a></span> <span class="keyword">typedef</span> tmat3x2<uint, highp> <a class="code" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa"> 213</a></span> <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7"> 217</a></span> <span class="keyword">typedef</span> tmat3x4<uint, highp> <a class="code" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292"> 221</a></span> <span class="keyword">typedef</span> tmat4x2<uint, highp> <a class="code" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00167.html#ga899a376888652fe3c03718641812bb27"> 225</a></span> <span class="keyword">typedef</span> tmat4x3<uint, highp> <a class="code" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00167.html#gab8068521c0ad6990373d27d87d333084"> 229</a></span> <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493"> 234</a></span> <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6"> 238</a></span> <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833"> 242</a></span> <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163"> 247</a></span> <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb"> 251</a></span> <span class="keyword">typedef</span> tmat2x3<uint, mediump> <a class="code" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e"> 255</a></span> <span class="keyword">typedef</span> tmat2x4<uint, mediump> <a class="code" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947"> 259</a></span> <span class="keyword">typedef</span> tmat3x2<uint, mediump> <a class="code" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5"> 263</a></span> <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc"> 267</a></span> <span class="keyword">typedef</span> tmat3x4<uint, mediump> <a class="code" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad"> 271</a></span> <span class="keyword">typedef</span> tmat4x2<uint, mediump> <a class="code" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39"> 275</a></span> <span class="keyword">typedef</span> tmat4x3<uint, mediump> <a class="code" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a00167.html#ga24716579cf155f4e042542808f83978c"> 279</a></span> <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00167.html#ga1406406e396b56bde3c7c0722f657064"> 284</a></span> <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033"> 288</a></span> <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884"> 292</a></span> <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3"> 297</a></span> <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676"> 301</a></span> <span class="keyword">typedef</span> tmat2x3<uint, lowp> <a class="code" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4"> 305</a></span> <span class="keyword">typedef</span> tmat2x4<uint, lowp> <a class="code" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00167.html#gad73943020bb49a072317ecfc52d587f0"> 309</a></span> <span class="keyword">typedef</span> tmat3x2<uint, lowp> <a class="code" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67"> 313</a></span> <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db"> 317</a></span> <span class="keyword">typedef</span> tmat3x4<uint, lowp> <a class="code" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95"> 321</a></span> <span class="keyword">typedef</span> tmat4x2<uint, lowp> <a class="code" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d"> 325</a></span> <span class="keyword">typedef</span> tmat4x3<uint, lowp> <a class="code" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2"> 329</a></span> <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">typedef</span> highp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">typedef</span> highp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">typedef</span> highp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">typedef</span> highp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">typedef</span> highp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">typedef</span> highp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">typedef</span> highp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keyword">typedef</span> highp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">typedef</span> highp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">typedef</span> highp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">typedef</span> highp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">typedef</span> highp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">typedef</span> lowp_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">typedef</span> lowp_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">typedef</span> lowp_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">typedef</span> lowp_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">typedef</span> lowp_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">typedef</span> lowp_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">typedef</span> lowp_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">typedef</span> lowp_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">typedef</span> lowp_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">typedef</span> lowp_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">typedef</span> lowp_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">typedef</span> lowp_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01"> 361</a></span> <span class="keyword">typedef</span> mediump_imat2 <a class="code" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="a00167.html#ga038f68437155ffa3c2583a15264a8195"> 365</a></span> <span class="keyword">typedef</span> mediump_imat3 <a class="code" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb"> 369</a></span> <span class="keyword">typedef</span> mediump_imat4 <a class="code" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec"> 373</a></span> <span class="keyword">typedef</span> mediump_imat2x2 <a class="code" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605"> 377</a></span> <span class="keyword">typedef</span> mediump_imat2x3 <a class="code" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668"> 381</a></span> <span class="keyword">typedef</span> mediump_imat2x4 <a class="code" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f"> 385</a></span> <span class="keyword">typedef</span> mediump_imat3x2 <a class="code" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4"> 389</a></span> <span class="keyword">typedef</span> mediump_imat3x3 <a class="code" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58"> 393</a></span> <span class="keyword">typedef</span> mediump_imat3x4 <a class="code" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa"> 397</a></span> <span class="keyword">typedef</span> mediump_imat4x2 <a class="code" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5"> 401</a></span> <span class="keyword">typedef</span> mediump_imat4x3 <a class="code" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b"> 405</a></span> <span class="keyword">typedef</span> mediump_imat4x4 <a class="code" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="keyword">typedef</span> highp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">typedef</span> highp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">typedef</span> highp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keyword">typedef</span> highp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="keyword">typedef</span> highp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">typedef</span> highp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">typedef</span> highp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">typedef</span> highp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keyword">typedef</span> highp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">typedef</span> highp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">typedef</span> highp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">typedef</span> highp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">typedef</span> lowp_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">typedef</span> lowp_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword">typedef</span> lowp_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keyword">typedef</span> lowp_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">typedef</span> lowp_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">typedef</span> lowp_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">typedef</span> lowp_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keyword">typedef</span> lowp_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keyword">typedef</span> lowp_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">typedef</span> lowp_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">typedef</span> lowp_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">typedef</span> lowp_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="a00167.html#ga4cae85566f900debf930c41944b64691"> 438</a></span> <span class="keyword">typedef</span> mediump_umat2 <a class="code" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6"> 442</a></span> <span class="keyword">typedef</span> mediump_umat3 <a class="code" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c"> 446</a></span> <span class="keyword">typedef</span> mediump_umat4 <a class="code" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa"> 450</a></span> <span class="keyword">typedef</span> mediump_umat2x2 <a class="code" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00167.html#ga1870da7578d5022b973a83155d386ab3"> 454</a></span> <span class="keyword">typedef</span> mediump_umat2x3 <a class="code" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4"> 458</a></span> <span class="keyword">typedef</span> mediump_umat2x4 <a class="code" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a"> 462</a></span> <span class="keyword">typedef</span> mediump_umat3x2 <a class="code" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb"> 466</a></span> <span class="keyword">typedef</span> mediump_umat3x3 <a class="code" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba"> 470</a></span> <span class="keyword">typedef</span> mediump_umat3x4 <a class="code" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53"> 474</a></span> <span class="keyword">typedef</span> mediump_umat4x2 <a class="code" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98"> 478</a></span> <span class="keyword">typedef</span> mediump_umat4x3 <a class="code" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8"> 482</a></span> <span class="keyword">typedef</span> mediump_umat4x4 <a class="code" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00167_html_ga705ee0bf49d6c3de4404ce2481bf0df5"><div class="ttname"><a href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::imat4x3</a></div><div class="ttdeci">mediump_imat4x3 imat4x3</div><div class="ttdoc">Signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00401">matrix_integer.hpp:401</a></div></div>
+<div class="ttc" id="a00167_html_ga148f3a81d15a570b9460158e6964f41c"><div class="ttname"><a href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">glm::lowp_imat3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00139">matrix_integer.hpp:139</a></div></div>
+<div class="ttc" id="a00167_html_gabc572d47b60f7e595d7aad945f5d13a8"><div class="ttname"><a href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">glm::mediump_imat2x2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2x2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00098">matrix_integer.hpp:98</a></div></div>
+<div class="ttc" id="a00167_html_ga8e0f797a57fec255f0eec7da1511bc38"><div class="ttname"><a href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">glm::mediump_imat3x4</a></div><div class="ttdeci">tmat3x4< int, mediump > mediump_imat3x4</div><div class="ttdoc">Medium-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00118">matrix_integer.hpp:118</a></div></div>
+<div class="ttc" id="a00167_html_ga0413bf87605b9247be2533c439127a1c"><div class="ttname"><a href="a00167.html#ga0413bf87605b9247be2533c439127a1c">glm::highp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, highp > highp_imat3x2</div><div class="ttdoc">High-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00060">matrix_integer.hpp:60</a></div></div>
+<div class="ttc" id="a00167_html_ga76cab31d492ea214c693ab9132b4de95"><div class="ttname"><a href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">glm::lowp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, lowp > lowp_umat4x2</div><div class="ttdoc">Low-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00321">matrix_integer.hpp:321</a></div></div>
+<div class="ttc" id="a00167_html_ga3fb358a947f8ceaefddd75bce22cd947"><div class="ttname"><a href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">glm::mediump_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, mediump > mediump_umat3x2</div><div class="ttdoc">Medium-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00259">matrix_integer.hpp:259</a></div></div>
+<div class="ttc" id="a00167_html_ga05064e28b911be1af0503ddf6e6204a3"><div class="ttname"><a href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">glm::mediump_imat3x3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3x3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00114">matrix_integer.hpp:114</a></div></div>
+<div class="ttc" id="a00167_html_ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><div class="ttname"><a href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::imat2x3</a></div><div class="ttdeci">mediump_imat2x3 imat2x3</div><div class="ttdoc">Signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00377">matrix_integer.hpp:377</a></div></div>
+<div class="ttc" id="a00167_html_ga70fa2d05896aa83cbc8c07672a429b53"><div class="ttname"><a href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::umat4x2</a></div><div class="ttdeci">mediump_umat4x2 umat4x2</div><div class="ttdoc">Unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00474">matrix_integer.hpp:474</a></div></div>
+<div class="ttc" id="a00167_html_ga4efd6470c0edf9704d2244fc92dbc2a9"><div class="ttname"><a href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">glm::highp_imat3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00040">matrix_integer.hpp:40</a></div></div>
+<div class="ttc" id="a00167_html_ga7d43dd8332000f7f19379efa1b303599"><div class="ttname"><a href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">glm::highp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, highp > highp_imat4x2</div><div class="ttdoc">High-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00072">matrix_integer.hpp:72</a></div></div>
+<div class="ttc" id="a00167_html_gae53db595d36f49a299e180302795e3c9"><div class="ttname"><a href="a00167.html#gae53db595d36f49a299e180302795e3c9">glm::highp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4x4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00080">matrix_integer.hpp:80</a></div></div>
+<div class="ttc" id="a00167_html_ga7655dfee0d726e80d7a3b72f46d5fd35"><div class="ttname"><a href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">glm::lowp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, lowp > lowp_imat3x2</div><div class="ttdoc">Low-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00160">matrix_integer.hpp:160</a></div></div>
+<div class="ttc" id="a00167_html_ga1a61c706b31aa60fd7012b2b27765983"><div class="ttname"><a href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">glm::mediump_imat3x2</a></div><div class="ttdeci">tmat3x2< int, mediump > mediump_imat3x2</div><div class="ttdoc">Medium-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00110">matrix_integer.hpp:110</a></div></div>
+<div class="ttc" id="a00167_html_ga4cae85566f900debf930c41944b64691"><div class="ttname"><a href="a00167.html#ga4cae85566f900debf930c41944b64691">glm::umat2</a></div><div class="ttdeci">mediump_umat2 umat2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00438">matrix_integer.hpp:438</a></div></div>
+<div class="ttc" id="a00167_html_gaa08e27efc514088315ccbaf818f01880"><div class="ttname"><a href="a00167.html#gaa08e27efc514088315ccbaf818f01880">glm::mediump_imat2x4</a></div><div class="ttdeci">tmat2x4< int, mediump > mediump_imat2x4</div><div class="ttdoc">Medium-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00106">matrix_integer.hpp:106</a></div></div>
+<div class="ttc" id="a00167_html_gaa4732a240522ad9bc28144fda2fc14ec"><div class="ttname"><a href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::imat2x2</a></div><div class="ttdeci">mediump_imat2x2 imat2x2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00373">matrix_integer.hpp:373</a></div></div>
+<div class="ttc" id="a00167_html_ga0ffed083b64e4f764db0f446d2c49163"><div class="ttname"><a href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">glm::mediump_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2x2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00247">matrix_integer.hpp:247</a></div></div>
+<div class="ttc" id="a00167_html_gacf71e9abe57bcfd18b4b003421e306aa"><div class="ttname"><a href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">glm::highp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3x3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00213">matrix_integer.hpp:213</a></div></div>
+<div class="ttc" id="a00167_html_ga3d913d70c629aa7ad504739286328f1b"><div class="ttname"><a href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">glm::lowp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, lowp > lowp_imat3x4</div><div class="ttdoc">Low-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00168">matrix_integer.hpp:168</a></div></div>
+<div class="ttc" id="a00167_html_gabf8acdd33ce8951051edbca5200898aa"><div class="ttname"><a href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">glm::umat2x2</a></div><div class="ttdeci">mediump_umat2x2 umat2x2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00450">matrix_integer.hpp:450</a></div></div>
+<div class="ttc" id="a00167_html_gaf72e6d399c42985db6872c50f53d7eb8"><div class="ttname"><a href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::umat4x4</a></div><div class="ttdeci">mediump_umat4x4 umat4x4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00482">matrix_integer.hpp:482</a></div></div>
+<div class="ttc" id="a00167_html_ga96b0d26a33b81bb6a60ca0f39682f7eb"><div class="ttname"><a href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::imat4</a></div><div class="ttdeci">mediump_imat4 imat4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00369">matrix_integer.hpp:369</a></div></div>
+<div class="ttc" id="a00167_html_ga5085e3ff02abbac5e537eb7b89ab63b6"><div class="ttname"><a href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::umat3</a></div><div class="ttdeci">mediump_umat3 umat3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00442">matrix_integer.hpp:442</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8fb92b62e31528886cc728d3404ecc"><div class="ttname"><a href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">glm::lowp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, lowp > lowp_imat2x3</div><div class="ttdoc">Low-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00152">matrix_integer.hpp:152</a></div></div>
+<div class="ttc" id="a00167_html_gaa86bd9dc8463b46a46ee944948111676"><div class="ttname"><a href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">glm::lowp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, lowp > lowp_umat2x3</div><div class="ttdoc">Low-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00301">matrix_integer.hpp:301</a></div></div>
+<div class="ttc" id="a00167_html_ga038f68437155ffa3c2583a15264a8195"><div class="ttname"><a href="a00167.html#ga038f68437155ffa3c2583a15264a8195">glm::imat3</a></div><div class="ttdeci">mediump_imat3 imat3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00365">matrix_integer.hpp:365</a></div></div>
+<div class="ttc" id="a00167_html_ga1870da7578d5022b973a83155d386ab3"><div class="ttname"><a href="a00167.html#ga1870da7578d5022b973a83155d386ab3">glm::umat2x3</a></div><div class="ttdeci">mediump_umat2x3 umat2x3</div><div class="ttdoc">Unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00454">matrix_integer.hpp:454</a></div></div>
+<div class="ttc" id="a00167_html_ga8368cb49cb0bd5ac682a71d1eccc9a8c"><div class="ttname"><a href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">glm::highp_umat4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00193">matrix_integer.hpp:193</a></div></div>
+<div class="ttc" id="a00167_html_gae3ca9e28a9d2e5fce5e28593d27e370d"><div class="ttname"><a href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">glm::lowp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, lowp > lowp_umat4x3</div><div class="ttdoc">Low-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00325">matrix_integer.hpp:325</a></div></div>
+<div class="ttc" id="a00167_html_gac8d1db85d62244fd90d240227c7f51ad"><div class="ttname"><a href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">glm::mediump_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, mediump > mediump_umat4x2</div><div class="ttdoc">Medium-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00271">matrix_integer.hpp:271</a></div></div>
+<div class="ttc" id="a00167_html_ga7fc1f795f2abd0020c7b5204f4c83033"><div class="ttname"><a href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">glm::lowp_umat3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00288">matrix_integer.hpp:288</a></div></div>
+<div class="ttc" id="a00167_html_gac455e55e7cb32e31396a9d4613da046a"><div class="ttname"><a href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">glm::highp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2x2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00048">matrix_integer.hpp:48</a></div></div>
+<div class="ttc" id="a00167_html_ga815eb9fdf70edc45687cbcda07e97213"><div class="ttname"><a href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">glm::highp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, highp > highp_umat2x4</div><div class="ttdoc">High-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00205">matrix_integer.hpp:205</a></div></div>
+<div class="ttc" id="a00167_html_ga7d332d462f2c1ad5a65dc580d3d1aa39"><div class="ttname"><a href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">glm::mediump_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, mediump > mediump_umat4x3</div><div class="ttdoc">Medium-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00275">matrix_integer.hpp:275</a></div></div>
+<div class="ttc" id="a00167_html_ga655bfcca624f422aff308dcc99688ce8"><div class="ttname"><a href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">glm::mediump_imat4x4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4x4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00130">matrix_integer.hpp:130</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00167_html_gac2b0985b576fe0eba47227499aed2b3c"><div class="ttname"><a href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">glm::mediump_imat3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00089">matrix_integer.hpp:89</a></div></div>
+<div class="ttc" id="a00167_html_ga7ecc585b71766cfa96bd54a595bea1fb"><div class="ttname"><a href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">glm::mediump_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, mediump > mediump_umat2x3</div><div class="ttdoc">Medium-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00251">matrix_integer.hpp:251</a></div></div>
+<div class="ttc" id="a00167_html_ga6e9ce23496d8b08dfc302d4039694b58"><div class="ttname"><a href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::imat3x4</a></div><div class="ttdeci">mediump_imat3x4 imat3x4</div><div class="ttdoc">Signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00393">matrix_integer.hpp:393</a></div></div>
+<div class="ttc" id="a00167_html_gac23667a99ae1ec649b5e55cd5a05b833"><div class="ttname"><a href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">glm::mediump_umat4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00242">matrix_integer.hpp:242</a></div></div>
+<div class="ttc" id="a00167_html_ga892b53e26d36763f380b08a5768dee6b"><div class="ttname"><a href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">glm::lowp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, lowp > lowp_imat2x4</div><div class="ttdoc">Low-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00156">matrix_integer.hpp:156</a></div></div>
+<div class="ttc" id="a00167_html_gacce460d54216438bb577bf8c9d68299c"><div class="ttname"><a href="a00167.html#gacce460d54216438bb577bf8c9d68299c">glm::highp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3x3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00064">matrix_integer.hpp:64</a></div></div>
+<div class="ttc" id="a00167_html_ga2dce1c00ed50fd09fe349de3713d96db"><div class="ttname"><a href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">glm::lowp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, lowp > lowp_umat3x4</div><div class="ttdoc">Low-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00317">matrix_integer.hpp:317</a></div></div>
+<div class="ttc" id="a00167_html_ga402d169fc3cdca5f3ea47a358a7b7c67"><div class="ttname"><a href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">glm::lowp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3x3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00313">matrix_integer.hpp:313</a></div></div>
+<div class="ttc" id="a00167_html_ga24716579cf155f4e042542808f83978c"><div class="ttname"><a href="a00167.html#ga24716579cf155f4e042542808f83978c">glm::mediump_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4x4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00279">matrix_integer.hpp:279</a></div></div>
+<div class="ttc" id="a00167_html_gae7b96c808a36fbe87f41af1c77b7941c"><div class="ttname"><a href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">glm::highp_umat2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00185">matrix_integer.hpp:185</a></div></div>
+<div class="ttc" id="a00167_html_ga57936a3998e992370e59a223e0ee4fd4"><div class="ttname"><a href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">glm::umat2x4</a></div><div class="ttdeci">mediump_umat2x4 umat2x4</div><div class="ttdoc">Unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00458">matrix_integer.hpp:458</a></div></div>
+<div class="ttc" id="a00167_html_ga5b7e9af5024e1a164db6419f67ecfc9a"><div class="ttname"><a href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">glm::mediump_imat2x3</a></div><div class="ttdeci">tmat2x3< int, mediump > mediump_imat2x3</div><div class="ttdoc">Medium-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00102">matrix_integer.hpp:102</a></div></div>
+<div class="ttc" id="a00167_html_ga6edbf193ad6c4309e31262165f2655e7"><div class="ttname"><a href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">glm::highp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, highp > highp_umat3x4</div><div class="ttdoc">High-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00217">matrix_integer.hpp:217</a></div></div>
+<div class="ttc" id="a00167_html_ga5bfe58853451fbc1f1ef6ce1f93c5e31"><div class="ttname"><a href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">glm::lowp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2x2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00148">matrix_integer.hpp:148</a></div></div>
+<div class="ttc" id="a00167_html_ga3c035fec7db0d671ec8f9f1f0d05bed0"><div class="ttname"><a href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">glm::lowp_imat2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00135">matrix_integer.hpp:135</a></div></div>
+<div class="ttc" id="a00167_html_gaa9f8144beebdefd85e2a9ac480e7608a"><div class="ttname"><a href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">glm::highp_imat2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00036">matrix_integer.hpp:36</a></div></div>
+<div class="ttc" id="a00167_html_gac4abd549f2e521c7f40f53b6235c450e"><div class="ttname"><a href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">glm::mediump_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, mediump > mediump_umat2x4</div><div class="ttdoc">Medium-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00255">matrix_integer.hpp:255</a></div></div>
+<div class="ttc" id="a00167_html_ga87581417945411f75cb31dd6ca1dba98"><div class="ttname"><a href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">glm::umat4x3</a></div><div class="ttdeci">mediump_umat4x3 umat4x3</div><div class="ttdoc">Unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00478">matrix_integer.hpp:478</a></div></div>
+<div class="ttc" id="a00167_html_ga1406406e396b56bde3c7c0722f657064"><div class="ttname"><a href="a00167.html#ga1406406e396b56bde3c7c0722f657064">glm::lowp_umat2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00284">matrix_integer.hpp:284</a></div></div>
+<div class="ttc" id="a00167_html_ga4860b4b01430bdb70643808c8d3bf5cb"><div class="ttname"><a href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">glm::highp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2x2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00197">matrix_integer.hpp:197</a></div></div>
+<div class="ttc" id="a00167_html_gaa60b19d7cadbaa56bed1e6e0047af147"><div class="ttname"><a href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">glm::highp_umat3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00189">matrix_integer.hpp:189</a></div></div>
+<div class="ttc" id="a00167_html_ga5a9d62e44668ca2222f0362f9c99d9cc"><div class="ttname"><a href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">glm::mediump_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, mediump > mediump_umat3x4</div><div class="ttdoc">Medium-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00267">matrix_integer.hpp:267</a></div></div>
+<div class="ttc" id="a00167_html_ga1526c62951b04f5cd73f541f7b3b7d8d"><div class="ttname"><a href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">glm::mediump_imat4x3</a></div><div class="ttdeci">tmat4x3< int, mediump > mediump_imat4x3</div><div class="ttdoc">Medium-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00126">matrix_integer.hpp:126</a></div></div>
+<div class="ttc" id="a00167_html_ga73b855cc40e5d8202b7ab38461326d65"><div class="ttname"><a href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">glm::highp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, highp > highp_imat2x4</div><div class="ttdoc">High-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00056">matrix_integer.hpp:56</a></div></div>
+<div class="ttc" id="a00167_html_ga43ed5e4f475b6f4cad7cba78f29c405b"><div class="ttname"><a href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::imat4x4</a></div><div class="ttdeci">mediump_imat4x4 imat4x4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00405">matrix_integer.hpp:405</a></div></div>
+<div class="ttc" id="a00167_html_gad73943020bb49a072317ecfc52d587f0"><div class="ttname"><a href="a00167.html#gad73943020bb49a072317ecfc52d587f0">glm::lowp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, lowp > lowp_umat3x2</div><div class="ttdoc">Low-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00309">matrix_integer.hpp:309</a></div></div>
+<div class="ttc" id="a00167_html_ga1582c5dc83e49a7e53bb0b94bef9de54"><div class="ttname"><a href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">glm::mediump_imat4x2</a></div><div class="ttdeci">tmat4x2< int, mediump > mediump_imat4x2</div><div class="ttdoc">Medium-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00122">matrix_integer.hpp:122</a></div></div>
+<div class="ttc" id="a00167_html_ga330140b22a9449caab308f2c69bf4c80"><div class="ttname"><a href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">glm::lowp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4x4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00180">matrix_integer.hpp:180</a></div></div>
+<div class="ttc" id="a00167_html_gac351446661e5a8168473ff7b3b5ac3b5"><div class="ttname"><a href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">glm::highp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, highp > highp_umat2x3</div><div class="ttdoc">High-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00201">matrix_integer.hpp:201</a></div></div>
+<div class="ttc" id="a00167_html_ga9d8faafdca42583d67e792dd038fc668"><div class="ttname"><a href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">glm::imat2x4</a></div><div class="ttdeci">mediump_imat2x4 imat2x4</div><div class="ttdoc">Signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00381">matrix_integer.hpp:381</a></div></div>
+<div class="ttc" id="a00167_html_gab8068521c0ad6990373d27d87d333084"><div class="ttname"><a href="a00167.html#gab8068521c0ad6990373d27d87d333084">glm::highp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4x4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00229">matrix_integer.hpp:229</a></div></div>
+<div class="ttc" id="a00167_html_gaabe04f9948d4a213bb1c20137de03e01"><div class="ttname"><a href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">glm::imat2</a></div><div class="ttdeci">mediump_imat2 imat2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00361">matrix_integer.hpp:361</a></div></div>
+<div class="ttc" id="a00167_html_ga8ce7ef51d8b2c1901fa5414deccbc3fa"><div class="ttname"><a href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::imat4x2</a></div><div class="ttdeci">mediump_imat4x2 imat4x2</div><div class="ttdoc">Signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00397">matrix_integer.hpp:397</a></div></div>
+<div class="ttc" id="a00167_html_gafe68c1cf2b379a9a11d1a11c9c2f8884"><div class="ttname"><a href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">glm::lowp_umat4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00292">matrix_integer.hpp:292</a></div></div>
+<div class="ttc" id="a00167_html_ga1f0cea730f6c13b16e511bd2d63507a3"><div class="ttname"><a href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">glm::lowp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2x2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00297">matrix_integer.hpp:297</a></div></div>
+<div class="ttc" id="a00167_html_ga3fdfce509d30bdd7778b8b156cb968df"><div class="ttname"><a href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">glm::lowp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, lowp > lowp_imat4x2</div><div class="ttdoc">Low-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00172">matrix_integer.hpp:172</a></div></div>
+<div class="ttc" id="a00167_html_ga6a9945878f99294cfde40c6c3a867d69"><div class="ttname"><a href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">glm::lowp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, lowp > lowp_imat4x3</div><div class="ttdoc">Low-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00176">matrix_integer.hpp:176</a></div></div>
+<div class="ttc" id="a00167_html_ga9cd7fa637a4a6788337f45231fad9e1a"><div class="ttname"><a href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::umat3x2</a></div><div class="ttdeci">mediump_umat3x2 umat3x2</div><div class="ttdoc">Unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00462">matrix_integer.hpp:462</a></div></div>
+<div class="ttc" id="a00167_html_gae7c78ff3fc4309605ab0fa186c8d48ba"><div class="ttname"><a href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::umat3x4</a></div><div class="ttdeci">mediump_umat3x4 umat3x4</div><div class="ttdoc">Unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00470">matrix_integer.hpp:470</a></div></div>
+<div class="ttc" id="a00167_html_ga7322b97f1be10c83290ab57ef784d493"><div class="ttname"><a href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">glm::mediump_umat2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00234">matrix_integer.hpp:234</a></div></div>
+<div class="ttc" id="a00167_html_ga6aacc960f62e8f7d2fe9d32d5050e7a4"><div class="ttname"><a href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::imat3x3</a></div><div class="ttdeci">mediump_imat3x3 imat3x3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00389">matrix_integer.hpp:389</a></div></div>
+<div class="ttc" id="a00167_html_gad4809dbfb1bfcf222d7b34a97a8eafe5"><div class="ttname"><a href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">glm::mediump_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3x3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00263">matrix_integer.hpp:263</a></div></div>
+<div class="ttc" id="a00167_html_gad3d7b23bdb4ed9b7d53c9db792db9bb4"><div class="ttname"><a href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">glm::lowp_imat4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00143">matrix_integer.hpp:143</a></div></div>
+<div class="ttc" id="a00167_html_gab3d5c6aaeb5815f8f080305888f6828f"><div class="ttname"><a href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">glm::lowp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3x3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00164">matrix_integer.hpp:164</a></div></div>
+<div class="ttc" id="a00167_html_ga3f8e55e14a6fc61850f8c0df9b4ff655"><div class="ttname"><a href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">glm::mediump_imat2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00085">matrix_integer.hpp:85</a></div></div>
+<div class="ttc" id="a00167_html_ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><div class="ttname"><a href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::umat3x3</a></div><div class="ttdeci">mediump_umat3x3 umat3x3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00466">matrix_integer.hpp:466</a></div></div>
+<div class="ttc" id="a00167_html_ga551ad2e4e0304c67451ffbadeef0d615"><div class="ttname"><a href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">glm::mediump_imat4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00093">matrix_integer.hpp:93</a></div></div>
+<div class="ttc" id="a00167_html_ga93961d3aac6efa36dc3f9cfa7e9056e6"><div class="ttname"><a href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">glm::mediump_umat3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00238">matrix_integer.hpp:238</a></div></div>
+<div class="ttc" id="a00167_html_ga742be484e56e08ef637f8ec4ab7c8bb2"><div class="ttname"><a href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">glm::lowp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4x4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00329">matrix_integer.hpp:329</a></div></div>
+<div class="ttc" id="a00167_html_ga5f5f1e6dc06b72216463a425b2f7613e"><div class="ttname"><a href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">glm::highp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, highp > highp_imat2x3</div><div class="ttdoc">High-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00052">matrix_integer.hpp:52</a></div></div>
+<div class="ttc" id="a00167_html_ga7b6c64600bad79d735fa6bec843b2bb4"><div class="ttname"><a href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">glm::lowp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, lowp > lowp_umat2x4</div><div class="ttdoc">Low-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00305">matrix_integer.hpp:305</a></div></div>
+<div class="ttc" id="a00167_html_ga38bc7bb6494e344185df596deeb4544c"><div class="ttname"><a href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">glm::umat4</a></div><div class="ttdeci">mediump_umat4 umat4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00446">matrix_integer.hpp:446</a></div></div>
+<div class="ttc" id="a00167_html_ga7b33bbe4f12c060892bd3cc8d4cd737f"><div class="ttname"><a href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::imat3x2</a></div><div class="ttdeci">mediump_imat3x2 imat3x2</div><div class="ttdoc">Signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00385">matrix_integer.hpp:385</a></div></div>
+<div class="ttc" id="a00167_html_ga159ce04cc638ff4db755542cd8f758cb"><div class="ttname"><a href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">glm::highp_imat4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00044">matrix_integer.hpp:44</a></div></div>
+<div class="ttc" id="a00167_html_gad4fea24b4100e21ed7742c91e5458d49"><div class="ttname"><a href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">glm::highp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, highp > highp_imat3x4</div><div class="ttdoc">High-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00068">matrix_integer.hpp:68</a></div></div>
+<div class="ttc" id="a00167_html_gab1d8e627b6a0b21c9b5e599a89132d8f"><div class="ttname"><a href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">glm::highp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, highp > highp_umat3x2</div><div class="ttdoc">High-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00209">matrix_integer.hpp:209</a></div></div>
+<div class="ttc" id="a00167_html_ga0c66b9b7c10a6017a58a03489c8d4c73"><div class="ttname"><a href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">glm::highp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, highp > highp_imat4x3</div><div class="ttdoc">High-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00076">matrix_integer.hpp:76</a></div></div>
+<div class="ttc" id="a00167_html_ga899a376888652fe3c03718641812bb27"><div class="ttname"><a href="a00167.html#ga899a376888652fe3c03718641812bb27">glm::highp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, highp > highp_umat4x3</div><div class="ttdoc">High-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00225">matrix_integer.hpp:225</a></div></div>
+<div class="ttc" id="a00167_html_gaaba8a59eac3e5c0b3aaa9b35c1f10292"><div class="ttname"><a href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">glm::highp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, highp > highp_umat4x2</div><div class="ttdoc">High-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00064_source.html#l00221">matrix_integer.hpp:221</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00072.html b/doc/api/a00065.html
similarity index 74%
copy from doc/api/a00072.html
copy to doc/api/a00065.html
index 81fd34b..fbdb180 100644
--- a/doc/api/a00072.html
+++ b/doc/api/a00065.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_interpolation.hpp File Reference</title>
+<title>0.9.8: matrix_interpolation.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,35 +52,29 @@
</div><!--header-->
<div class="contents">
-<p><a href="a00072_source.html">Go to the source code of this file.</a></p>
+<p><a href="a00065_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00209.html">GLM_GTX_matrix_interpolation</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-03-05 / 2011-06-07 </dd></dl>
+<div class="textblock"><p><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> </p>
<dl class="section author"><dt>Author</dt><dd>Ghenadii Ursachi (<a href="#" onclick="location.href='mai'+'lto:'+'the'+'.a'+'ste'+'ro'+'th@'+'gm'+'ail'+'.c'+'om'; return false;">the.a<span style="display: none;">.nosp at m.</span>ster<span style="display: none;">.nosp at m.</span>oth at g<span style="display: none;">.nosp at m.</span>mail<span style="display: none;">.nosp at m.</span>.com</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00072_source.html">matrix_interpolation.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00065_source.html">matrix_interpolation.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00065_source.html b/doc/api/a00065_source.html
index d18acc9..00f3069 100644
--- a/doc/api/a00065_source.html
+++ b/doc/api/a00065_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x3.hpp Source File</title>
+<title>0.9.8: matrix_interpolation.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,33 +41,58 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x3.hpp</div> </div>
+<div class="title">matrix_interpolation.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">detail/type_mat4x3.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat4x3<float, lowp> <a class="code" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat4x3<float, mediump> <a class="code" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, highp > highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00303">type_mat.hpp:303</a></div></div>
-<div class="ttc" id="a00164_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, lowp > lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00289">type_mat.hpp:289</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3< float, mediump > mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00296">type_mat.hpp:296</a></div></div>
-<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">type_mat4x3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<a href="a00065.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_interpolation extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tmat4x4<T, P> <span class="keyword">const</span> & mat,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tvec3<T, P> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> T & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> T <span class="keyword">const</span> <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> tmat4x4<T, P> <span class="keyword">const</span> & mat);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> tmat4x4<T, P> <span class="keyword">const</span> & m1,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tmat4x4<T, P> <span class="keyword">const</span> & m2,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> T <span class="keyword">const</span> delta);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "matrix_interpolation.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00205_html_ga82d4bc058e9628cb2ea1d4e117a0cf39"><div class="ttname"><a href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">glm::axisAngleMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix(tvec3< T, P > const &axis, T const angle)</div><div class="ttdoc">Build a matrix from axis and angle. </div></div>
+<div class="ttc" id="a00205_html_ga9aef292eb5f29bdbb58a53ef4281af92"><div class="ttname"><a href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">glm::axisAngle</a></div><div class="ttdeci">GLM_FUNC_DECL void axisAngle(tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</div><div class="ttdoc">Get the axis and angle of the rotation from a matrix. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00205_html_ga6b8170aa4cf43caf81400696ebb38afe"><div class="ttname"><a href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">glm::extractMatrixRotation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation(tmat4x4< T, P > const &mat)</div><div class="ttdoc">Extracts the rotation part of a matrix. </div></div>
+<div class="ttc" id="a00205_html_ga45099a92c5c704503565619ac2bcd5c6"><div class="ttname"><a href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">glm::interpolate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > interpolate(tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</div><div class="ttdoc">Build a interpolation of 4 * 4 matrixes. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00066.html b/doc/api/a00066.html
index e9d3ffd..93a36b5 100644
--- a/doc/api/a00066.html
+++ b/doc/api/a00066.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x4.hpp File Reference</title>
+<title>0.9.8: matrix_inverse.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mat4x4.hpp File Reference</div> </div>
+<div class="title">matrix_inverse.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00066_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &m)</td></tr>
+<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &m)</td></tr>
+<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00066_source.html">mat4x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00066_source.html">matrix_inverse.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00066_source.html b/doc/api/a00066_source.html
index 1924241..f140a9a 100644
--- a/doc/api/a00066_source.html
+++ b/doc/api/a00066_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mat4x4.hpp Source File</title>
+<title>0.9.8: matrix_inverse.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,42 +41,43 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mat4x4.hpp</div> </div>
+<div class="title">matrix_inverse.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00066.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">detail/type_mat4x4.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00337">type_mat.hpp:337</a></div></div>
-<div class="ttc" id="a00164_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00330">type_mat.hpp:330</a></div></div>
-<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_mat4x4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00316">type_mat.hpp:316</a></div></div>
-<div class="ttc" id="a00164_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00351">type_mat.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00323">type_mat.hpp:323</a></div></div>
-<div class="ttc" id="a00164_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00164.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00344">type_mat.hpp:344</a></div></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../matrix.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_inverse extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a>(genType <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL genType <a class="code" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a>(genType <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "matrix_inverse.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00168_html_gab213cd0e3ead5f316d583f99d6312008"><div class="ttname"><a href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">glm::inverseTranspose</a></div><div class="ttdeci">GLM_FUNC_DECL genType inverseTranspose(genType const &m)</div><div class="ttdoc">Compute the inverse transpose of a matrix. </div></div>
+<div class="ttc" id="a00168_html_gae0fcc5fc8783291f9702272de428fa0e"><div class="ttname"><a href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">glm::affineInverse</a></div><div class="ttdeci">GLM_FUNC_DECL genType affineInverse(genType const &m)</div><div class="ttdoc">Fast matrix inverse for affine matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00067.html b/doc/api/a00067.html
index c317f8a..fe62080 100644
--- a/doc/api/a00067.html
+++ b/doc/api/a00067.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix.hpp File Reference</title>
+<title>0.9.8: matrix_major_storage.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,65 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix.hpp File Reference</div> </div>
+<div class="title">matrix_major_storage.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00067_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
+<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
+<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
+<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
+<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
+<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
+<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
+<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
+<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00067_source.html">matrix.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00067_source.html">matrix_major_storage.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00067_source.html b/doc/api/a00067_source.html
index fb3c749..cf16e86 100644
--- a/doc/api/a00067_source.html
+++ b/doc/api/a00067_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix.hpp Source File</title>
+<title>0.9.8: matrix_major_storage.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,19 +41,97 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix.hpp</div> </div>
+<div class="title">matrix_major_storage.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00067.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00033.html">detail/func_matrix.hpp</a>"</span></div>
-<div class="ttc" id="a00033_html"><div class="ttname"><a href="a00033.html">func_matrix.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_major_storage extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec2<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec4<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec4<T, P> <span class="keyword">const</span> & v2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec4<T, P> <span class="keyword">const</span> & v3, </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec4<T, P> <span class="keyword">const</span> & v4);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> tvec2<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> tvec4<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tvec4<T, P> <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> tvec4<T, P> <span class="keyword">const</span> & v3, </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> tvec4<T, P> <span class="keyword">const</span> & v4);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#include "matrix_major_storage.inl"</span></div>
+<div class="ttc" id="a00206_html_ga7592acfd27da055e2d7c39564cf8803d"><div class="ttname"><a href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">glm::colMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > colMajor4(tmat4x4< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga42a006aa66198452bd3c89415f892196"><div class="ttname"><a href="a00206.html#ga42a006aa66198452bd3c89415f892196">glm::rowMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > rowMajor2(tmat2x2< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga38537061135b55e7a053926ca55e6e20"><div class="ttname"><a href="a00206.html#ga38537061135b55e7a053926ca55e6e20">glm::rowMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > rowMajor3(tmat3x3< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga5cfd25de9d5b4c6a825085f38ddfeff7"><div class="ttname"><a href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">glm::colMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > colMajor2(tmat2x2< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00206_html_gaa93f3dcc47ced18e5db4a853363d9386"><div class="ttname"><a href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">glm::colMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > colMajor3(tmat3x3< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="ttc" id="a00206_html_ga85771a88c114a088a0414bcfce55e729"><div class="ttname"><a href="a00206.html#ga85771a88c114a088a0414bcfce55e729">glm::rowMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rowMajor4(tmat4x4< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00068.html b/doc/api/a00068.html
index 2728d67..db84d16 100644
--- a/doc/api/a00068.html
+++ b/doc/api/a00068.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_access.hpp File Reference</title>
+<title>0.9.8: matrix_operation.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_access.hpp File Reference</div> </div>
+<div class="title">matrix_operation.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,31 +56,39 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &m, length_t index)</td></tr>
-<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &m, length_t index, typename genType::col_type const &x)</td></tr>
-<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &m, length_t index)</td></tr>
-<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &m, length_t index, typename genType::row_type const &x)</td></tr>
-<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4< T, P > const &v)</td></tr>
+<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00171.html">GLM_GTC_matrix_access</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-27 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00068_source.html">matrix_access.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00068_source.html">matrix_operation.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00068_source.html b/doc/api/a00068_source.html
index 08a5368..f36fde1 100644
--- a/doc/api/a00068_source.html
+++ b/doc/api/a00068_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_access.hpp Source File</title>
+<title>0.9.8: matrix_operation.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,55 +41,76 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_access.hpp</div> </div>
+<div class="title">matrix_operation.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00068.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_access extension included")</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::row_type <a class="code" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> genType <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> length_t index);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL genType <a class="code" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> genType <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> length_t index,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typename</span> genType::row_type <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::col_type <a class="code" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> genType <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> length_t index);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL genType <a class="code" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> genType <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> length_t index,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">typename</span> genType::col_type <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "matrix_access.inl"</span></div>
-<div class="ttc" id="a00171_html_ga9e757377523890e8b80c5843dbe4dd15"><div class="ttname"><a href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">glm::column</a></div><div class="ttdeci">GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)</div><div class="ttdoc">Set a specific column to a matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00171_html_gaadcc64829aadf4103477679e48c7594f"><div class="ttname"><a href="a00171.html#gaadcc64829aadf4103477679e48c7594f">glm::row</a></div><div class="ttdeci">GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)</div><div class="ttdoc">Set a specific row to a matrix. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_operation extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a>(</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tmat2x3<T, P> <a class="code" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL tmat2x4<T, P> <a class="code" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL tmat3x2<T, P> <a class="code" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a>(</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tmat3x4<T, P> <a class="code" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a>(</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat4x2<T, P> <a class="code" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a>(</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tmat4x3<T, P> <a class="code" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a>(</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "matrix_operation.inl"</span></div>
+<div class="ttc" id="a00207_html_gade576e044d8e52f343166f665589d782"><div class="ttname"><a href="a00207.html#gade576e044d8e52f343166f665589d782">glm::diagonal4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > diagonal4x4(tvec4< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00207_html_ga49b37c819cf6dd8e35112ed1a13d45a3"><div class="ttname"><a href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">glm::diagonal2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, P > diagonal2x4(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga8e817dba22f2305cdebae07bbbe0360c"><div class="ttname"><a href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">glm::diagonal3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > diagonal3x3(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><div class="ttname"><a href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">glm::diagonal4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2< T, P > diagonal4x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga763817f07d6a94b722a48adfa87a35db"><div class="ttname"><a href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">glm::diagonal2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3< T, P > diagonal2x3(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga01dc503262dba9c457113d131fc8c024"><div class="ttname"><a href="a00207.html#ga01dc503262dba9c457113d131fc8c024">glm::diagonal2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > diagonal2x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga586e1ced91fd8a7c414186a200f13532"><div class="ttname"><a href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">glm::diagonal3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2< T, P > diagonal3x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_gae3f85af86c18c80f2acbe3223feb8e81"><div class="ttname"><a href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">glm::diagonal3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, P > diagonal3x4(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="ttc" id="a00207_html_ga4242ea5681f81539e0c5b54fadcd9ddf"><div class="ttname"><a href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">glm::diagonal4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3< T, P > diagonal4x3(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00069.html b/doc/api/a00069.html
index 543624f..80ac133 100644
--- a/doc/api/a00069.html
+++ b/doc/api/a00069.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_cross_product.hpp File Reference</title>
+<title>0.9.8: matrix_query.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_cross_product.hpp File Reference</div> </div>
+<div class="title">matrix_query.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,27 +56,38 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00207.html">GLM_GTX_matrix_cross_product</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00208.html">GLM_GTX_matrix_query</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00069_source.html">matrix_cross_product.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00069_source.html">matrix_query.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00069_source.html b/doc/api/a00069_source.html
index faebf03..d5c4262 100644
--- a/doc/api/a00069_source.html
+++ b/doc/api/a00069_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_cross_product.hpp Source File</title>
+<title>0.9.8: matrix_query.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,36 +46,57 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_cross_product.hpp</div> </div>
+<div class="title">matrix_query.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00069.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_cross_product extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "matrix_cross_product.inl"</span></div>
-<div class="ttc" id="a00207_html_ga2d46cc5253761c214aa5c782865156b1"><div class="ttname"><a href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">glm::matrixCross4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > matrixCross4(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
-<div class="ttc" id="a00207_html_ga04385b2e3a93c78d116b51af2d8d708e"><div class="ttname"><a href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">glm::matrixCross3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > matrixCross3(tvec3< T, P > const &x)</div><div class="ttdoc">Build a cross product matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/vector_query.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_query extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a>(matType<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a>(matType<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "matrix_query.inl"</span></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00208_html_ga326de496972051413c7b44b85fc9cb6e"><div class="ttname"><a href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(tmat4x4< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is a null matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00208_html_gafc1ce12c738b8c5d007179e615609330"><div class="ttname"><a href="a00208.html#gafc1ce12c738b8c5d007179e615609330">glm::isIdentity</a></div><div class="ttdeci">GLM_FUNC_DECL bool isIdentity(matType< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is an identity matrix. </div></div>
+<div class="ttc" id="a00208_html_ga934b673ec0e16d79eca0ca9dbb5d6d8b"><div class="ttname"><a href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(tmat4x4< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is a normalized matrix. </div></div>
+<div class="ttc" id="a00208_html_gab2cb5d23df77b4e4e63ad2965acd31b3"><div class="ttname"><a href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">glm::isOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool isOrthogonal(matType< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is an orthonormalized matrix. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00070.html b/doc/api/a00070.html
index d9d1cda..088f295 100644
--- a/doc/api/a00070.html
+++ b/doc/api/a00070.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_decompose.hpp File Reference</title>
+<title>0.9.8: matrix_transform.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_decompose.hpp File Reference</div> </div>
+<div class="title">matrix_transform.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,22 +56,97 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)< [...]
-<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:gad0e184273bdacbe769e5cd81069e48ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga79575023763df88dff1bf8255a42d0be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
+<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template<typename T , precision P, typename U > </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
+<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00208.html">GLM_GTX_matrix_decompose</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-08-29 / 2014-08-29 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<dd>
+<a class="el" href="a00233.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00070_source.html">matrix_decompose.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00070_source.html">matrix_transform.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00070_source.html b/doc/api/a00070_source.html
index 82477bf..a3a734a 100644
--- a/doc/api/a00070_source.html
+++ b/doc/api/a00070_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_decompose.hpp Source File</title>
+<title>0.9.8: matrix_transform.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,44 +41,243 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_decompose.hpp</div> </div>
+<div class="title">matrix_transform.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00070.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtc/matrix_transform.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_decompose extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tmat4x4<T, P> <span class="keyword">const</span> & modelMatrix,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec3<T, P> & <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, tquat<T, P> & <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & <a class="code" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "matrix_decompose.inl"</span></div>
-<div class="ttc" id="a00174_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00208_html_ga0f1245817507156b337798a253577c8b"><div class="ttname"><a href="a00208.html#ga0f1245817507156b337798a253577c8b">glm::decompose</a></div><div class="ttdeci">GLM_FUNC_DECL bool decompose(tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)</div><div class="ttdoc">Decomposes a model matrix [...]
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_transform extension included")</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>(</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> T left,</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> T right,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> T bottom,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> T top,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> T zNear,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> T zFar);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a>(</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> T left,</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> T right,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> T bottom,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> T top,</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> T zNear,</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> T zFar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a>(</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> T left,</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> T right,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> T bottom,</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> T top,</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> T zNear,</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> T zFar);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> T left,</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> T right,</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> T bottom,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> T top);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a>(</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> T left,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> T right,</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> T bottom,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> T top,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> T near,</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> T far);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a>(</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> T left,</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> T right,</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> T bottom,</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> T top,</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> T near,</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> T far);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a>(</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> T left,</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> T right,</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> T bottom,</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> T top,</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> T near,</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> T far);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>(</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> T fovy,</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> T aspect,</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> T near,</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> T far);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a>(</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> T fovy,</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> T aspect,</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> T near,</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> T far);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a>(</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> T fovy,</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> T aspect,</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> T near,</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> T far);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a>(</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> T fov,</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> T width,</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> T height,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> T near,</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> T far);</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a>(</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> T fov,</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> T width,</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> T height,</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> T near,</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> T far);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a>(</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> T fov,</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> T width,</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> T height,</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> T near,</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> T far);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a>(</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a>(</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a>(</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> T fovy, T aspect, T near);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> T fovy, T aspect, T near, T ep);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a>(</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> tvec3<T, P> <span class="keyword">const</span> & obj,</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> tmat4x4<T, P> <span class="keyword">const</span> & model,</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> tmat4x4<T, P> <span class="keyword">const</span> & <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a>(</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> tvec3<T, P> <span class="keyword">const</span> & win,</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> tmat4x4<T, P> <span class="keyword">const</span> & model,</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> tmat4x4<T, P> <span class="keyword">const</span> & <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a>(</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> tvec2<T, P> <span class="keyword">const</span> & center,</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> tvec2<T, P> <span class="keyword">const</span> & delta,</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a>(</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a>(</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a>(</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor">#include "matrix_transform.inl"</span></div>
+<div class="ttc" id="a00169_html_ga79575023763df88dff1bf8255a42d0be"><div class="ttname"><a href="a00169.html#ga79575023763df88dff1bf8255a42d0be">glm::infinitePerspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > infinitePerspectiveRH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite...</div></div>
+<div class="ttc" id="a00219_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
+<div class="ttc" id="a00169_html_gacd0c077ec7b58a575855e29cb5fb586d"><div class="ttname"><a href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">glm::lookAtLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAtLH(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a left handed look at view matrix. </div></div>
+<div class="ttc" id="a00169_html_gada6deb989d4b553fe0f7e3279f3afae1"><div class="ttname"><a href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix with default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga79f704ad91a5f0d68abd88c66c8186e5"><div class="ttname"><a href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...</div></div>
+<div class="ttc" id="a00169_html_gaf8eef81da1ad09f6a8920101c01eaae4"><div class="ttname"><a href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">glm::lookAt</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAt(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a look at view matrix based on the default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga161b1df124348f232d994ba7958e4815"><div class="ttname"><a href="a00169.html#ga161b1df124348f232d994ba7958e4815">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rotate(tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </div></div>
+<div class="ttc" id="a00169_html_gad743556abd138264d4f06f4ca27f1d7e"><div class="ttname"><a href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">glm::project</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > project(tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</div><div class="ttdoc">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates [...]
+<div class="ttc" id="a00169_html_gae705a2f19c3ef5ef880bd6c92759cf2d"><div class="ttname"><a href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left handed perspective projection matrix based on a field of view. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00169_html_ga2876d9313334980b94292d2ec169088e"><div class="ttname"><a href="a00169.html#ga2876d9313334980b94292d2ec169088e">glm::lookAtRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAtRH(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a right handed look at view matrix. </div></div>
+<div class="ttc" id="a00169_html_ga07cd8df791bf90dcb782645fe0b21261"><div class="ttname"><a href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right handed perspective projection matrix based on a field of view. </div></div>
+<div class="ttc" id="a00169_html_gae9146e2c550fc8646299e4b900238145"><div class="ttname"><a href="a00169.html#gae9146e2c550fc8646299e4b900238145">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness. </div></div>
+<div class="ttc" id="a00169_html_gaa50fce7f50b5d5da881ed30f5532a921"><div class="ttname"><a href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
+<div class="ttc" id="a00169_html_ga71503df1e691b12cc2d45e64fd0628fe"><div class="ttname"><a href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">glm::orthoLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using left-handedness. </div></div>
+<div class="ttc" id="a00169_html_gada0aaaee76f1fd3c272698c8eca735a1"><div class="ttname"><a href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">glm::orthoRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)</div><div class="ttdoc">Creates a matrix for an orthographic parallel viewing volume, using right-handedness. </div></div>
+<div class="ttc" id="a00169_html_gaee134ab77c6c5548a6ebf4e8e476c6ed"><div class="ttname"><a href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > translate(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a translation 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00169_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
+<div class="ttc" id="a00169_html_ga47af534da2b28effa4c7945ec82ccd9d"><div class="ttname"><a href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">glm::infinitePerspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > infinitePerspectiveLH(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite...</div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00169_html_gad0e184273bdacbe769e5cd81069e48ed"><div class="ttname"><a href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">glm::frustumRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > frustumRH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a right handed frustum matrix. </div></div>
+<div class="ttc" id="a00169_html_ga82a558de3ce42cbeed0f6ec292a4e1b3"><div class="ttname"><a href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">glm::unProject</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > unProject(tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</div><div class="ttdoc">Map the specified window coordinates (win.x, win.y, win.z) into object coordin [...]
+<div class="ttc" id="a00169_html_ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><div class="ttname"><a href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right handed, symetric perspective-view frustum. </div></div>
+<div class="ttc" id="a00169_html_ga9026c77505b99990f68826f27c267dc5"><div class="ttname"><a href="a00169.html#ga9026c77505b99990f68826f27c267dc5">glm::pickMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > pickMatrix(tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</div><div class="ttdoc">Define a picking region. </div></div>
+<div class="ttc" id="a00169_html_ga75b1c1d0ee1f80c1e873605adeb1838c"><div class="ttname"><a href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">glm::frustumLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > frustumLH(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a left handed frustum matrix. </div></div>
+<div class="ttc" id="a00169_html_ga34048da27c559f1ac8e9550d169dd6f3"><div class="ttname"><a href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left handed, symetric perspective-view frustum. </div></div>
+<div class="ttc" id="a00169_html_ga45b1b64f99255c07119b4f1aaed04dd7"><div class="ttname"><a href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > ortho(T left, T right, T bottom, T top)</div><div class="ttdoc">Creates a matrix for projecting two-dimensional coordinates onto the screen. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00071.html b/doc/api/a00071.html
index c2ede18..8d5091d 100644
--- a/doc/api/a00071.html
+++ b/doc/api/a00071.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_integer.hpp File Reference</title>
+<title>0.9.8: matrix_transform_2d.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,226 +41,43 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_integer.hpp File Reference</div> </div>
+<div class="title">matrix_transform_2d.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00071_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
-<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
-<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
-<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
-<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
-<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
-<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
-<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
-<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
-<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
-<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
-<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
-<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
-<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
-<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
-<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
-<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
-<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
-<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
-<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
-<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
-<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
-<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
-<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
-<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
-<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
-<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
-<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
-<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
-<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
-<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
-<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
-<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
-<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
-<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
-<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
-<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
-<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
-<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
-<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
-<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
-<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
-<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
-<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
-<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
-<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
-<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
-<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
-<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
-<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
-<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
-<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
-<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
-<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
-<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
-<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
-<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
-<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
-<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
-<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
-<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
-<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
-<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
-<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
-<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
-<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
-<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
-<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
-<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
-<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
-<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
-<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
-<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
-<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
-<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
-<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
-<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
-<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
-<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
-<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
-<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
-<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
-<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
-<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
-<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
-<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
-<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
-<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
-<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
-<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
-<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
-<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
-<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
-<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
-<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
-<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
-<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3< T, P > const &m, T angle)</td></tr>
+<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3< T, P > const &m, T y)</td></tr>
+<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3< T, P > const &m, T x)</td></tr>
+<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00172.html">GLM_GTC_matrix_integer</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-01-20 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Miguel Ángel Pérez Martínez</dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00071_source.html">matrix_transform_2d.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00071_source.html b/doc/api/a00071_source.html
index b478192..4c4bd1b 100644
--- a/doc/api/a00071_source.html
+++ b/doc/api/a00071_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_integer.hpp Source File</title>
+<title>0.9.8: matrix_transform_2d.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,392 +41,64 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_integer.hpp</div> </div>
+<div class="title">matrix_transform_2d.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00071.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_integer extension included")</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a"> 65</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9"> 69</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb"> 73</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a>(</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> T y);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a>(</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> T x);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a"> 77</a></span> <span class="keyword">typedef</span> tmat2x2<int, highp> <a class="code" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a>;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e"> 81</a></span> <span class="keyword">typedef</span> tmat2x3<int, highp> <a class="code" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65"> 85</a></span> <span class="keyword">typedef</span> tmat2x4<int, highp> <a class="code" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00172.html#ga0413bf87605b9247be2533c439127a1c"> 89</a></span> <span class="keyword">typedef</span> tmat3x2<int, highp> <a class="code" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a>;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00172.html#gacce460d54216438bb577bf8c9d68299c"> 93</a></span> <span class="keyword">typedef</span> tmat3x3<int, highp> <a class="code" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49"> 97</a></span> <span class="keyword">typedef</span> tmat3x4<int, highp> <a class="code" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599"> 101</a></span> <span class="keyword">typedef</span> tmat4x2<int, highp> <a class="code" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73"> 105</a></span> <span class="keyword">typedef</span> tmat4x3<int, highp> <a class="code" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a>;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00172.html#gae53db595d36f49a299e180302795e3c9"> 109</a></span> <span class="keyword">typedef</span> tmat4x4<int, highp> <a class="code" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a>;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655"> 114</a></span> <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c"> 118</a></span> <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615"> 122</a></span> <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8"> 127</a></span> <span class="keyword">typedef</span> tmat2x2<int, mediump> <a class="code" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a"> 131</a></span> <span class="keyword">typedef</span> tmat2x3<int, mediump> <a class="code" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00172.html#gaa08e27efc514088315ccbaf818f01880"> 135</a></span> <span class="keyword">typedef</span> tmat2x4<int, mediump> <a class="code" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983"> 139</a></span> <span class="keyword">typedef</span> tmat3x2<int, mediump> <a class="code" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3"> 143</a></span> <span class="keyword">typedef</span> tmat3x3<int, mediump> <a class="code" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38"> 147</a></span> <span class="keyword">typedef</span> tmat3x4<int, mediump> <a class="code" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54"> 151</a></span> <span class="keyword">typedef</span> tmat4x2<int, mediump> <a class="code" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d"> 155</a></span> <span class="keyword">typedef</span> tmat4x3<int, mediump> <a class="code" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8"> 159</a></span> <span class="keyword">typedef</span> tmat4x4<int, mediump> <a class="code" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0"> 164</a></span> <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c"> 168</a></span> <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a>;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4"> 172</a></span> <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a>;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31"> 177</a></span> <span class="keyword">typedef</span> tmat2x2<int, lowp> <a class="code" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a>;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc"> 181</a></span> <span class="keyword">typedef</span> tmat2x3<int, lowp> <a class="code" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b"> 185</a></span> <span class="keyword">typedef</span> tmat2x4<int, lowp> <a class="code" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35"> 189</a></span> <span class="keyword">typedef</span> tmat3x2<int, lowp> <a class="code" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a>;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f"> 193</a></span> <span class="keyword">typedef</span> tmat3x3<int, lowp> <a class="code" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b"> 197</a></span> <span class="keyword">typedef</span> tmat3x4<int, lowp> <a class="code" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df"> 201</a></span> <span class="keyword">typedef</span> tmat4x2<int, lowp> <a class="code" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a>;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69"> 205</a></span> <span class="keyword">typedef</span> tmat4x3<int, lowp> <a class="code" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a>;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80"> 209</a></span> <span class="keyword">typedef</span> tmat4x4<int, lowp> <a class="code" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c"> 214</a></span> <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a>; </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147"> 218</a></span> <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a>;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c"> 222</a></span> <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb"> 226</a></span> <span class="keyword">typedef</span> tmat2x2<uint, highp> <a class="code" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5"> 230</a></span> <span class="keyword">typedef</span> tmat2x3<uint, highp> <a class="code" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a>;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213"> 234</a></span> <span class="keyword">typedef</span> tmat2x4<uint, highp> <a class="code" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f"> 238</a></span> <span class="keyword">typedef</span> tmat3x2<uint, highp> <a class="code" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a>;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa"> 242</a></span> <span class="keyword">typedef</span> tmat3x3<uint, highp> <a class="code" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7"> 246</a></span> <span class="keyword">typedef</span> tmat3x4<uint, highp> <a class="code" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a>;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292"> 250</a></span> <span class="keyword">typedef</span> tmat4x2<uint, highp> <a class="code" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a>;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="a00172.html#ga899a376888652fe3c03718641812bb27"> 254</a></span> <span class="keyword">typedef</span> tmat4x3<uint, highp> <a class="code" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a>;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="a00172.html#gab8068521c0ad6990373d27d87d333084"> 258</a></span> <span class="keyword">typedef</span> tmat4x4<uint, highp> <a class="code" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493"> 263</a></span> <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6"> 267</a></span> <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a>;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833"> 271</a></span> <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163"> 276</a></span> <span class="keyword">typedef</span> tmat2x2<uint, mediump> <a class="code" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a>;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb"> 280</a></span> <span class="keyword">typedef</span> tmat2x3<uint, mediump> <a class="code" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e"> 284</a></span> <span class="keyword">typedef</span> tmat2x4<uint, mediump> <a class="code" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a>;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947"> 288</a></span> <span class="keyword">typedef</span> tmat3x2<uint, mediump> <a class="code" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a>;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5"> 292</a></span> <span class="keyword">typedef</span> tmat3x3<uint, mediump> <a class="code" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc"> 296</a></span> <span class="keyword">typedef</span> tmat3x4<uint, mediump> <a class="code" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad"> 300</a></span> <span class="keyword">typedef</span> tmat4x2<uint, mediump> <a class="code" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a>;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39"> 304</a></span> <span class="keyword">typedef</span> tmat4x3<uint, mediump> <a class="code" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a>;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00172.html#ga24716579cf155f4e042542808f83978c"> 308</a></span> <span class="keyword">typedef</span> tmat4x4<uint, mediump> <a class="code" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a>;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="a00172.html#ga1406406e396b56bde3c7c0722f657064"> 313</a></span> <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a>;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
-<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033"> 317</a></span> <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a>;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884"> 321</a></span> <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a>;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3"> 326</a></span> <span class="keyword">typedef</span> tmat2x2<uint, lowp> <a class="code" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676"> 330</a></span> <span class="keyword">typedef</span> tmat2x3<uint, lowp> <a class="code" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a>;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4"> 334</a></span> <span class="keyword">typedef</span> tmat2x4<uint, lowp> <a class="code" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a>;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="a00172.html#gad73943020bb49a072317ecfc52d587f0"> 338</a></span> <span class="keyword">typedef</span> tmat3x2<uint, lowp> <a class="code" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a>;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67"> 342</a></span> <span class="keyword">typedef</span> tmat3x3<uint, lowp> <a class="code" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a>;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db"> 346</a></span> <span class="keyword">typedef</span> tmat3x4<uint, lowp> <a class="code" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a>;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95"> 350</a></span> <span class="keyword">typedef</span> tmat4x2<uint, lowp> <a class="code" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a>;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d"> 354</a></span> <span class="keyword">typedef</span> tmat4x3<uint, lowp> <a class="code" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a>;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2"> 358</a></span> <span class="keyword">typedef</span> tmat4x4<uint, lowp> <a class="code" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a>;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">typedef</span> highp_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">typedef</span> highp_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="keyword">typedef</span> highp_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">typedef</span> highp_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">typedef</span> highp_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">typedef</span> highp_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">typedef</span> highp_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">typedef</span> highp_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">typedef</span> highp_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">typedef</span> highp_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">typedef</span> highp_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">typedef</span> highp_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">typedef</span> lowp_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">typedef</span> lowp_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">typedef</span> lowp_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">typedef</span> lowp_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">typedef</span> lowp_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">typedef</span> lowp_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">typedef</span> lowp_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">typedef</span> lowp_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">typedef</span> lowp_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">typedef</span> lowp_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">typedef</span> lowp_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keyword">typedef</span> lowp_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01"> 390</a></span> <span class="keyword">typedef</span> mediump_imat2 <a class="code" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="a00172.html#ga038f68437155ffa3c2583a15264a8195"> 394</a></span> <span class="keyword">typedef</span> mediump_imat3 <a class="code" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a>;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb"> 398</a></span> <span class="keyword">typedef</span> mediump_imat4 <a class="code" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a>;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec"> 402</a></span> <span class="keyword">typedef</span> mediump_imat2x2 <a class="code" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a>;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605"> 406</a></span> <span class="keyword">typedef</span> mediump_imat2x3 <a class="code" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668"> 410</a></span> <span class="keyword">typedef</span> mediump_imat2x4 <a class="code" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
-<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f"> 414</a></span> <span class="keyword">typedef</span> mediump_imat3x2 <a class="code" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a>;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4"> 418</a></span> <span class="keyword">typedef</span> mediump_imat3x3 <a class="code" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a>;</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58"> 422</a></span> <span class="keyword">typedef</span> mediump_imat3x4 <a class="code" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a>;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
-<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa"> 426</a></span> <span class="keyword">typedef</span> mediump_imat4x2 <a class="code" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a>;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5"> 430</a></span> <span class="keyword">typedef</span> mediump_imat4x3 <a class="code" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a>;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
-<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b"> 434</a></span> <span class="keyword">typedef</span> mediump_imat4x4 <a class="code" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a>;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">typedef</span> highp_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">typedef</span> highp_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">typedef</span> highp_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword">typedef</span> highp_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">typedef</span> highp_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword">typedef</span> highp_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="keyword">typedef</span> highp_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">typedef</span> highp_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">typedef</span> highp_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keyword">typedef</span> highp_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">typedef</span> highp_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">typedef</span> highp_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">typedef</span> lowp_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">typedef</span> lowp_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword">typedef</span> lowp_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="keyword">typedef</span> lowp_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword">typedef</span> lowp_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">typedef</span> lowp_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="keyword">typedef</span> lowp_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">typedef</span> lowp_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="keyword">typedef</span> lowp_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">typedef</span> lowp_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">typedef</span> lowp_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> lowp_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor">#else //if(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="a00172.html#ga4cae85566f900debf930c41944b64691"> 467</a></span> <span class="keyword">typedef</span> mediump_umat2 <a class="code" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6"> 471</a></span> <span class="keyword">typedef</span> mediump_umat3 <a class="code" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c"> 475</a></span> <span class="keyword">typedef</span> mediump_umat4 <a class="code" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a>;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
-<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa"> 479</a></span> <span class="keyword">typedef</span> mediump_umat2x2 <a class="code" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a>;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
-<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="a00172.html#ga1870da7578d5022b973a83155d386ab3"> 483</a></span> <span class="keyword">typedef</span> mediump_umat2x3 <a class="code" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4"> 487</a></span> <span class="keyword">typedef</span> mediump_umat2x4 <a class="code" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
-<div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a"> 491</a></span> <span class="keyword">typedef</span> mediump_umat3x2 <a class="code" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb"> 495</a></span> <span class="keyword">typedef</span> mediump_umat3x3 <a class="code" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a>;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba"> 499</a></span> <span class="keyword">typedef</span> mediump_umat3x4 <a class="code" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a>;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53"> 503</a></span> <span class="keyword">typedef</span> mediump_umat4x2 <a class="code" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a>;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
-<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98"> 507</a></span> <span class="keyword">typedef</span> mediump_umat4x3 <a class="code" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a>;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
-<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8"> 511</a></span> <span class="keyword">typedef</span> mediump_umat4x4 <a class="code" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a>;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00172_html_ga96b0d26a33b81bb6a60ca0f39682f7eb"><div class="ttname"><a href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">glm::imat4</a></div><div class="ttdeci">mediump_imat4 imat4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00398">matrix_integer.hpp:398</a></div></div>
-<div class="ttc" id="a00172_html_ga1406406e396b56bde3c7c0722f657064"><div class="ttname"><a href="a00172.html#ga1406406e396b56bde3c7c0722f657064">glm::lowp_umat2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00313">matrix_integer.hpp:313</a></div></div>
-<div class="ttc" id="a00172_html_ga1582c5dc83e49a7e53bb0b94bef9de54"><div class="ttname"><a href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">glm::mediump_imat4x2</a></div><div class="ttdeci">tmat4x2< int, mediump > mediump_imat4x2</div><div class="ttdoc">Medium-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00151">matrix_integer.hpp:151</a></div></div>
-<div class="ttc" id="a00172_html_ga7ecc585b71766cfa96bd54a595bea1fb"><div class="ttname"><a href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">glm::mediump_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, mediump > mediump_umat2x3</div><div class="ttdoc">Medium-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00280">matrix_integer.hpp:280</a></div></div>
-<div class="ttc" id="a00172_html_ga5a9d62e44668ca2222f0362f9c99d9cc"><div class="ttname"><a href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">glm::mediump_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, mediump > mediump_umat3x4</div><div class="ttdoc">Medium-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00296">matrix_integer.hpp:296</a></div></div>
-<div class="ttc" id="a00172_html_ga4860b4b01430bdb70643808c8d3bf5cb"><div class="ttname"><a href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">glm::highp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2x2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00226">matrix_integer.hpp:226</a></div></div>
-<div class="ttc" id="a00172_html_ga1870da7578d5022b973a83155d386ab3"><div class="ttname"><a href="a00172.html#ga1870da7578d5022b973a83155d386ab3">glm::umat2x3</a></div><div class="ttdeci">mediump_umat2x3 umat2x3</div><div class="ttdoc">Unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00483">matrix_integer.hpp:483</a></div></div>
-<div class="ttc" id="a00172_html_ga0ffed083b64e4f764db0f446d2c49163"><div class="ttname"><a href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">glm::mediump_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2x2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00276">matrix_integer.hpp:276</a></div></div>
-<div class="ttc" id="a00172_html_ga4cae85566f900debf930c41944b64691"><div class="ttname"><a href="a00172.html#ga4cae85566f900debf930c41944b64691">glm::umat2</a></div><div class="ttdeci">mediump_umat2 umat2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00467">matrix_integer.hpp:467</a></div></div>
-<div class="ttc" id="a00172_html_gae3ca9e28a9d2e5fce5e28593d27e370d"><div class="ttname"><a href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">glm::lowp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, lowp > lowp_umat4x3</div><div class="ttdoc">Low-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00354">matrix_integer.hpp:354</a></div></div>
-<div class="ttc" id="a00172_html_gaa86bd9dc8463b46a46ee944948111676"><div class="ttname"><a href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">glm::lowp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, lowp > lowp_umat2x3</div><div class="ttdoc">Low-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00330">matrix_integer.hpp:330</a></div></div>
-<div class="ttc" id="a00172_html_ga899a376888652fe3c03718641812bb27"><div class="ttname"><a href="a00172.html#ga899a376888652fe3c03718641812bb27">glm::highp_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, highp > highp_umat4x3</div><div class="ttdoc">High-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00254">matrix_integer.hpp:254</a></div></div>
-<div class="ttc" id="a00172_html_ga7b6c64600bad79d735fa6bec843b2bb4"><div class="ttname"><a href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">glm::lowp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, lowp > lowp_umat2x4</div><div class="ttdoc">Low-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00334">matrix_integer.hpp:334</a></div></div>
-<div class="ttc" id="a00172_html_gab8068521c0ad6990373d27d87d333084"><div class="ttname"><a href="a00172.html#gab8068521c0ad6990373d27d87d333084">glm::highp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4x4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00258">matrix_integer.hpp:258</a></div></div>
-<div class="ttc" id="a00172_html_gad73943020bb49a072317ecfc52d587f0"><div class="ttname"><a href="a00172.html#gad73943020bb49a072317ecfc52d587f0">glm::lowp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, lowp > lowp_umat3x2</div><div class="ttdoc">Low-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00338">matrix_integer.hpp:338</a></div></div>
-<div class="ttc" id="a00172_html_gab3d5c6aaeb5815f8f080305888f6828f"><div class="ttname"><a href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">glm::lowp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3x3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00193">matrix_integer.hpp:193</a></div></div>
-<div class="ttc" id="a00172_html_gac23667a99ae1ec649b5e55cd5a05b833"><div class="ttname"><a href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">glm::mediump_umat4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00271">matrix_integer.hpp:271</a></div></div>
-<div class="ttc" id="a00172_html_ga8e0f797a57fec255f0eec7da1511bc38"><div class="ttname"><a href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">glm::mediump_imat3x4</a></div><div class="ttdeci">tmat3x4< int, mediump > mediump_imat3x4</div><div class="ttdoc">Medium-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00147">matrix_integer.hpp:147</a></div></div>
-<div class="ttc" id="a00172_html_gac351446661e5a8168473ff7b3b5ac3b5"><div class="ttname"><a href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">glm::highp_umat2x3</a></div><div class="ttdeci">tmat2x3< uint, highp > highp_umat2x3</div><div class="ttdoc">High-precision unsigned integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00230">matrix_integer.hpp:230</a></div></div>
-<div class="ttc" id="a00172_html_ga57936a3998e992370e59a223e0ee4fd4"><div class="ttname"><a href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">glm::umat2x4</a></div><div class="ttdeci">mediump_umat2x4 umat2x4</div><div class="ttdoc">Unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00487">matrix_integer.hpp:487</a></div></div>
-<div class="ttc" id="a00172_html_ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><div class="ttname"><a href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">glm::imat2x3</a></div><div class="ttdeci">mediump_imat2x3 imat2x3</div><div class="ttdoc">Signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00406">matrix_integer.hpp:406</a></div></div>
-<div class="ttc" id="a00172_html_ga402d169fc3cdca5f3ea47a358a7b7c67"><div class="ttname"><a href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">glm::lowp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3x3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00342">matrix_integer.hpp:342</a></div></div>
-<div class="ttc" id="a00172_html_ga24716579cf155f4e042542808f83978c"><div class="ttname"><a href="a00172.html#ga24716579cf155f4e042542808f83978c">glm::mediump_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, mediump > mediump_umat4x4</div><div class="ttdoc">Medium-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00308">matrix_integer.hpp:308</a></div></div>
-<div class="ttc" id="a00172_html_ga0c66b9b7c10a6017a58a03489c8d4c73"><div class="ttname"><a href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">glm::highp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, highp > highp_imat4x3</div><div class="ttdoc">High-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00105">matrix_integer.hpp:105</a></div></div>
-<div class="ttc" id="a00172_html_gacf71e9abe57bcfd18b4b003421e306aa"><div class="ttname"><a href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">glm::highp_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3x3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00242">matrix_integer.hpp:242</a></div></div>
-<div class="ttc" id="a00172_html_ga0413bf87605b9247be2533c439127a1c"><div class="ttname"><a href="a00172.html#ga0413bf87605b9247be2533c439127a1c">glm::highp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, highp > highp_imat3x2</div><div class="ttdoc">High-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00089">matrix_integer.hpp:89</a></div></div>
-<div class="ttc" id="a00172_html_gafe68c1cf2b379a9a11d1a11c9c2f8884"><div class="ttname"><a href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">glm::lowp_umat4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00321">matrix_integer.hpp:321</a></div></div>
-<div class="ttc" id="a00172_html_ga148f3a81d15a570b9460158e6964f41c"><div class="ttname"><a href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">glm::lowp_imat3</a></div><div class="ttdeci">tmat3x3< int, lowp > lowp_imat3</div><div class="ttdoc">Low-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00168">matrix_integer.hpp:168</a></div></div>
-<div class="ttc" id="a00172_html_ga8ce7ef51d8b2c1901fa5414deccbc3fa"><div class="ttname"><a href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">glm::imat4x2</a></div><div class="ttdeci">mediump_imat4x2 imat4x2</div><div class="ttdoc">Signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00426">matrix_integer.hpp:426</a></div></div>
-<div class="ttc" id="a00172_html_ga8368cb49cb0bd5ac682a71d1eccc9a8c"><div class="ttname"><a href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">glm::highp_umat4</a></div><div class="ttdeci">tmat4x4< uint, highp > highp_umat4</div><div class="ttdoc">High-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00222">matrix_integer.hpp:222</a></div></div>
-<div class="ttc" id="a00172_html_ga87581417945411f75cb31dd6ca1dba98"><div class="ttname"><a href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">glm::umat4x3</a></div><div class="ttdeci">mediump_umat4x3 umat4x3</div><div class="ttdoc">Unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00507">matrix_integer.hpp:507</a></div></div>
-<div class="ttc" id="a00172_html_ga3f8fb92b62e31528886cc728d3404ecc"><div class="ttname"><a href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">glm::lowp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, lowp > lowp_imat2x3</div><div class="ttdoc">Low-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00181">matrix_integer.hpp:181</a></div></div>
-<div class="ttc" id="a00172_html_ga76cab31d492ea214c693ab9132b4de95"><div class="ttname"><a href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">glm::lowp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, lowp > lowp_umat4x2</div><div class="ttdoc">Low-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00350">matrix_integer.hpp:350</a></div></div>
-<div class="ttc" id="a00172_html_ga5b7e9af5024e1a164db6419f67ecfc9a"><div class="ttname"><a href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">glm::mediump_imat2x3</a></div><div class="ttdeci">tmat2x3< int, mediump > mediump_imat2x3</div><div class="ttdoc">Medium-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00131">matrix_integer.hpp:131</a></div></div>
-<div class="ttc" id="a00172_html_ga159ce04cc638ff4db755542cd8f758cb"><div class="ttname"><a href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">glm::highp_imat4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00073">matrix_integer.hpp:73</a></div></div>
-<div class="ttc" id="a00172_html_ga70fa2d05896aa83cbc8c07672a429b53"><div class="ttname"><a href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">glm::umat4x2</a></div><div class="ttdeci">mediump_umat4x2 umat4x2</div><div class="ttdoc">Unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00503">matrix_integer.hpp:503</a></div></div>
-<div class="ttc" id="a00172_html_ga038f68437155ffa3c2583a15264a8195"><div class="ttname"><a href="a00172.html#ga038f68437155ffa3c2583a15264a8195">glm::imat3</a></div><div class="ttdeci">mediump_imat3 imat3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00394">matrix_integer.hpp:394</a></div></div>
-<div class="ttc" id="a00172_html_ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><div class="ttname"><a href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">glm::umat3x3</a></div><div class="ttdeci">mediump_umat3x3 umat3x3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00495">matrix_integer.hpp:495</a></div></div>
-<div class="ttc" id="a00172_html_ga742be484e56e08ef637f8ec4ab7c8bb2"><div class="ttname"><a href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">glm::lowp_umat4x4</a></div><div class="ttdeci">tmat4x4< uint, lowp > lowp_umat4x4</div><div class="ttdoc">Low-precision unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00358">matrix_integer.hpp:358</a></div></div>
-<div class="ttc" id="a00172_html_ga1526c62951b04f5cd73f541f7b3b7d8d"><div class="ttname"><a href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">glm::mediump_imat4x3</a></div><div class="ttdeci">tmat4x3< int, mediump > mediump_imat4x3</div><div class="ttdoc">Medium-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00155">matrix_integer.hpp:155</a></div></div>
-<div class="ttc" id="a00172_html_gabf8acdd33ce8951051edbca5200898aa"><div class="ttname"><a href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">glm::umat2x2</a></div><div class="ttdeci">mediump_umat2x2 umat2x2</div><div class="ttdoc">Unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00479">matrix_integer.hpp:479</a></div></div>
-<div class="ttc" id="a00172_html_gad3d7b23bdb4ed9b7d53c9db792db9bb4"><div class="ttname"><a href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">glm::lowp_imat4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00172">matrix_integer.hpp:172</a></div></div>
-<div class="ttc" id="a00172_html_ga5bfe58853451fbc1f1ef6ce1f93c5e31"><div class="ttname"><a href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">glm::lowp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2x2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00177">matrix_integer.hpp:177</a></div></div>
-<div class="ttc" id="a00172_html_gac8d1db85d62244fd90d240227c7f51ad"><div class="ttname"><a href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">glm::mediump_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, mediump > mediump_umat4x2</div><div class="ttdoc">Medium-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00300">matrix_integer.hpp:300</a></div></div>
-<div class="ttc" id="a00172_html_ga6a9945878f99294cfde40c6c3a867d69"><div class="ttname"><a href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">glm::lowp_imat4x3</a></div><div class="ttdeci">tmat4x3< int, lowp > lowp_imat4x3</div><div class="ttdoc">Low-precision signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00205">matrix_integer.hpp:205</a></div></div>
-<div class="ttc" id="a00172_html_gac455e55e7cb32e31396a9d4613da046a"><div class="ttname"><a href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">glm::highp_imat2x2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2x2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00077">matrix_integer.hpp:77</a></div></div>
-<div class="ttc" id="a00172_html_gae7b96c808a36fbe87f41af1c77b7941c"><div class="ttname"><a href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">glm::highp_umat2</a></div><div class="ttdeci">tmat2x2< uint, highp > highp_umat2</div><div class="ttdoc">High-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00214">matrix_integer.hpp:214</a></div></div>
-<div class="ttc" id="a00172_html_ga705ee0bf49d6c3de4404ce2481bf0df5"><div class="ttname"><a href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">glm::imat4x3</a></div><div class="ttdeci">mediump_imat4x3 imat4x3</div><div class="ttdoc">Signed integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00430">matrix_integer.hpp:430</a></div></div>
-<div class="ttc" id="a00172_html_ga1a61c706b31aa60fd7012b2b27765983"><div class="ttname"><a href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">glm::mediump_imat3x2</a></div><div class="ttdeci">tmat3x2< int, mediump > mediump_imat3x2</div><div class="ttdoc">Medium-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00139">matrix_integer.hpp:139</a></div></div>
-<div class="ttc" id="a00172_html_ga7d332d462f2c1ad5a65dc580d3d1aa39"><div class="ttname"><a href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">glm::mediump_umat4x3</a></div><div class="ttdeci">tmat4x3< uint, mediump > mediump_umat4x3</div><div class="ttdoc">Medium-precision unsigned integer 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00304">matrix_integer.hpp:304</a></div></div>
-<div class="ttc" id="a00172_html_ga9cd7fa637a4a6788337f45231fad9e1a"><div class="ttname"><a href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">glm::umat3x2</a></div><div class="ttdeci">mediump_umat3x2 umat3x2</div><div class="ttdoc">Unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00491">matrix_integer.hpp:491</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00172_html_ga5085e3ff02abbac5e537eb7b89ab63b6"><div class="ttname"><a href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">glm::umat3</a></div><div class="ttdeci">mediump_umat3 umat3</div><div class="ttdoc">Unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00471">matrix_integer.hpp:471</a></div></div>
-<div class="ttc" id="a00172_html_ga73b855cc40e5d8202b7ab38461326d65"><div class="ttname"><a href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">glm::highp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, highp > highp_imat2x4</div><div class="ttdoc">High-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00085">matrix_integer.hpp:85</a></div></div>
-<div class="ttc" id="a00172_html_ga892b53e26d36763f380b08a5768dee6b"><div class="ttname"><a href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">glm::lowp_imat2x4</a></div><div class="ttdeci">tmat2x4< int, lowp > lowp_imat2x4</div><div class="ttdoc">Low-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00185">matrix_integer.hpp:185</a></div></div>
-<div class="ttc" id="a00172_html_ga7d43dd8332000f7f19379efa1b303599"><div class="ttname"><a href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">glm::highp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, highp > highp_imat4x2</div><div class="ttdoc">High-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00101">matrix_integer.hpp:101</a></div></div>
-<div class="ttc" id="a00172_html_ga6e9ce23496d8b08dfc302d4039694b58"><div class="ttname"><a href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">glm::imat3x4</a></div><div class="ttdeci">mediump_imat3x4 imat3x4</div><div class="ttdoc">Signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00422">matrix_integer.hpp:422</a></div></div>
-<div class="ttc" id="a00172_html_ga7322b97f1be10c83290ab57ef784d493"><div class="ttname"><a href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">glm::mediump_umat2</a></div><div class="ttdeci">tmat2x2< uint, mediump > mediump_umat2</div><div class="ttdoc">Medium-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00263">matrix_integer.hpp:263</a></div></div>
-<div class="ttc" id="a00172_html_gac4abd549f2e521c7f40f53b6235c450e"><div class="ttname"><a href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">glm::mediump_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, mediump > mediump_umat2x4</div><div class="ttdoc">Medium-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00284">matrix_integer.hpp:284</a></div></div>
-<div class="ttc" id="a00172_html_ga7655dfee0d726e80d7a3b72f46d5fd35"><div class="ttname"><a href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">glm::lowp_imat3x2</a></div><div class="ttdeci">tmat3x2< int, lowp > lowp_imat3x2</div><div class="ttdoc">Low-precision signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00189">matrix_integer.hpp:189</a></div></div>
-<div class="ttc" id="a00172_html_ga9d8faafdca42583d67e792dd038fc668"><div class="ttname"><a href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">glm::imat2x4</a></div><div class="ttdeci">mediump_imat2x4 imat2x4</div><div class="ttdoc">Signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00410">matrix_integer.hpp:410</a></div></div>
-<div class="ttc" id="a00172_html_ga3fdfce509d30bdd7778b8b156cb968df"><div class="ttname"><a href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">glm::lowp_imat4x2</a></div><div class="ttdeci">tmat4x2< int, lowp > lowp_imat4x2</div><div class="ttdoc">Low-precision signed integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00201">matrix_integer.hpp:201</a></div></div>
-<div class="ttc" id="a00172_html_ga5f5f1e6dc06b72216463a425b2f7613e"><div class="ttname"><a href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">glm::highp_imat2x3</a></div><div class="ttdeci">tmat2x3< int, highp > highp_imat2x3</div><div class="ttdoc">High-precision signed integer 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00081">matrix_integer.hpp:81</a></div></div>
-<div class="ttc" id="a00172_html_ga38bc7bb6494e344185df596deeb4544c"><div class="ttname"><a href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">glm::umat4</a></div><div class="ttdeci">mediump_umat4 umat4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00475">matrix_integer.hpp:475</a></div></div>
-<div class="ttc" id="a00172_html_gac2b0985b576fe0eba47227499aed2b3c"><div class="ttname"><a href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">glm::mediump_imat3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00118">matrix_integer.hpp:118</a></div></div>
-<div class="ttc" id="a00172_html_gaa08e27efc514088315ccbaf818f01880"><div class="ttname"><a href="a00172.html#gaa08e27efc514088315ccbaf818f01880">glm::mediump_imat2x4</a></div><div class="ttdeci">tmat2x4< int, mediump > mediump_imat2x4</div><div class="ttdoc">Medium-precision signed integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00135">matrix_integer.hpp:135</a></div></div>
-<div class="ttc" id="a00172_html_gae7c78ff3fc4309605ab0fa186c8d48ba"><div class="ttname"><a href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">glm::umat3x4</a></div><div class="ttdeci">mediump_umat3x4 umat3x4</div><div class="ttdoc">Unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00499">matrix_integer.hpp:499</a></div></div>
-<div class="ttc" id="a00172_html_ga3c035fec7db0d671ec8f9f1f0d05bed0"><div class="ttname"><a href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">glm::lowp_imat2</a></div><div class="ttdeci">tmat2x2< int, lowp > lowp_imat2</div><div class="ttdoc">Low-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00164">matrix_integer.hpp:164</a></div></div>
-<div class="ttc" id="a00172_html_gacce460d54216438bb577bf8c9d68299c"><div class="ttname"><a href="a00172.html#gacce460d54216438bb577bf8c9d68299c">glm::highp_imat3x3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3x3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00093">matrix_integer.hpp:93</a></div></div>
-<div class="ttc" id="a00172_html_ga6edbf193ad6c4309e31262165f2655e7"><div class="ttname"><a href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">glm::highp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, highp > highp_umat3x4</div><div class="ttdoc">High-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00246">matrix_integer.hpp:246</a></div></div>
-<div class="ttc" id="a00172_html_ga43ed5e4f475b6f4cad7cba78f29c405b"><div class="ttname"><a href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">glm::imat4x4</a></div><div class="ttdeci">mediump_imat4x4 imat4x4</div><div class="ttdoc">Signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00434">matrix_integer.hpp:434</a></div></div>
-<div class="ttc" id="a00172_html_gaa4732a240522ad9bc28144fda2fc14ec"><div class="ttname"><a href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">glm::imat2x2</a></div><div class="ttdeci">mediump_imat2x2 imat2x2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00402">matrix_integer.hpp:402</a></div></div>
-<div class="ttc" id="a00172_html_gabc572d47b60f7e595d7aad945f5d13a8"><div class="ttname"><a href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">glm::mediump_imat2x2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2x2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00127">matrix_integer.hpp:127</a></div></div>
-<div class="ttc" id="a00172_html_ga3f8e55e14a6fc61850f8c0df9b4ff655"><div class="ttname"><a href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">glm::mediump_imat2</a></div><div class="ttdeci">tmat2x2< int, mediump > mediump_imat2</div><div class="ttdoc">Medium-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00114">matrix_integer.hpp:114</a></div></div>
-<div class="ttc" id="a00172_html_ga93961d3aac6efa36dc3f9cfa7e9056e6"><div class="ttname"><a href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">glm::mediump_umat3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00267">matrix_integer.hpp:267</a></div></div>
-<div class="ttc" id="a00172_html_ga330140b22a9449caab308f2c69bf4c80"><div class="ttname"><a href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">glm::lowp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, lowp > lowp_imat4x4</div><div class="ttdoc">Low-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00209">matrix_integer.hpp:209</a></div></div>
-<div class="ttc" id="a00172_html_gae53db595d36f49a299e180302795e3c9"><div class="ttname"><a href="a00172.html#gae53db595d36f49a299e180302795e3c9">glm::highp_imat4x4</a></div><div class="ttdeci">tmat4x4< int, highp > highp_imat4x4</div><div class="ttdoc">High-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00109">matrix_integer.hpp:109</a></div></div>
-<div class="ttc" id="a00172_html_ga05064e28b911be1af0503ddf6e6204a3"><div class="ttname"><a href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">glm::mediump_imat3x3</a></div><div class="ttdeci">tmat3x3< int, mediump > mediump_imat3x3</div><div class="ttdoc">Medium-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00143">matrix_integer.hpp:143</a></div></div>
-<div class="ttc" id="a00172_html_gad4fea24b4100e21ed7742c91e5458d49"><div class="ttname"><a href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">glm::highp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, highp > highp_imat3x4</div><div class="ttdoc">High-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00097">matrix_integer.hpp:97</a></div></div>
-<div class="ttc" id="a00172_html_ga7fc1f795f2abd0020c7b5204f4c83033"><div class="ttname"><a href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">glm::lowp_umat3</a></div><div class="ttdeci">tmat3x3< uint, lowp > lowp_umat3</div><div class="ttdoc">Low-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00317">matrix_integer.hpp:317</a></div></div>
-<div class="ttc" id="a00172_html_gab1d8e627b6a0b21c9b5e599a89132d8f"><div class="ttname"><a href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">glm::highp_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, highp > highp_umat3x2</div><div class="ttdoc">High-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00238">matrix_integer.hpp:238</a></div></div>
-<div class="ttc" id="a00172_html_ga655bfcca624f422aff308dcc99688ce8"><div class="ttname"><a href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">glm::mediump_imat4x4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4x4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00159">matrix_integer.hpp:159</a></div></div>
-<div class="ttc" id="a00172_html_ga3fb358a947f8ceaefddd75bce22cd947"><div class="ttname"><a href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">glm::mediump_umat3x2</a></div><div class="ttdeci">tmat3x2< uint, mediump > mediump_umat3x2</div><div class="ttdoc">Medium-precision unsigned integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00288">matrix_integer.hpp:288</a></div></div>
-<div class="ttc" id="a00172_html_gaaba8a59eac3e5c0b3aaa9b35c1f10292"><div class="ttname"><a href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">glm::highp_umat4x2</a></div><div class="ttdeci">tmat4x2< uint, highp > highp_umat4x2</div><div class="ttdoc">High-precision unsigned integer 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00250">matrix_integer.hpp:250</a></div></div>
-<div class="ttc" id="a00172_html_ga4efd6470c0edf9704d2244fc92dbc2a9"><div class="ttname"><a href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">glm::highp_imat3</a></div><div class="ttdeci">tmat3x3< int, highp > highp_imat3</div><div class="ttdoc">High-precision signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00069">matrix_integer.hpp:69</a></div></div>
-<div class="ttc" id="a00172_html_ga2dce1c00ed50fd09fe349de3713d96db"><div class="ttname"><a href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">glm::lowp_umat3x4</a></div><div class="ttdeci">tmat3x4< uint, lowp > lowp_umat3x4</div><div class="ttdoc">Low-precision unsigned integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00346">matrix_integer.hpp:346</a></div></div>
-<div class="ttc" id="a00172_html_gad4809dbfb1bfcf222d7b34a97a8eafe5"><div class="ttname"><a href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">glm::mediump_umat3x3</a></div><div class="ttdeci">tmat3x3< uint, mediump > mediump_umat3x3</div><div class="ttdoc">Medium-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00292">matrix_integer.hpp:292</a></div></div>
-<div class="ttc" id="a00172_html_ga815eb9fdf70edc45687cbcda07e97213"><div class="ttname"><a href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">glm::highp_umat2x4</a></div><div class="ttdeci">tmat2x4< uint, highp > highp_umat2x4</div><div class="ttdoc">High-precision unsigned integer 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00234">matrix_integer.hpp:234</a></div></div>
-<div class="ttc" id="a00172_html_ga6aacc960f62e8f7d2fe9d32d5050e7a4"><div class="ttname"><a href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">glm::imat3x3</a></div><div class="ttdeci">mediump_imat3x3 imat3x3</div><div class="ttdoc">Signed integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00418">matrix_integer.hpp:418</a></div></div>
-<div class="ttc" id="a00172_html_gaf72e6d399c42985db6872c50f53d7eb8"><div class="ttname"><a href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">glm::umat4x4</a></div><div class="ttdeci">mediump_umat4x4 umat4x4</div><div class="ttdoc">Unsigned integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00511">matrix_integer.hpp:511</a></div></div>
-<div class="ttc" id="a00172_html_ga551ad2e4e0304c67451ffbadeef0d615"><div class="ttname"><a href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">glm::mediump_imat4</a></div><div class="ttdeci">tmat4x4< int, mediump > mediump_imat4</div><div class="ttdoc">Medium-precision signed integer 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00122">matrix_integer.hpp:122</a></div></div>
-<div class="ttc" id="a00172_html_gaabe04f9948d4a213bb1c20137de03e01"><div class="ttname"><a href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">glm::imat2</a></div><div class="ttdeci">mediump_imat2 imat2</div><div class="ttdoc">Signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00390">matrix_integer.hpp:390</a></div></div>
-<div class="ttc" id="a00172_html_ga7b33bbe4f12c060892bd3cc8d4cd737f"><div class="ttname"><a href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">glm::imat3x2</a></div><div class="ttdeci">mediump_imat3x2 imat3x2</div><div class="ttdoc">Signed integer 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00414">matrix_integer.hpp:414</a></div></div>
-<div class="ttc" id="a00172_html_ga3d913d70c629aa7ad504739286328f1b"><div class="ttname"><a href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">glm::lowp_imat3x4</a></div><div class="ttdeci">tmat3x4< int, lowp > lowp_imat3x4</div><div class="ttdoc">Low-precision signed integer 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00197">matrix_integer.hpp:197</a></div></div>
-<div class="ttc" id="a00172_html_gaa9f8144beebdefd85e2a9ac480e7608a"><div class="ttname"><a href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">glm::highp_imat2</a></div><div class="ttdeci">tmat2x2< int, highp > highp_imat2</div><div class="ttdoc">High-precision signed integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00065">matrix_integer.hpp:65</a></div></div>
-<div class="ttc" id="a00172_html_ga1f0cea730f6c13b16e511bd2d63507a3"><div class="ttname"><a href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">glm::lowp_umat2x2</a></div><div class="ttdeci">tmat2x2< uint, lowp > lowp_umat2x2</div><div class="ttdoc">Low-precision unsigned integer 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00326">matrix_integer.hpp:326</a></div></div>
-<div class="ttc" id="a00172_html_gaa60b19d7cadbaa56bed1e6e0047af147"><div class="ttname"><a href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">glm::highp_umat3</a></div><div class="ttdeci">tmat3x3< uint, highp > highp_umat3</div><div class="ttdoc">High-precision unsigned integer 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00071_source.html#l00218">matrix_integer.hpp:218</a></div></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "matrix_transform_2d.inl"</span></div>
+<div class="ttc" id="a00209_html_gab4f798c6048db91a6d0686812fd54022"><div class="ttname"><a href="a00209.html#gab4f798c6048db91a6d0686812fd54022">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > rotate(tmat3x3< T, P > const &m, T angle)</div><div class="ttdoc">Builds a rotation 3 * 3 matrix created from an angle. </div></div>
+<div class="ttc" id="a00209_html_ga93bb348e7d251bcc2c17bfc11bd82e91"><div class="ttname"><a href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">glm::shearY</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > shearY(tmat3x3< T, P > const &m, T x)</div><div class="ttdoc">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00209_html_ga5a608eaf1fdfd0a349a30181cb6a0240"><div class="ttname"><a href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">glm::scale</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > scale(tmat3x3< T, P > const &m, tvec2< T, P > const &v)</div><div class="ttdoc">Builds a scale 3 * 3 matrix created from a vector of 2 components. </div></div>
+<div class="ttc" id="a00209_html_ga3da9ea234fdb2a96c75a97a18c903489"><div class="ttname"><a href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">glm::shearX</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > shearX(tmat3x3< T, P > const &m, T y)</div><div class="ttdoc">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00209_html_ga22b5e806a6d2e2be54ebd29100d11c51"><div class="ttname"><a href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">glm::translate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > translate(tmat3x3< T, P > const &m, tvec2< T, P > const &v)</div><div class="ttdoc">Builds a translation 3 * 3 matrix created from a vector of 2 components. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00072.html b/doc/api/a00072.html
index 81fd34b..90a5b82 100644
--- a/doc/api/a00072.html
+++ b/doc/api/a00072.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_interpolation.hpp File Reference</title>
+<title>0.9.8: mixed_product.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_interpolation.hpp File Reference</div> </div>
+<div class="title">mixed_product.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,31 +56,16 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
-<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
-<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
-<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
-<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00209.html">GLM_GTX_matrix_interpolation</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-03-05 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Ghenadii Ursachi (<a href="#" onclick="location.href='mai'+'lto:'+'the'+'.a'+'ste'+'ro'+'th@'+'gm'+'ail'+'.c'+'om'; return false;">the.a<span style="display: none;">.nosp at m.</span>ster<span style="display: none;">.nosp at m.</span>oth at g<span style="display: none;">.nosp at m.</span>mail<span style="display: none;">.nosp at m.</span>.com</a>)</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00072_source.html">matrix_interpolation.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00072_source.html">mixed_product.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00072_source.html b/doc/api/a00072_source.html
index a023120..208663e 100644
--- a/doc/api/a00072_source.html
+++ b/doc/api/a00072_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_interpolation.hpp Source File</title>
+<title>0.9.8: mixed_product.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,53 +46,33 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_interpolation.hpp</div> </div>
+<div class="title">mixed_product.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00072.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_interpolation extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL <span class="keywordtype">void</span> <a class="code" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tmat4x4<T, P> <span class="keyword">const</span> & mat,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> T & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> T <span class="keyword">const</span> <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tmat4x4<T, P> <span class="keyword">const</span> & mat);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tmat4x4<T, P> <span class="keyword">const</span> & m1,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> tmat4x4<T, P> <span class="keyword">const</span> & m2,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> T <span class="keyword">const</span> delta);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "matrix_interpolation.inl"</span></div>
-<div class="ttc" id="a00209_html_ga6b8170aa4cf43caf81400696ebb38afe"><div class="ttname"><a href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">glm::extractMatrixRotation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > extractMatrixRotation(tmat4x4< T, P > const &mat)</div><div class="ttdoc">Extracts the rotation part of a matrix. </div></div>
-<div class="ttc" id="a00209_html_ga45099a92c5c704503565619ac2bcd5c6"><div class="ttname"><a href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">glm::interpolate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > interpolate(tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</div><div class="ttdoc">Build a interpolation of 4 * 4 matrixes. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00209_html_ga9aef292eb5f29bdbb58a53ef4281af92"><div class="ttname"><a href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">glm::axisAngle</a></div><div class="ttdeci">GLM_FUNC_DECL void axisAngle(tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</div><div class="ttdoc">Get the axis and angle of the rotation from a matrix. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00209_html_ga82d4bc058e9628cb2ea1d4e117a0cf39"><div class="ttname"><a href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">glm::axisAngleMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > axisAngleMatrix(tvec3< T, P > const &axis, T const angle)</div><div class="ttdoc">Build a matrix from axis and angle. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_mixed_product extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL T <a class="code" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a>(</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "mixed_product.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00210_html_gaaee4cf80d69cb86de80f12af88b3c3af"><div class="ttname"><a href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">glm::mixedProduct</a></div><div class="ttdeci">GLM_FUNC_DECL T mixedProduct(tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</div><div class="ttdoc">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00073.html b/doc/api/a00073.html
index 70b2029..618648b 100644
--- a/doc/api/a00073.html
+++ b/doc/api/a00073.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_inverse.hpp File Reference</title>
+<title>0.9.8: noise.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_inverse.hpp File Reference</div> </div>
+<div class="title">noise.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,25 +56,21 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &m)</td></tr>
-<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &m)</td></tr>
-<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType< T, P > const &p)</td></tr>
+<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType< T, P > const &p, vecType< T, P > const &rep)</td></tr>
+<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType< T, P > const &p)</td></tr>
+<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00173.html">GLM_GTC_matrix_inverse</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00170.html">GLM_GTC_noise</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00073_source.html">matrix_inverse.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00073_source.html">noise.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00073_source.html b/doc/api/a00073_source.html
index 35d125e..7546943 100644
--- a/doc/api/a00073_source.html
+++ b/doc/api/a00073_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_inverse.hpp Source File</title>
+<title>0.9.8: noise.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,38 +46,49 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_inverse.hpp</div> </div>
+<div class="title">noise.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00073.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../matrix.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_inverse extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL genType <a class="code" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a>(genType <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL genType <a class="code" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a>(genType <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "matrix_inverse.inl"</span></div>
-<div class="ttc" id="a00173_html_gab213cd0e3ead5f316d583f99d6312008"><div class="ttname"><a href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">glm::inverseTranspose</a></div><div class="ttdeci">GLM_FUNC_DECL genType inverseTranspose(genType const &m)</div><div class="ttdoc">Compute the inverse transpose of a matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00173_html_gae0fcc5fc8783291f9702272de428fa0e"><div class="ttname"><a href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">glm::affineInverse</a></div><div class="ttdeci">GLM_FUNC_DECL genType affineInverse(genType const &m)</div><div class="ttdoc">Fast matrix inverse for affine matrix. </div></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../detail/_noise.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../vector_relational.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_noise extension included")</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL T <a class="code" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> vecType<T, P> <span class="keyword">const</span> & p);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL T <a class="code" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> vecType<T, P> <span class="keyword">const</span> & p,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> vecType<T, P> <span class="keyword">const</span> & rep);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL T <a class="code" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> vecType<T, P> <span class="keyword">const</span> & p);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "noise.inl"</span></div>
+<div class="ttc" id="a00170_html_ga7e103ffffacb322fe2d4863c372ae2fd"><div class="ttname"><a href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">glm::perlin</a></div><div class="ttdeci">GLM_FUNC_DECL T perlin(vecType< T, P > const &p, vecType< T, P > const &rep)</div><div class="ttdoc">Periodic perlin noise. </div></div>
+<div class="ttc" id="a00170_html_ga05f5ab240c9a3fdeee353636e464c285"><div class="ttname"><a href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">glm::simplex</a></div><div class="ttdeci">GLM_FUNC_DECL T simplex(vecType< T, P > const &p)</div><div class="ttdoc">Simplex noise. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00074.html b/doc/api/a00074.html
index 6db9983..152caf8 100644
--- a/doc/api/a00074.html
+++ b/doc/api/a00074.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_major_storage.hpp File Reference</title>
+<title>0.9.8: norm.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_major_storage.hpp File Reference</div> </div>
+<div class="title">norm.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,57 +56,38 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
-<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
-<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
-<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
-<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
-<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
-<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
-<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
-<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
+<tr class="separator:ga647d2602008801d6ed78f9708eb439cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)</td></tr>
+<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3< T, P > const &x, unsigned int Depth)</td></tr>
+<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00210.html">GLM_GTX_matrix_major_storage</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-04-19 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00211.html">GLM_GTX_norm</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00074_source.html">matrix_major_storage.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00074_source.html">norm.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00074_source.html b/doc/api/a00074_source.html
index c3bd54b..338fb74 100644
--- a/doc/api/a00074_source.html
+++ b/doc/api/a00074_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_major_storage.hpp Source File</title>
+<title>0.9.8: norm.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,92 +46,70 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_major_storage.hpp</div> </div>
+<div class="title">norm.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00074.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_major_storage extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec2<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tvec4<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec4<T, P> <span class="keyword">const</span> & v2,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec4<T, P> <span class="keyword">const</span> & v3, </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> tvec4<T, P> <span class="keyword">const</span> & v4);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a>(</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> tvec2<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a>(</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a>(</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> tvec4<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> tvec4<T, P> <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> tvec4<T, P> <span class="keyword">const</span> & v3, </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> tvec4<T, P> <span class="keyword">const</span> & v4);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a>(</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#include "matrix_major_storage.inl"</span></div>
-<div class="ttc" id="a00210_html_ga5cfd25de9d5b4c6a825085f38ddfeff7"><div class="ttname"><a href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">glm::colMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > colMajor2(tmat2x2< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga7592acfd27da055e2d7c39564cf8803d"><div class="ttname"><a href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">glm::colMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > colMajor4(tmat4x4< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga85771a88c114a088a0414bcfce55e729"><div class="ttname"><a href="a00210.html#ga85771a88c114a088a0414bcfce55e729">glm::rowMajor4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rowMajor4(tmat4x4< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_ga42a006aa66198452bd3c89415f892196"><div class="ttname"><a href="a00210.html#ga42a006aa66198452bd3c89415f892196">glm::rowMajor2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > rowMajor2(tmat2x2< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00210_html_ga38537061135b55e7a053926ca55e6e20"><div class="ttname"><a href="a00210.html#ga38537061135b55e7a053926ca55e6e20">glm::rowMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > rowMajor3(tmat3x3< T, P > const &m)</div><div class="ttdoc">Build a row major matrix from other matrix. </div></div>
-<div class="ttc" id="a00210_html_gaa93f3dcc47ced18e5db4a853363d9386"><div class="ttname"><a href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">glm::colMajor3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > colMajor3(tmat3x3< T, P > const &m)</div><div class="ttdoc">Build a column major matrix from other matrix. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/func_geometric.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_norm extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a>(</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> vecType<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> vecType<T, P> <span class="keyword">const</span> & p0,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> vecType<T, P> <span class="keyword">const</span> & p1);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL T <a class="code" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "norm.inl"</span></div>
+<div class="ttc" id="a00211_html_ga0a8cb8a0ce88d1d977de23209bf04610"><div class="ttname"><a href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">glm::l2Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l2Norm(tvec3< T, P > const &x)</div><div class="ttdoc">Returns the L2 norm of v. </div></div>
+<div class="ttc" id="a00211_html_ga647d2602008801d6ed78f9708eb439cc"><div class="ttname"><a href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">glm::distance2</a></div><div class="ttdeci">GLM_FUNC_DECL T distance2(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </div></div>
+<div class="ttc" id="a00211_html_ga6d5964f09cdb43803496a5ee3ced71cb"><div class="ttname"><a href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">glm::l1Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l1Norm(tvec3< T, P > const &v)</div><div class="ttdoc">Returns the L1 norm of v. </div></div>
+<div class="ttc" id="a00211_html_gaab931b0d1acfe2f9c1cb78311edf24fc"><div class="ttname"><a href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">glm::lxNorm</a></div><div class="ttdeci">GLM_FUNC_DECL T lxNorm(tvec3< T, P > const &x, unsigned int Depth)</div><div class="ttdoc">Returns the L norm of v. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00211_html_ga6d326d62fd9b7f4f0a1b79e56492a7e4"><div class="ttname"><a href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(vecType< T, P > const &x)</div><div class="ttdoc">Returns the squared length of x. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00075.html b/doc/api/a00075.html
index 9aa4b80..4b81acb 100644
--- a/doc/api/a00075.html
+++ b/doc/api/a00075.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_operation.hpp File Reference</title>
+<title>0.9.8: normal.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_operation.hpp File Reference</div> </div>
+<div class="title">normal.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,46 +56,17 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4< T, P > const &v)</td></tr>
-<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</td></tr>
+<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00211.html">GLM_GTX_matrix_operation</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-08-29 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00212.html">GLM_GTX_normal</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00075_source.html">matrix_operation.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00075_source.html">normal.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00075_source.html b/doc/api/a00075_source.html
index 9130d00..10ded47 100644
--- a/doc/api/a00075_source.html
+++ b/doc/api/a00075_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_operation.hpp Source File</title>
+<title>0.9.8: normal.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,71 +46,33 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_operation.hpp</div> </div>
+<div class="title">normal.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00075.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_operation extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL tmat2x2<T, P> <a class="code" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a>(</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL tmat2x3<T, P> <a class="code" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat2x4<T, P> <a class="code" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat3x2<T, P> <a class="code" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a>(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tmat3x4<T, P> <a class="code" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a>(</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat4x2<T, P> <a class="code" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a>(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat4x3<T, P> <a class="code" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#include "matrix_operation.inl"</span></div>
-<div class="ttc" id="a00211_html_gae3f85af86c18c80f2acbe3223feb8e81"><div class="ttname"><a href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">glm::diagonal3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, P > diagonal3x4(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga586e1ced91fd8a7c414186a200f13532"><div class="ttname"><a href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">glm::diagonal3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2< T, P > diagonal3x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><div class="ttname"><a href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">glm::diagonal4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2< T, P > diagonal4x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga49b37c819cf6dd8e35112ed1a13d45a3"><div class="ttname"><a href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">glm::diagonal2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, P > diagonal2x4(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00211_html_ga4242ea5681f81539e0c5b54fadcd9ddf"><div class="ttname"><a href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">glm::diagonal4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3< T, P > diagonal4x3(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_gade576e044d8e52f343166f665589d782"><div class="ttname"><a href="a00211.html#gade576e044d8e52f343166f665589d782">glm::diagonal4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > diagonal4x4(tvec4< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga01dc503262dba9c457113d131fc8c024"><div class="ttname"><a href="a00211.html#ga01dc503262dba9c457113d131fc8c024">glm::diagonal2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, P > diagonal2x2(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga8e817dba22f2305cdebae07bbbe0360c"><div class="ttname"><a href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">glm::diagonal3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > diagonal3x3(tvec3< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
-<div class="ttc" id="a00211_html_ga763817f07d6a94b722a48adfa87a35db"><div class="ttname"><a href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">glm::diagonal2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3< T, P > diagonal2x3(tvec2< T, P > const &v)</div><div class="ttdoc">Build a diagonal matrix. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_normal extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & p1, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tvec3<T, P> <span class="keyword">const</span> & p2, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> tvec3<T, P> <span class="keyword">const</span> & p3);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "normal.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00212_html_ga7842850bcda582f1756883e3ed950e14"><div class="ttname"><a href="a00212.html#ga7842850bcda582f1756883e3ed950e14">glm::triangleNormal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > triangleNormal(tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</div><div class="ttdoc">Computes triangle normal from triangle points. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00076.html b/doc/api/a00076.html
index 3f902ac..006af46 100644
--- a/doc/api/a00076.html
+++ b/doc/api/a00076.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_query.hpp File Reference</title>
+<title>0.9.8: normalize_dot.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_query.hpp File Reference</div> </div>
+<div class="title">normalize_dot.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,45 +56,20 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00212.html">GLM_GTX_matrix_query</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-05 / 2011-08-28 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> (dependence) </dd></dl>
+<a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00076_source.html">matrix_query.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00076_source.html">normalize_dot.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00076_source.html b/doc/api/a00076_source.html
index 11cb594..ebf199d 100644
--- a/doc/api/a00076_source.html
+++ b/doc/api/a00076_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_query.hpp Source File</title>
+<title>0.9.8: normalize_dot.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,57 +46,34 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_query.hpp</div> </div>
+<div class="title">normalize_dot.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00076.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtx/fast_square_root.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_normalize_dot extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL T <a class="code" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL T <a class="code" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/vector_query.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_query extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a>(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a>(matType<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a>(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a>(matType<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#include "matrix_query.inl"</span></div>
-<div class="ttc" id="a00212_html_ga326de496972051413c7b44b85fc9cb6e"><div class="ttname"><a href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(tmat4x4< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is a null matrix. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00212_html_gafc1ce12c738b8c5d007179e615609330"><div class="ttname"><a href="a00212.html#gafc1ce12c738b8c5d007179e615609330">glm::isIdentity</a></div><div class="ttdeci">GLM_FUNC_DECL bool isIdentity(matType< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is an identity matrix. </div></div>
-<div class="ttc" id="a00212_html_ga934b673ec0e16d79eca0ca9dbb5d6d8b"><div class="ttname"><a href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(tmat4x4< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is a normalized matrix. </div></div>
-<div class="ttc" id="a00212_html_gab2cb5d23df77b4e4e63ad2965acd31b3"><div class="ttname"><a href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">glm::isOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool isOrthogonal(matType< T, P > const &m, T const &epsilon)</div><div class="ttdoc">Return whether a matrix is an orthonormalized matrix. </div></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "normalize_dot.inl"</span></div>
+<div class="ttc" id="a00213_html_gaffbc2f2cb15838de8886a68048f9004d"><div class="ttname"><a href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">glm::normalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T normalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00213_html_ga8593b21bc2fe22184f01d5e08b5a2024"><div class="ttname"><a href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">glm::fastNormalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T fastNormalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00077.html b/doc/api/a00077.html
index 7f0fe33..8a57be2 100644
--- a/doc/api/a00077.html
+++ b/doc/api/a00077.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform.hpp File Reference</title>
+<title>0.9.8: number_precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,101 +41,61 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">matrix_transform.hpp File Reference</div> </div>
+<div class="title">number_precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00077_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
-<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template<typename T , precision P, typename U > </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
-<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
+<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
+<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
+<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
+<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
+<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
+<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
+typedef u16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
+<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
+typedef u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
+<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
+typedef u64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
+<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
+typedef u8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
+<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00174.html">GLM_GTC_matrix_transform</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-04-29 / 2011-05-16 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00214.html">GLM_GTX_number_precision</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> (dependence) </dd>
<dd>
-<a class="el" href="a00237.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00077_source.html">matrix_transform.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00077_source.html">number_precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00077_source.html b/doc/api/a00077_source.html
index 28b22c1..a5a344e 100644
--- a/doc/api/a00077_source.html
+++ b/doc/api/a00077_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform.hpp Source File</title>
+<title>0.9.8: number_precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,194 +41,69 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_transform.hpp</div> </div>
+<div class="title">number_precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00077.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_matrix_transform extension included")</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> T left,</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> T right,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> T bottom,</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> T top,</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> T zNear,</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> T zFar);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a>(</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> T left,</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> T right,</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> T bottom,</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> T top);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a>(</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> T left,</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> T right,</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> T bottom,</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> T top,</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> T near,</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> T far);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a>(</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> T fovy,</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> T aspect,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> T near,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> T far);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a>(</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> T fovy,</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> T aspect,</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> T near,</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> T far);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a>(</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> T fovy,</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> T aspect,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> T near,</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> T far);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a>(</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> T fov,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> T width,</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> T height,</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> T near,</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> T far);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a>(</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> T fov,</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> T width,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> T height,</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> T near,</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> T far);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> T fov,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> T width,</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> T height,</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> T near,</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> T far);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a>(</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> T fovy, T aspect, T near);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a>(</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> T fovy, T aspect, T near, T ep);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a>(</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> tvec3<T, P> <span class="keyword">const</span> & obj,</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> tmat4x4<T, P> <span class="keyword">const</span> & model,</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> tmat4x4<T, P> <span class="keyword">const</span> & <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, precision P></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a>(</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> tvec3<T, P> <span class="keyword">const</span> & win,</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> tmat4x4<T, P> <span class="keyword">const</span> & model,</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> tmat4x4<T, P> <span class="keyword">const</span> & <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>,</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a>(</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> tvec2<T, P> <span class="keyword">const</span> & center,</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> tvec2<T, P> <span class="keyword">const</span> & delta,</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> tvec4<U, P> <span class="keyword">const</span> & viewport);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a>(</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a>(</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a>(</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> tvec3<T, P> <span class="keyword">const</span> & eye,</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> tvec3<T, P> <span class="keyword">const</span> & center,</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> tvec3<T, P> <span class="keyword">const</span> & up);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor">#include "matrix_transform.inl"</span></div>
-<div class="ttc" id="a00223_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
-<div class="ttc" id="a00174_html_gaee134ab77c6c5548a6ebf4e8e476c6ed"><div class="ttname"><a href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > translate(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a translation 4 * 4 matrix created from a vector of 3 components. </div></div>
-<div class="ttc" id="a00174_html_gae9146e2c550fc8646299e4b900238145"><div class="ttname"><a href="a00174.html#gae9146e2c550fc8646299e4b900238145">glm::perspectiveFov</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a perspective projection matrix based on a field of view and the default handedness. </div></div>
-<div class="ttc" id="a00174_html_gaa50fce7f50b5d5da881ed30f5532a921"><div class="ttname"><a href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">glm::tweakedInfinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...</div></div>
-<div class="ttc" id="a00174_html_gac3613dcb6c6916465ad5b7ad5a786175"><div class="ttname"><a href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">glm::perspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspective(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a symetric perspective-view frustum based on the default handedness. </div></div>
-<div class="ttc" id="a00174_html_ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><div class="ttname"><a href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">glm::perspectiveRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a right handed, symetric perspective-view frustum. </div></div>
-<div class="ttc" id="a00174_html_ga82a558de3ce42cbeed0f6ec292a4e1b3"><div class="ttname"><a href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">glm::unProject</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > unProject(tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</div><div class="ttdoc">Map the specified window coordinates (win.x, win.y, win.z) into object coordin [...]
-<div class="ttc" id="a00174_html_ga45b1b64f99255c07119b4f1aaed04dd7"><div class="ttname"><a href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">glm::ortho</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > ortho(T left, T right, T bottom, T top)</div><div class="ttdoc">Creates a matrix for projecting two-dimensional coordinates onto the screen. </div></div>
-<div class="ttc" id="a00174_html_gaf8eef81da1ad09f6a8920101c01eaae4"><div class="ttname"><a href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">glm::lookAt</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAt(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a look at view matrix based on the default handedness. </div></div>
-<div class="ttc" id="a00174_html_ga9026c77505b99990f68826f27c267dc5"><div class="ttname"><a href="a00174.html#ga9026c77505b99990f68826f27c267dc5">glm::pickMatrix</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > pickMatrix(tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</div><div class="ttdoc">Define a picking region. </div></div>
-<div class="ttc" id="a00174_html_ga34048da27c559f1ac8e9550d169dd6f3"><div class="ttname"><a href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">glm::perspectiveLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)</div><div class="ttdoc">Creates a matrix for a left handed, symetric perspective-view frustum. </div></div>
-<div class="ttc" id="a00174_html_ga79f704ad91a5f0d68abd88c66c8186e5"><div class="ttname"><a href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">glm::infinitePerspective</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > infinitePerspective(T fovy, T aspect, T near)</div><div class="ttdoc">Creates a matrix for a symmetric perspective-view frustum with far plane at infinite. </div></div>
-<div class="ttc" id="a00174_html_gad743556abd138264d4f06f4ca27f1d7e"><div class="ttname"><a href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">glm::project</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > project(tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</div><div class="ttdoc">Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates [...]
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00174_html_ga07cd8df791bf90dcb782645fe0b21261"><div class="ttname"><a href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">glm::perspectiveFovRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFovRH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a right handed perspective projection matrix based on a field of view. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00174_html_gada6deb989d4b553fe0f7e3279f3afae1"><div class="ttname"><a href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">glm::frustum</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)</div><div class="ttdoc">Creates a frustum matrix. </div></div>
-<div class="ttc" id="a00174_html_gacd0c077ec7b58a575855e29cb5fb586d"><div class="ttname"><a href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">glm::lookAtLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAtLH(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a left handed look at view matrix. </div></div>
-<div class="ttc" id="a00174_html_ga161b1df124348f232d994ba7958e4815"><div class="ttname"><a href="a00174.html#ga161b1df124348f232d994ba7958e4815">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rotate(tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </div></div>
-<div class="ttc" id="a00174_html_gae705a2f19c3ef5ef880bd6c92759cf2d"><div class="ttname"><a href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">glm::perspectiveFovLH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > perspectiveFovLH(T fov, T width, T height, T near, T far)</div><div class="ttdoc">Builds a left handed perspective projection matrix based on a field of view. </div></div>
-<div class="ttc" id="a00174_html_ga2876d9313334980b94292d2ec169088e"><div class="ttname"><a href="a00174.html#ga2876d9313334980b94292d2ec169088e">glm::lookAtRH</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > lookAtRH(tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</div><div class="ttdoc">Build a right handed look at view matrix. </div></div>
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_number_precision extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span>gtx</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// Unsigned int vector types </span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980"> 34</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> <a class="code" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a>; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0"> 35</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> <a class="code" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a>; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3"> 36</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a> <a class="code" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a>; </div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="a00214.html#ga818de170e2584ab037130f2881925974"> 37</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a> <a class="code" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a>; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// Float vector types </span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943"> 42</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a>; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1"> 43</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a>; </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6"> 48</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a>; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348"> 49</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a>; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00214.html#ga59bfa589419b5265d01314fcecd33435"> 50</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a>; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd"> 51</a></span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a>; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }<span class="comment">//namespace gtx</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "number_precision.inl"</span></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00214_html_gac88c6a4dbfc380aa26e3adbbade36348"><div class="ttname"><a href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::f32mat1x1</a></div><div class="ttdeci">f32 f32mat1x1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00049">number_precision.hpp:49</a></div></div>
+<div class="ttc" id="a00214_html_ga145ad477a2a3e152855511c3b52469a6"><div class="ttname"><a href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::f32mat1</a></div><div class="ttdeci">f32 f32mat1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00048">number_precision.hpp:48</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00214_html_ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><div class="ttname"><a href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::u32vec1</a></div><div class="ttdeci">u32 u32vec1</div><div class="ttdoc">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00036">number_precision.hpp:36</a></div></div>
+<div class="ttc" id="a00214_html_ga448eeb08d0b7d8c43a8b292c981955fd"><div class="ttname"><a href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::f64mat1x1</a></div><div class="ttdeci">f64 f64mat1x1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00051">number_precision.hpp:51</a></div></div>
+<div class="ttc" id="a00214_html_ga818de170e2584ab037130f2881925974"><div class="ttname"><a href="a00214.html#ga818de170e2584ab037130f2881925974">glm::gtx::u64vec1</a></div><div class="ttdeci">u64 u64vec1</div><div class="ttdoc">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00037">number_precision.hpp:37</a></div></div>
+<div class="ttc" id="a00214_html_ga5853fe457f4c8a6bc09343d0e9833980"><div class="ttname"><a href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::u8vec1</a></div><div class="ttdeci">u8 u8vec1</div><div class="ttdoc">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00034">number_precision.hpp:34</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00214_html_gae5987a61b8c03d5c432a9e62f0b3efe1"><div class="ttname"><a href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::f64vec1</a></div><div class="ttdeci">f64 f64vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00043">number_precision.hpp:43</a></div></div>
+<div class="ttc" id="a00214_html_ga07f8d7348eb7ae059a84c118fdfeb943"><div class="ttname"><a href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::f32vec1</a></div><div class="ttdeci">f32 f32vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00042">number_precision.hpp:42</a></div></div>
+<div class="ttc" id="a00214_html_ga59bfa589419b5265d01314fcecd33435"><div class="ttname"><a href="a00214.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::f64mat1</a></div><div class="ttdeci">f64 f64mat1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00050">number_precision.hpp:50</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00214_html_ga52cc069a92e126c3a8dcde93424d2ef0"><div class="ttname"><a href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::u16vec1</a></div><div class="ttdeci">u16 u16vec1</div><div class="ttdoc">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00077_source.html#l00035">number_precision.hpp:35</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01505">fwd.hpp:1505</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00078.html b/doc/api/a00078.html
index 2da3820..132cd1d 100644
--- a/doc/api/a00078.html
+++ b/doc/api/a00078.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform_2d.hpp File Reference</title>
+<title>0.9.8: optimum_pow.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">matrix_transform_2d.hpp File Reference</div> </div>
+<div class="title">optimum_pow.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,34 +56,21 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3< T, P > const &m, T angle)</td></tr>
-<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3< T, P > const &m, T y)</td></tr>
-<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3< T, P > const &m, T x)</td></tr>
-<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &x)</td></tr>
+<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &x)</td></tr>
+<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &x)</td></tr>
+<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00213.html">GLM_GTX_matrix_transform_2d</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-02-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Miguel Ángel Pérez Martínez</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00078_source.html">matrix_transform_2d.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00078_source.html">optimum_pow.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00078_source.html b/doc/api/a00078_source.html
index 0c2076c..56eded1 100644
--- a/doc/api/a00078_source.html
+++ b/doc/api/a00078_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: matrix_transform_2d.hpp Source File</title>
+<title>0.9.8: optimum_pow.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,59 +46,40 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">matrix_transform_2d.hpp</div> </div>
+<div class="title">optimum_pow.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00078.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a>(</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a>(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> T y);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_QUALIFIER tmat3x3<T, P> <a class="code" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a>(</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> tmat3x3<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> T x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#include "matrix_transform_2d.inl"</span></div>
-<div class="ttc" id="a00213_html_ga5a608eaf1fdfd0a349a30181cb6a0240"><div class="ttname"><a href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">glm::scale</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > scale(tmat3x3< T, P > const &m, tvec2< T, P > const &v)</div><div class="ttdoc">Builds a scale 3 * 3 matrix created from a vector of 2 components. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00213_html_ga22b5e806a6d2e2be54ebd29100d11c51"><div class="ttname"><a href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">glm::translate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > translate(tmat3x3< T, P > const &m, tvec2< T, P > const &v)</div><div class="ttdoc">Builds a translation 3 * 3 matrix created from a vector of 2 components. </div></div>
-<div class="ttc" id="a00213_html_gab4f798c6048db91a6d0686812fd54022"><div class="ttname"><a href="a00213.html#gab4f798c6048db91a6d0686812fd54022">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > rotate(tmat3x3< T, P > const &m, T angle)</div><div class="ttdoc">Builds a rotation 3 * 3 matrix created from an angle. </div></div>
-<div class="ttc" id="a00213_html_ga93bb348e7d251bcc2c17bfc11bd82e91"><div class="ttname"><a href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">glm::shearY</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > shearY(tmat3x3< T, P > const &m, T x)</div><div class="ttdoc">Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00213_html_ga3da9ea234fdb2a96c75a97a18c903489"><div class="ttname"><a href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">glm::shearX</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER tmat3x3< T, P > shearX(tmat3x3< T, P > const &m, T y)</div><div class="ttdoc">Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_optimum_pow extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span>gtx</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL genType <a class="code" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL genType <a class="code" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL genType <a class="code" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> }<span class="comment">//namespace gtx</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "optimum_pow.inl"</span></div>
+<div class="ttc" id="a00215_html_ga19aaff3213bf23bdec3ef124ace237e9"><div class="ttname"><a href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">glm::gtx::pow2</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow2(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 2. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00215_html_ga35689d03cd434d6ea819f1942d3bf82e"><div class="ttname"><a href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">glm::gtx::pow3</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow3(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 3. </div></div>
+<div class="ttc" id="a00215_html_gacef0968763026e180e53e735007dbf5a"><div class="ttname"><a href="a00215.html#gacef0968763026e180e53e735007dbf5a">glm::gtx::pow4</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow4(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 4. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00079.html b/doc/api/a00079.html
index 6826a28..1926924 100644
--- a/doc/api/a00079.html
+++ b/doc/api/a00079.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mixed_product.hpp File Reference</title>
+<title>0.9.8: orthonormalize.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">mixed_product.hpp File Reference</div> </div>
+<div class="title">orthonormalize.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,23 +56,20 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00214.html">GLM_GTX_mixed_producte</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-04-03 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00079_source.html">mixed_product.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00079_source.html">orthonormalize.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00079_source.html b/doc/api/a00079_source.html
index ba94101..5152cb9 100644
--- a/doc/api/a00079_source.html
+++ b/doc/api/a00079_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: mixed_product.hpp Source File</title>
+<title>0.9.8: orthonormalize.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,33 +46,35 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">mixed_product.hpp</div> </div>
+<div class="title">orthonormalize.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00079.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_mixed_product extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL T <a class="code" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a>(</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec3<T, P> <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<T, P> <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & v3);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "mixed_product.inl"</span></div>
-<div class="ttc" id="a00214_html_gaaee4cf80d69cb86de80f12af88b3c3af"><div class="ttname"><a href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">glm::mixedProduct</a></div><div class="ttdeci">GLM_FUNC_DECL T mixedProduct(tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</div><div class="ttdoc">Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_orthonormalize extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tvec3<T, P> <span class="keyword">const</span> & x, tvec3<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "orthonormalize.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00216_html_gad7afff30d7323fdc7aed7f5a16a0c596"><div class="ttname"><a href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">glm::orthonormalize</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > orthonormalize(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Orthonormalizes x according y. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00080.html b/doc/api/a00080.html
index 9aecd22..fd1c602 100644
--- a/doc/api/a00080.html
+++ b/doc/api/a00080.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: noise.hpp File Reference</title>
+<title>0.9.8: packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">noise.hpp File Reference</div> </div>
+<div class="title">gtc/packing.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,28 +56,114 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType< T, P > const &p)</td></tr>
-<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType< T, P > const &p, vecType< T, P > const &rep)</td></tr>
-<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType< T, P > const &p)</td></tr>
-<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint16, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a> (vecType< float, P > const &v)</td></tr>
+<tr class="separator:ga896d806b72e390eb953786cca3632ec9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
+<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &v)</td></tr>
+<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplParams" colspan="2">template<typename intType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< intType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:ga1be760860697db386b36513aeafe9d5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
+<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
+<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &v)</td></tr>
+<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &v)</td></tr>
+<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplParams" colspan="2">template<typename uintType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uintType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
+<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
+<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a> (vec2 const &v)</td></tr>
+<tr class="separator:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec4112086d7fb133bea104a7c237de52"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a> (vec4 const &v)</td></tr>
+<tr class="separator:gaec4112086d7fb133bea104a7c237de52"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a> (vec4 const &v)</td></tr>
+<tr class="separator:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
+<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a> (uint32 p)</td></tr>
+<tr class="separator:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a> (vecType< uint16, P > const &p)</td></tr>
+<tr class="separator:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
+<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
+<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplParams" colspan="2">template<typename intType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a> (vecType< intType, P > const &v)</td></tr>
+<tr class="separator:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
+<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
+<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
+<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
+<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplParams" colspan="2">template<typename uintType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a> (vecType< uintType, P > const &v)</td></tr>
+<tr class="separator:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
+<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a> (uint16 p)</td></tr>
+<tr class="separator:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
+<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6abd5a9014df3b5ce4059008d2491260"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a> (uint8 p)</td></tr>
+<tr class="separator:ga6abd5a9014df3b5ce4059008d2491260"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a> (uint8 p)</td></tr>
+<tr class="separator:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
+<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a> (uint16 p)</td></tr>
+<tr class="separator:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
+<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a> (uint16 p)</td></tr>
+<tr class="separator:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00175.html">GLM_GTC_noise</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-04-21 / 2011-09-27 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00171.html">GLM_GTC_packing</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00080_source.html">noise.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00080_source.html">gtc/packing.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00080_source.html b/doc/api/a00080_source.html
index c84f65b..19d8a70 100644
--- a/doc/api/a00080_source.html
+++ b/doc/api/a00080_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: noise.hpp Source File</title>
+<title>0.9.8: packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,49 +46,182 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">noise.hpp</div> </div>
+<div class="title">gtc/packing.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00080.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../detail/_noise.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../common.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../vector_relational.hpp"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_noise extension included")</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL T <a class="code" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> vecType<T, P> <span class="keyword">const</span> & p);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL T <a class="code" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a>(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> vecType<T, P> <span class="keyword">const</span> & p,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> vecType<T, P> <span class="keyword">const</span> & rep);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span><<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL T <a class="code" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> vecType<T, P> <span class="keyword">const</span> & p);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "noise.inl"</span></div>
-<div class="ttc" id="a00175_html_ga05f5ab240c9a3fdeee353636e464c285"><div class="ttname"><a href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">glm::simplex</a></div><div class="ttdeci">GLM_FUNC_DECL T simplex(vecType< T, P > const &p)</div><div class="ttdoc">Simplex noise. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00175_html_ga7e103ffffacb322fe2d4863c372ae2fd"><div class="ttname"><a href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">glm::perlin</a></div><div class="ttdeci">GLM_FUNC_DECL T perlin(vecType< T, P > const &p, vecType< T, P > const &rep)</div><div class="ttdoc">Periodic perlin noise. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="a00124.html">type_precision.hpp</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_packing extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a>(uint8 p);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a>(uint16 p);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a>(<span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a>(uint8 p);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a>(uint16 p);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a>(uint16 p);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a>(uint16 p);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a>(uint16 v);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> GLM_FUNC_DECL uint64 <a class="code" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a>(uint64 p);</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a>(<a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <a class="code" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a>(<a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <a class="code" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a>(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a>(uint32 p);</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> GLM_FUNC_DECL uint32 <a class="code" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a>(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a>(uint32 p);</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> GLM_FUNC_DECL vecType<uint16, P> <a class="code" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a>(vecType<float, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">template</span> <precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> GLM_FUNC_DECL vecType<float, P> <a class="code" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a>(vecType<uint16, P> <span class="keyword">const</span> & p);</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keyword">template</span> <<span class="keyword">typename</span> u<span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> GLM_FUNC_DECL vecType<uintType, P> <a class="code" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a>(vecType<floatType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">template</span> <<span class="keyword">typename</span> u<span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> GLM_FUNC_DECL vecType<floatType, P> <a class="code" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a>(vecType<uintType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> GLM_FUNC_DECL vecType<intType, P> <a class="code" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a>(vecType<floatType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">int</span>Type, <span class="keyword">typename</span> <span class="keywordtype">float</span>Type, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> GLM_FUNC_DECL vecType<floatType, P> <a class="code" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a>(vecType<intType, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> GLM_FUNC_DECL <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a>(uint8 p);</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a>(uint16 p);</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a>(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a>(uint16 p);</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> GLM_FUNC_DECL uint16 <a class="code" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a>(uint16 p);</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> GLM_FUNC_DECL uint8 <a class="code" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a>(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> GLM_FUNC_DECL <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a>(uint8 p);</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor">#include "packing.inl"</span></div>
+<div class="ttc" id="a00171_html_ga358943934d21da947d5bcc88c2ab7832"><div class="ttname"><a href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">glm::packSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_ga7f9abdb50f9be1aa1c14912504a0d98d"><div class="ttname"><a href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">glm::packUnorm2x3_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00124_html"><div class="ttname"><a href="a00124.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
+<div class="ttc" id="a00171_html_ga3f648fc205467792dc6d8c59c748f8a6"><div class="ttname"><a href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">glm::packF3x9_E1x5</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const &v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="ttc" id="a00171_html_gab3bc08ecfc0f3339be93fb2b3b56d88a"><div class="ttname"><a href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">glm::unpackUnorm1x5_1x6_1x5</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><div class="ttname"><a href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">glm::unpackUnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< floatType, P > unpackUnorm(vecType< uintType, P > const &v)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_gad3e7e3ce521513584a53aedc5f9765c1"><div class="ttname"><a href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">glm::packUnorm4x4</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gac37dedaba24b00adb4ec6e8f92c19dbf"><div class="ttname"><a href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">glm::unpackHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackHalf1x16(uint16 v)</div><div class="ttdoc">Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...</div></div>
+<div class="ttc" id="a00171_html_gab22f8bcfdb5fc65af4701b25f143c1af"><div class="ttname"><a href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">glm::packSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into 16-bit integer value. </div></div>
+<div class="ttc" id="a00171_html_ga06ecb6afb902dba45419008171db9023"><div class="ttname"><a href="a00171.html#ga06ecb6afb902dba45419008171db9023">glm::packI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component signed integer ...</div></div>
+<div class="ttc" id="a00171_html_ga9f82737bf2a44bedff1d286b76837886"><div class="ttname"><a href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">glm::packUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 16-bit integer value. </div></div>
+<div class="ttc" id="a00171_html_ga5156d3060355fe332865da2c7f78815f"><div class="ttname"><a href="a00171.html#ga5156d3060355fe332865da2c7f78815f">glm::unpackUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_gada3d88d59f0f458f9c51a9fd359a4bc0"><div class="ttname"><a href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">glm::packU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...</div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00171_html_ga2ae149c5d2473ac1e5f347bb654a242d"><div class="ttname"><a href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">glm::unpackUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga637cbe3913dd95c6e7b4c99c61bd611f"><div class="ttname"><a href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">glm::unpackUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga83d34160a5cb7bcb5339823210fc7501"><div class="ttname"><a href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">glm::unpackUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </div></div>
+<div class="ttc" id="a00171_html_ga9a05330e5490be0908d3b117d82aff56"><div class="ttname"><a href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">glm::unpackI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...</div></div>
+<div class="ttc" id="a00171_html_ga1be760860697db386b36513aeafe9d5e"><div class="ttname"><a href="a00171.html#ga1be760860697db386b36513aeafe9d5e">glm::packSnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< intType, P > packSnorm(vecType< floatType, P > const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into signed integer values...</div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00171_html_gac58ee89d0e224bb6df5e8bbb18843a2d"><div class="ttname"><a href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">glm::unpackUnorm4x4</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga1319207e30874fb4931a9ee913983ee1"><div class="ttname"><a href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">glm::unpackUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)</div><div class="ttdoc">Convert a single 8-bit integer to a normalized floating-point value. </div></div>
+<div class="ttc" id="a00171_html_ga63eeec0d416e48462f341f4a7a9a45fe"><div class="ttname"><a href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">glm::unpackSnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< floatType, P > unpackSnorm(vecType< intType, P > const &v)</div><div class="ttdoc">Convert each signed integer components of a vector to normalized floating-point values. </div></div>
+<div class="ttc" id="a00171_html_gaf3f9387834f8d8beadfe723c1dd247a7"><div class="ttname"><a href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">glm::unpackHalf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< float, P > unpackHalf(vecType< uint16, P > const &p)</div><div class="ttdoc">Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...</div></div>
+<div class="ttc" id="a00171_html_ga57dfc41b2eb20b0ac00efae7d9c49dcd"><div class="ttname"><a href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">glm::unpackHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)</div><div class="ttdoc">Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...</div></div>
+<div class="ttc" id="a00171_html_ga43f2093b6ff192a79058ff7834fc3528"><div class="ttname"><a href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">glm::packHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packHalf1x16(float v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...</div></div>
+<div class="ttc" id="a00171_html_gab9e60ebe3ad3eeced6a9ec6eb876d74e"><div class="ttname"><a href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">glm::unpackF3x9_E1x5</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
+<div class="ttc" id="a00171_html_ga48df3042a7d079767f5891a1bfd8a60a"><div class="ttname"><a href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">glm::unpackU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...</div></div>
+<div class="ttc" id="a00171_html_ga6abd5a9014df3b5ce4059008d2491260"><div class="ttname"><a href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">glm::unpackUnorm2x3_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga9a666b1c688ab54100061ed06526de6e"><div class="ttname"><a href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">glm::packUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_gae3592e0795e62aaa1865b3a10496a7a1"><div class="ttname"><a href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">glm::packSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packSnorm1x8(float s)</div><div class="ttdoc">First, converts the normalized floating-point value v into 8-bit integer value. </div></div>
+<div class="ttc" id="a00171_html_ga896d806b72e390eb953786cca3632ec9"><div class="ttname"><a href="a00171.html#ga896d806b72e390eb953786cca3632ec9">glm::packHalf</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint16, P > packHalf(vecType< float, P > const &v)</div><div class="ttdoc">Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...</div></div>
+<div class="ttc" id="a00171_html_gab997545661877d2c7362a5084d3897d3"><div class="ttname"><a href="a00171.html#gab997545661877d2c7362a5084d3897d3">glm::packSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit signe...</div></div>
+<div class="ttc" id="a00171_html_gab6bbd5be3b8e6db538ecb33a7844481c"><div class="ttname"><a href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">glm::packUnorm2x4</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gacb9a3df68172c1193c9d701a3fa4d88b"><div class="ttname"><a href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">glm::packUnorm</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uintType, P > packUnorm(vecType< floatType, P > const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00157_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00547">type_vec.hpp:547</a></div></div>
+<div class="ttc" id="a00171_html_gafe2f7b39caf8f5ec555e1c059ec530e6"><div class="ttname"><a href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">glm::packHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component floating-point ...</div></div>
+<div class="ttc" id="a00171_html_gaec4112086d7fb133bea104a7c237de52"><div class="ttname"><a href="a00171.html#gaec4112086d7fb133bea104a7c237de52">glm::packUnorm3x5_1x1</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_ga768e0337dd6246773f14aa0a421fe9a8"><div class="ttname"><a href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">glm::packUnorm1x5_1x6_1x5</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const &v)</div><div class="ttdoc">Convert each component of the normalized floating-point vector into unsigned integer values...</div></div>
+<div class="ttc" id="a00171_html_gaaddf9c353528fe896106f7181219c7f4"><div class="ttname"><a href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">glm::unpackSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga6be3cfb2cce3702f03e91bbeb5286d7e"><div class="ttname"><a href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">glm::packSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_ga4944ad465ff950e926d49621f916c78d"><div class="ttname"><a href="a00171.html#ga4944ad465ff950e926d49621f916c78d">glm::packF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="ttc" id="a00171_html_ga4851ff86678aa1c7ace9d67846894285"><div class="ttname"><a href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">glm::unpackSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)</div><div class="ttdoc">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga2e50476132fe5f27f08e273d9c70d85b"><div class="ttname"><a href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">glm::unpackUnorm2x4</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00171_html_ga96dd15002370627a443c835ab03a766c"><div class="ttname"><a href="a00171.html#ga96dd15002370627a443c835ab03a766c">glm::unpackSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga8b128e89be449fc71336968a66bf6e1a"><div class="ttname"><a href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">glm::unpackSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </div></div>
+<div class="ttc" id="a00171_html_ga4b2fa60df3460403817d28b082ee0736"><div class="ttname"><a href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">glm::packUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm1x8(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 8-bit integer value. ...</div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
+<div class="ttc" id="a00171_html_ga5ff95ff5bc16f396432ab67243dbae4d"><div class="ttname"><a href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">glm::unpackUnorm3x5_1x1</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p)</div><div class="ttdoc">Convert each unsigned integer components of a vector to normalized floating-point values...</div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+<div class="ttc" id="a00171_html_ga1f63c264e7ab63264e2b2a99fd393897"><div class="ttname"><a href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">glm::packUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
+<div class="ttc" id="a00171_html_ga7a4fbf79be9740e3c57737bc2af05e5b"><div class="ttname"><a href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">glm::unpackSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
+<div class="ttc" id="a00157_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00520">type_vec.hpp:520</a></div></div>
+<div class="ttc" id="a00171_html_ga8a1ee625d2707c60530fb3fca2980b19"><div class="ttname"><a href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">glm::packUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit unsig...</div></div>
+<div class="ttc" id="a00171_html_ga2b1fd1e854705b1345e98409e0a25e50"><div class="ttname"><a href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">glm::unpackF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00081.html b/doc/api/a00081.html
index 7bf8f84..69b6e35 100644
--- a/doc/api/a00081.html
+++ b/doc/api/a00081.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: norm.hpp File Reference</title>
+<title>0.9.8: packing.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,66 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">norm.hpp File Reference</div> </div>
+<div class="title">packing.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00081_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga3544f6288d3bce2cf2a9f6ebe39e0557">distance2</a> (T const &p0, T const &p1)</td></tr>
-<tr class="separator:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a> (genType const &p0, genType const &p1)</td></tr>
-<tr class="separator:gaec2d9df62436879b48207d39516f3788"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga08c670024cd230e22f8b853f185ff533">length2</a> (T const &x)</td></tr>
-<tr class="separator:ga08c670024cd230e22f8b853f185ff533"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a> (genType const &x)</td></tr>
-<tr class="separator:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)</td></tr>
-<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3< T, P > const &x, unsigned int Depth)</td></tr>
-<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00215.html">GLM_GTX_norm</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00081_source.html">norm.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00081_source.html">packing.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00081_source.html b/doc/api/a00081_source.html
index 7648764..2779db7 100644
--- a/doc/api/a00081_source.html
+++ b/doc/api/a00081_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: norm.hpp Source File</title>
+<title>0.9.8: packing.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,84 +41,19 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">norm.hpp</div> </div>
+<div class="title">packing.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00081.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_norm extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> T <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T <span class="keyword">const</span> & p0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T <span class="keyword">const</span> & p1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <a class="code" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> genType <span class="keyword">const</span> & p0,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> genType <span class="keyword">const</span> & p1);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a>(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tvec3<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> tvec3<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL T <a class="code" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Depth);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#include "norm.inl"</span></div>
-<div class="ttc" id="a00215_html_gaab931b0d1acfe2f9c1cb78311edf24fc"><div class="ttname"><a href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">glm::lxNorm</a></div><div class="ttdeci">GLM_FUNC_DECL T lxNorm(tvec3< T, P > const &x, unsigned int Depth)</div><div class="ttdoc">Returns the L norm of v. </div></div>
-<div class="ttc" id="a00215_html_gaec2d9df62436879b48207d39516f3788"><div class="ttname"><a href="a00215.html#gaec2d9df62436879b48207d39516f3788">glm::distance2</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type distance2(genType const &p0, genType const &p1)</div><div class="ttdoc">Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </div></div>
-<div class="ttc" id="a00215_html_ga0a8cb8a0ce88d1d977de23209bf04610"><div class="ttname"><a href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">glm::l2Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l2Norm(tvec3< T, P > const &x)</div><div class="ttdoc">Returns the L2 norm of v. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00215_html_ga6d5964f09cdb43803496a5ee3ced71cb"><div class="ttname"><a href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">glm::l1Norm</a></div><div class="ttdeci">GLM_FUNC_DECL T l1Norm(tvec3< T, P > const &v)</div><div class="ttdoc">Returns the L1 norm of v. </div></div>
-<div class="ttc" id="a00215_html_gaa279ba7fdecbed3f9f2b60502b7ec8ca"><div class="ttname"><a href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type length2(genType const &x)</div><div class="ttdoc">Returns the squared length of x. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00034.html">detail/func_packing.hpp</a>"</span></div>
+<div class="ttc" id="a00034_html"><div class="ttname"><a href="a00034.html">func_packing.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00082.html b/doc/api/a00082.html
deleted file mode 100644
index d9bbc61..0000000
--- a/doc/api/a00082.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normal.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">normal.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00082_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</td></tr>
-<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00216.html">GLM_GTX_normal</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00082_source.html">normal.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00082_source.html b/doc/api/a00082_source.html
index 09c74b4..6ca7b8c 100644
--- a/doc/api/a00082_source.html
+++ b/doc/api/a00082_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normal.hpp Source File</title>
+<title>0.9.8: pages.doxy Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,38 +41,15 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">normal.hpp</div> </div>
+<div class="title">pages.doxy</div> </div>
</div><!--header-->
<div class="contents">
-<a href="a00082.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_normal extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & p1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec3<T, P> <span class="keyword">const</span> & p2, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec3<T, P> <span class="keyword">const</span> & p3);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "normal.inl"</span></div>
-<div class="ttc" id="a00216_html_ga7842850bcda582f1756883e3ed950e14"><div class="ttname"><a href="a00216.html#ga7842850bcda582f1756883e3ed950e14">glm::triangleNormal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > triangleNormal(tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</div><div class="ttdoc">Computes triangle normal from triangle points. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00083.html b/doc/api/a00083.html
index a9204db..f837f20 100644
--- a/doc/api/a00083.html
+++ b/doc/api/a00083.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normalize_dot.hpp File Reference</title>
+<title>0.9.8: perpendicular.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">normalize_dot.hpp File Reference</div> </div>
+<div class="title">perpendicular.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,27 +56,17 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &x, vecType const &Normal)</td></tr>
+<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00217.html">GLM_GTX_normalize_dot</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-09-28 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00217.html">GLM_GTX_perpendicular</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> (dependence) </dd></dl>
+<a class="el" href="a00219.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00083_source.html">normalize_dot.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00083_source.html">perpendicular.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00083_source.html b/doc/api/a00083_source.html
index b86653e..050d14a 100644
--- a/doc/api/a00083_source.html
+++ b/doc/api/a00083_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: normalize_dot.hpp Source File</title>
+<title>0.9.8: perpendicular.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,34 +46,33 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">normalize_dot.hpp</div> </div>
+<div class="title">perpendicular.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00083.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtx/fast_square_root.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_normalize_dot extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL T <a class="code" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL T <a class="code" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a>(vecType<T, P> <span class="keyword">const</span> & x, vecType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "normalize_dot.inl"</span></div>
-<div class="ttc" id="a00217_html_ga8593b21bc2fe22184f01d5e08b5a2024"><div class="ttname"><a href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">glm::fastNormalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T fastNormalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00217_html_gaffbc2f2cb15838de8886a68048f9004d"><div class="ttname"><a href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">glm::normalizeDot</a></div><div class="ttdeci">GLM_FUNC_DECL T normalizeDot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Normalize parameters and returns the dot product of x and y. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/projection.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_perpendicular extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL vecType <a class="code" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a>(</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> vecType <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> vecType <span class="keyword">const</span> & Normal);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "perpendicular.inl"</span></div>
+<div class="ttc" id="a00217_html_ga41f8c73da9798a18e6b1e32f1e301f07"><div class="ttname"><a href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">glm::perp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType perp(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x a perpendicular axis of Normal. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00084.html b/doc/api/a00084.html
index 1a2a1e2..793732a 100644
--- a/doc/api/a00084.html
+++ b/doc/api/a00084.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: number_precision.hpp File Reference</title>
+<title>0.9.8: polar_coordinates.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,63 +46,28 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">number_precision.hpp File Reference</div> </div>
+<div class="title">polar_coordinates.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00084_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
-<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
-<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
-<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
-<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
-<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
-<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
-typedef u16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
-<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
-typedef u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
-<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
-typedef u64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
-<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
-typedef u8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
-<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2< T, P > const &polar)</td></tr>
+<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3< T, P > const &euclidean)</td></tr>
+<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00218.html">GLM_GTX_number_precision</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-05-10 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00084_source.html">number_precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00084_source.html">polar_coordinates.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00084_source.html b/doc/api/a00084_source.html
index b145b8d..2c2c2a1 100644
--- a/doc/api/a00084_source.html
+++ b/doc/api/a00084_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: number_precision.hpp Source File</title>
+<title>0.9.8: polar_coordinates.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,64 +46,36 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">number_precision.hpp</div> </div>
+<div class="title">polar_coordinates.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00084.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_number_precision extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span>gtx</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// Unsigned int vector types </span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980"> 63</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> <a class="code" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a>; </div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0"> 64</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> <a class="code" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a>; </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3"> 65</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a> <a class="code" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a>; </div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00218.html#ga818de170e2584ab037130f2881925974"> 66</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a> <a class="code" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a>; </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Float vector types </span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943"> 71</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a>; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1"> 72</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a>; </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6"> 77</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a>; </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348"> 78</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a> <a class="code" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a>; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00218.html#ga59bfa589419b5265d01314fcecd33435"> 79</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a>; </div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd"> 80</a></span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a> <a class="code" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a>; </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }<span class="comment">//namespace gtx</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "number_precision.inl"</span></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00218_html_gac88c6a4dbfc380aa26e3adbbade36348"><div class="ttname"><a href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">glm::gtx::f32mat1x1</a></div><div class="ttdeci">f32 f32mat1x1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00078">number_precision.hpp:78</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00218_html_ga5853fe457f4c8a6bc09343d0e9833980"><div class="ttname"><a href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">glm::gtx::u8vec1</a></div><div class="ttdeci">u8 u8vec1</div><div class="ttdoc">8bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00063">number_precision.hpp:63</a></div></div>
-<div class="ttc" id="a00218_html_ga145ad477a2a3e152855511c3b52469a6"><div class="ttname"><a href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">glm::gtx::f32mat1</a></div><div class="ttdeci">f32 f32mat1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00077">number_precision.hpp:77</a></div></div>
-<div class="ttc" id="a00218_html_ga07f8d7348eb7ae059a84c118fdfeb943"><div class="ttname"><a href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">glm::gtx::f32vec1</a></div><div class="ttdeci">f32 f32vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00071">number_precision.hpp:71</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00218_html_gae5987a61b8c03d5c432a9e62f0b3efe1"><div class="ttname"><a href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">glm::gtx::f64vec1</a></div><div class="ttdeci">f64 f64vec1</div><div class="ttdoc">Single-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00072">number_precision.hpp:72</a></div></div>
-<div class="ttc" id="a00218_html_ga448eeb08d0b7d8c43a8b292c981955fd"><div class="ttname"><a href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">glm::gtx::f64mat1x1</a></div><div class="ttdeci">f64 f64mat1x1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00080">number_precision.hpp:80</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00218_html_ga52cc069a92e126c3a8dcde93424d2ef0"><div class="ttname"><a href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">glm::gtx::u16vec1</a></div><div class="ttdeci">u16 u16vec1</div><div class="ttdoc">16bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00064">number_precision.hpp:64</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00218_html_ga59bfa589419b5265d01314fcecd33435"><div class="ttname"><a href="a00218.html#ga59bfa589419b5265d01314fcecd33435">glm::gtx::f64mat1</a></div><div class="ttdeci">f64 f64mat1</div><div class="ttdoc">Double-precision floating-point scalar. (from GLM_GTX_number_precision extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00079">number_precision.hpp:79</a></div></div>
-<div class="ttc" id="a00218_html_ga818de170e2584ab037130f2881925974"><div class="ttname"><a href="a00218.html#ga818de170e2584ab037130f2881925974">glm::gtx::u64vec1</a></div><div class="ttdeci">u64 u64vec1</div><div class="ttdoc">64bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00066">number_precision.hpp:66</a></div></div>
-<div class="ttc" id="a00218_html_ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><div class="ttname"><a href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">glm::gtx::u32vec1</a></div><div class="ttdeci">u32 u32vec1</div><div class="ttdoc">32bit unsigned integer scalar. (from GLM_GTX_number_precision extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00084_source.html#l00065">number_precision.hpp:65</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_polar_coordinates extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>(</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> tvec2<T, P> <span class="keyword">const</span> & <a class="code" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "polar_coordinates.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00218_html_gafcf95a38c780a4ad5ba14c8ac9e522bb"><div class="ttname"><a href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">glm::polar</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > polar(tvec3< T, P > const &euclidean)</div><div class="ttdoc">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...</div></div>
+<div class="ttc" id="a00218_html_ga45ece1fbf7260c43e0f873c498202581"><div class="ttname"><a href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">glm::euclidean</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > euclidean(tvec2< T, P > const &polar)</div><div class="ttdoc">Convert Polar to Euclidean coordinates. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00085.html b/doc/api/a00085.html
index 6fd8d18..8be5648 100644
--- a/doc/api/a00085.html
+++ b/doc/api/a00085.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: optimum_pow.hpp File Reference</title>
+<title>0.9.8: precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,43 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">optimum_pow.hpp File Reference</div> </div>
+<div class="title">precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00085_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &x)</td></tr>
-<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &x)</td></tr>
-<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &x)</td></tr>
-<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00219.html">GLM_GTX_optimum_pow</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00085_source.html">optimum_pow.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00085_source.html">precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00085_source.html b/doc/api/a00085_source.html
index bb0e89c..efbdf16 100644
--- a/doc/api/a00085_source.html
+++ b/doc/api/a00085_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: optimum_pow.hpp Source File</title>
+<title>0.9.8: precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,45 +41,77 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">optimum_pow.hpp</div> </div>
+<div class="title">precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00085.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_optimum_pow extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span>gtx</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL genType <a class="code" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL genType <a class="code" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL genType <a class="code" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }<span class="comment">//namespace gtx</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "optimum_pow.inl"</span></div>
-<div class="ttc" id="a00219_html_ga35689d03cd434d6ea819f1942d3bf82e"><div class="ttname"><a href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">glm::gtx::pow3</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow3(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 3. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00219_html_gacef0968763026e180e53e735007dbf5a"><div class="ttname"><a href="a00219.html#gacef0968763026e180e53e735007dbf5a">glm::gtx::pow4</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow4(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 4. </div></div>
-<div class="ttc" id="a00219_html_ga19aaff3213bf23bdec3ef124ace237e9"><div class="ttname"><a href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">glm::gtx::pow2</a></div><div class="ttdeci">GLM_FUNC_DECL genType pow2(genType const &x)</div><div class="ttdoc">Returns x raised to the power of 2. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">enum</span> precision</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> {</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> packed_highp,</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> packed_mediump,</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> packed_lowp,</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> aligned_highp,</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> aligned_mediump,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> aligned_lowp,</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> aligned = aligned_highp,</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> highp = packed_highp,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> mediump = packed_mediump,</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> lowp = packed_lowp,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> packed = packed_highp,</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> defaultp = aligned_highp</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> defaultp = highp</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> };</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <glm::precision P></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>is_aligned</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> };</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span><></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>is_aligned<<a class="code" href="a00141.html">glm</a>::aligned_lowp></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span><></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">struct </span>is_aligned<<a class="code" href="a00141.html">glm</a>::aligned_mediump></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> };</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span><></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">struct </span>is_aligned<<a class="code" href="a00141.html">glm</a>::aligned_highp></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> value = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00086.html b/doc/api/a00086.html
index 9ad4894..60718b6 100644
--- a/doc/api/a00086.html
+++ b/doc/api/a00086.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: orthonormalize.hpp File Reference</title>
+<title>0.9.8: projection.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">orthonormalize.hpp File Reference</div> </div>
+<div class="title">projection.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,27 +56,15 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &x, vecType const &Normal)</td></tr>
+<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00220.html">GLM_GTX_orthonormalize</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00219.html">GLM_GTX_projection</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00086_source.html">orthonormalize.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00086_source.html">projection.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00086_source.html b/doc/api/a00086_source.html
index 3d3bbf6..6feb424 100644
--- a/doc/api/a00086_source.html
+++ b/doc/api/a00086_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: orthonormalize.hpp Source File</title>
+<title>0.9.8: projection.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,35 +46,30 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">orthonormalize.hpp</div> </div>
+<div class="title">projection.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00086.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_orthonormalize extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a>(tvec3<T, P> <span class="keyword">const</span> & x, tvec3<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "orthonormalize.inl"</span></div>
-<div class="ttc" id="a00220_html_gad7afff30d7323fdc7aed7f5a16a0c596"><div class="ttname"><a href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">glm::orthonormalize</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > orthonormalize(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Orthonormalizes x according y. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_projection extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL vecType <a class="code" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>(vecType <span class="keyword">const</span> & x, vecType <span class="keyword">const</span> & Normal);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "projection.inl"</span></div>
+<div class="ttc" id="a00219_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00087.html b/doc/api/a00087.html
index c3eec70..c4a956a 100644
--- a/doc/api/a00087.html
+++ b/doc/api/a00087.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp File Reference</title>
+<title>0.9.8: quaternion.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/packing.hpp File Reference</div> </div>
+<div class="title">gtc/quaternion.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,79 +56,100 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &v)</td></tr>
-<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
-<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &v)</td></tr>
-<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
-<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
-<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &v)</td></tr>
-<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &v)</td></tr>
-<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
-<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
-<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
-<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
-<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class quatType> </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType< T, P > const &x, quatType< T, P > const &y)</td></tr>
+<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga0a850f06736d25887536d0da88e63c70"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3< T, P > const &x)</td></tr>
+<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4< T, P > const &x)</td></tr>
+<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00176.html">GLM_GTC_packing</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-08-08 / 2013-08-08 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00172.html">GLM_GTC_quaternion</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00087_source.html">gtc/packing.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00087_source.html">gtc/quaternion.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00087_source.html b/doc/api/a00087_source.html
index ff97023..ffed5f9 100644
--- a/doc/api/a00087_source.html
+++ b/doc/api/a00087_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp Source File</title>
+<title>0.9.8: quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,122 +46,278 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/packing.hpp</div> </div>
+<div class="title">gtc/quaternion.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00087.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_precision.hpp</a>"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_packing extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL uint8 <a class="code" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_quaternion extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">struct </span>tquat</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> tquat<T, P> type;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-pedantic"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wgnu-anonymous-struct"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wnested-anon-types"</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>{ T x, y, z, w;};</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typename</span> detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> T x, y, z, w;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a>(uint8 p);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a>(uint16 p);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL uint8 <a class="code" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a>(<span class="keywordtype">float</span> s);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a>(uint8 p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL GLM_CONSTEXPR tquat() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, P> const & q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> template <precision Q></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, Q> const & q);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tquat(ctor);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & s, tvec3<T, P> const & v);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & w, T const & x, T const & y, T const & z);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat<U, Q> const & q);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat3x3<T, P>();</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat4x4<T, P>();</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tquat(tvec3<T, P> <span class="keyword">const</span> & u, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL GLM_EXPLICIT tquat(tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tquat<T, P> & operator=(tquat<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tquat<T, P> & operator=(tquat<U, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<U, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tquat<T, P> & operator-=(tquat<U, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<U, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tquat<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tquat<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> };</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> <span class="keyword">const</span> & q, tquat<T, P> <span class="keyword">const</span> & p);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tquat<T, P> <span class="keyword">const</span> & p);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tvec3<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v, tquat<T, P> <span class="keyword">const</span> & q);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> <a class="code" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a>(uint16 p);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tvec4<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v, tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tquat<T, P> operator*(T <span class="keyword">const</span> & s, tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tquat<T, P> operator/(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tquat<T, P> <span class="keyword">const</span> & q1, tquat<T, P> <span class="keyword">const</span> & q2);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tquat<T, P> <span class="keyword">const</span> & q1, tquat<T, P> <span class="keyword">const</span> & q2);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a>(uint16 p);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a>(uint16 p);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL uint16 <a class="code" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a>(<span class="keywordtype">float</span> v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a>(uint16 v);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL uint64 <a class="code" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a>(uint64 p);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a>(<a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> <a class="code" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a>(<a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> <a class="code" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a>(uint32 p);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>quatType></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a>(quatType<T, P> <span class="keyword">const</span> & x, quatType<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a>(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b27 [...]
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat3x3<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat4x4<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> GLM_FUNC_DECL T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a>(T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> <a class="code" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a>(uint32 p);</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> GLM_FUNC_DECL uint32 <a class="code" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a>(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> GLM_FUNC_DECL <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> <a class="code" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a>(uint32 p);</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor">#include "packing.inl"</span></div>
-<div class="ttc" id="a00176_html_ga9f82737bf2a44bedff1d286b76837886"><div class="ttname"><a href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">glm::packUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 16-bit integer value. </div></div>
-<div class="ttc" id="a00176_html_ga83d34160a5cb7bcb5339823210fc7501"><div class="ttname"><a href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">glm::unpackUnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </div></div>
-<div class="ttc" id="a00176_html_ga1f63c264e7ab63264e2b2a99fd393897"><div class="ttname"><a href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">glm::packUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_gab22f8bcfdb5fc65af4701b25f143c1af"><div class="ttname"><a href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">glm::packSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm1x16(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into 16-bit integer value. </div></div>
-<div class="ttc" id="a00176_html_gac37dedaba24b00adb4ec6e8f92c19dbf"><div class="ttname"><a href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">glm::unpackHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackHalf1x16(uint16 v)</div><div class="ttdoc">Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...</div></div>
-<div class="ttc" id="a00176_html_ga8a1ee625d2707c60530fb3fca2980b19"><div class="ttname"><a href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">glm::packUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit unsig...</div></div>
-<div class="ttc" id="a00176_html_ga2b1fd1e854705b1345e98409e0a25e50"><div class="ttname"><a href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">glm::unpackF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...</div></div>
-<div class="ttc" id="a00176_html_ga9a05330e5490be0908d3b117d82aff56"><div class="ttname"><a href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">glm::unpackI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...</div></div>
-<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00176_html_ga358943934d21da947d5bcc88c2ab7832"><div class="ttname"><a href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">glm::packSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 16-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_ga637cbe3913dd95c6e7b4c99c61bd611f"><div class="ttname"><a href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">glm::unpackUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00176_html_ga9a666b1c688ab54100061ed06526de6e"><div class="ttname"><a href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">glm::packUnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
-<div class="ttc" id="a00176_html_ga57dfc41b2eb20b0ac00efae7d9c49dcd"><div class="ttname"><a href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">glm::unpackHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)</div><div class="ttdoc">Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...</div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00176_html_gab997545661877d2c7362a5084d3897d3"><div class="ttname"><a href="a00176.html#gab997545661877d2c7362a5084d3897d3">glm::packSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)</div><div class="ttdoc">First, converts the first three components of the normalized floating-point value v into 10-bit signe...</div></div>
-<div class="ttc" id="a00176_html_ga2ae149c5d2473ac1e5f347bb654a242d"><div class="ttname"><a href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">glm::unpackUnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </div></div>
-<div class="ttc" id="a00176_html_ga06ecb6afb902dba45419008171db9023"><div class="ttname"><a href="a00176.html#ga06ecb6afb902dba45419008171db9023">glm::packI3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component signed integer ...</div></div>
-<div class="ttc" id="a00176_html_ga1319207e30874fb4931a9ee913983ee1"><div class="ttname"><a href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">glm::unpackUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)</div><div class="ttdoc">Convert a single 8-bit integer to a normalized floating-point value. </div></div>
-<div class="ttc" id="a00176_html_ga7a4fbf79be9740e3c57737bc2af05e5b"><div class="ttname"><a href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">glm::unpackSnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00176_html_ga6be3cfb2cce3702f03e91bbeb5286d7e"><div class="ttname"><a href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">glm::packSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)</div><div class="ttdoc">First, converts each component of the normalized floating-point value v into 8-bit integer values...</div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00176_html_gae3592e0795e62aaa1865b3a10496a7a1"><div class="ttname"><a href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">glm::packSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packSnorm1x8(float s)</div><div class="ttdoc">First, converts the normalized floating-point value v into 8-bit integer value. </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00176_html_gada3d88d59f0f458f9c51a9fd359a4bc0"><div class="ttname"><a href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">glm::packU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...</div></div>
-<div class="ttc" id="a00176_html_gafe2f7b39caf8f5ec555e1c059ec530e6"><div class="ttname"><a href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">glm::packHalf4x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a four-component floating-point ...</div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00176_html_ga48df3042a7d079767f5891a1bfd8a60a"><div class="ttname"><a href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">glm::unpackU3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)</div><div class="ttdoc">Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...</div></div>
-<div class="ttc" id="a00176_html_ga4b2fa60df3460403817d28b082ee0736"><div class="ttname"><a href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">glm::packUnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL uint8 packUnorm1x8(float v)</div><div class="ttdoc">First, converts the normalized floating-point value v into a 8-bit integer value. ...</div></div>
-<div class="ttc" id="a00176_html_gaaddf9c353528fe896106f7181219c7f4"><div class="ttname"><a href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">glm::unpackSnorm4x16</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)</div><div class="ttdoc">First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga96dd15002370627a443c835ab03a766c"><div class="ttname"><a href="a00176.html#ga96dd15002370627a443c835ab03a766c">glm::unpackSnorm1x16</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga5156d3060355fe332865da2c7f78815f"><div class="ttname"><a href="a00176.html#ga5156d3060355fe332865da2c7f78815f">glm::unpackUnorm3x10_1x2</a></div><div class="ttdeci">GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)</div><div class="ttdoc">First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga8b128e89be449fc71336968a66bf6e1a"><div class="ttname"><a href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">glm::unpackSnorm2x8</a></div><div class="ttdeci">GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)</div><div class="ttdoc">First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga4851ff86678aa1c7ace9d67846894285"><div class="ttname"><a href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">glm::unpackSnorm1x8</a></div><div class="ttdeci">GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)</div><div class="ttdoc">First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </div></div>
-<div class="ttc" id="a00176_html_ga43f2093b6ff192a79058ff7834fc3528"><div class="ttname"><a href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">glm::packHalf1x16</a></div><div class="ttdeci">GLM_FUNC_DECL uint16 packHalf1x16(float v)</div><div class="ttdoc">Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...</div></div>
-<div class="ttc" id="a00176_html_ga4944ad465ff950e926d49621f916c78d"><div class="ttname"><a href="a00176.html#ga4944ad465ff950e926d49621f916c78d">glm::packF2x11_1x10</a></div><div class="ttdeci">GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)</div><div class="ttdoc">First, converts the first two components of the normalized floating-point value v into 11-bit signles...</div></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor">#include "quaternion.inl"</span></div>
+<div class="ttc" id="a00172_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat< T, P > const &x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00172_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat< T, P > const &x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
+<div class="ttc" id="a00172_html_gac187115710365e0b2902220b9611e7b6"><div class="ttname"><a href="a00172.html#gac187115710365e0b2902220b9611e7b6">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > equal(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
+<div class="ttc" id="a00172_html_gaa8f42979c921e450ff2812fb43c25702"><div class="ttname"><a href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotate(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components axis and an angle. </div></div>
+<div class="ttc" id="a00172_html_ga0906a221a2037519fcf316ea5c1e3b3e"><div class="ttname"><a href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > greaterThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_ga3e4615e9884dd0f41f5617b9848a5d9c"><div class="ttname"><a href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat4x4< T, P > const &x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div></div>
+<div class="ttc" id="a00172_html_gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><div class="ttname"><a href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > isnan(tquat< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...</div></div>
+<div class="ttc" id="a00172_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00172.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
+<div class="ttc" id="a00172_html_ga09d21a588ae425ac7517ea65cc59a5ae"><div class="ttname"><a href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > greaterThan(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
+<div class="ttc" id="a00172_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00172_html_ga35b6bcb22ac6d1e4a85440f5b69bdf86"><div class="ttname"><a href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > normalize(tquat< T, P > const &q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
+<div class="ttc" id="a00172_html_gac682181783027544c8d251b4d3a60cf8"><div class="ttname"><a href="a00172.html#gac682181783027544c8d251b4d3a60cf8">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(tquat< T, P > const &q)</div><div class="ttdoc">Returns the length of the quaternion. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00172_html_gac54dfc83de465a2d03e90d342242ab3d"><div class="ttname"><a href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(quatType< T, P > const &x, quatType< T, P > const &y)</div><div class="ttdoc">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </div></div>
+<div class="ttc" id="a00172_html_ga7c81996ed2724f26fe76faf352c76294"><div class="ttname"><a href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > lessThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
+<div class="ttc" id="a00172_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)</div><div class="ttdoc">Returns euler angles, pitch as x, yaw as y, roll as z. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00172_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga484c4633f7c05d8e29ee8b452350f539"><div class="ttname"><a href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > notEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
+<div class="ttc" id="a00172_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00172_html_ga37ae19405f1ccf766f27e4fcd035d859"><div class="ttname"><a href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">glm::angleAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > angleAxis(T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Build a quaternion from an angle and a normalized axis. </div></div>
+<div class="ttc" id="a00172_html_ga91a40d16a3b5bb47d71ac1a3fb688ffa"><div class="ttname"><a href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > lessThan(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="ttc" id="a00172_html_ga0a850f06736d25887536d0da88e63c70"><div class="ttname"><a href="a00172.html#ga0a850f06736d25887536d0da88e63c70">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > isinf(tquat< T, P > const &x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
+<div class="ttc" id="a00172_html_ga31cc82178742c36450f5662bd4fb30b0"><div class="ttname"><a href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > mix(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga5f47300c024c2d809944e6ac661d6d14"><div class="ttname"><a href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > inverse(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q inverse. </div></div>
+<div class="ttc" id="a00172_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat< T, P > const &x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00088.html b/doc/api/a00088.html
index 048f97a..76a3f54 100644
--- a/doc/api/a00088.html
+++ b/doc/api/a00088.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp File Reference</title>
+<title>0.9.8: quaternion.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,83 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">packing.hpp File Reference</div> </div>
+<div class="title">gtx/quaternion.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00088_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3< T, P > const &v, tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</td></tr>
+<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat< T, P > const &x, T const &y)</td></tr>
+<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat< T, P > const &q, tvec4< T, P > const &v)</td></tr>
+<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3< T, P > const &orig, tvec3< T, P > const &dest)</td></tr>
+<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</td></tr>
+<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3< T, P > const &x)</td></tr>
+<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4< T, P > const &x)</td></tr>
+<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00220.html">GLM_GTX_quaternion</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00088_source.html">packing.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00088_source.html">gtx/quaternion.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00088_source.html b/doc/api/a00088_source.html
index af98a97..3a089c4 100644
--- a/doc/api/a00088_source.html
+++ b/doc/api/a00088_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: packing.hpp Source File</title>
+<title>0.9.8: quaternion.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,19 +41,143 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">packing.hpp</div> </div>
+<div class="title">gtx/quaternion.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00088.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00035.html">detail/func_packing.hpp</a>"</span></div>
-<div class="ttc" id="a00035_html"><div class="ttname"><a href="a00035.html">func_packing.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtx/norm.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_quaternion extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tquat<T, P> <span class="keyword">const</span> & q1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> tquat<T, P> <span class="keyword">const</span> & q2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tquat<T, P> <span class="keyword">const</span> & s1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> tquat<T, P> <span class="keyword">const</span> & s2,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> T <span class="keyword">const</span> & h);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a>(</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tquat<T, P> <span class="keyword">const</span> & prev,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tquat<T, P> <span class="keyword">const</span> & curr,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tquat<T, P> <span class="keyword">const</span> & next);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a>(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a>(</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a>(</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> T <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">//template<typename T, precision P></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">//tquat<T, P> sqrt(</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// tquat<T, P> const & q);</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL T <a class="code" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a>(</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b"> 124</a></span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a>(</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> tquat<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(x);}</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad"> 131</a></span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a>(</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> tquat<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(x);}</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc"> 138</a></span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> tmat3x3<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2"> 145</a></span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> tmat4x4<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a>(</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> tquat<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> T <span class="keyword">const</span> & a);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> tquat<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> T <span class="keyword">const</span> & a);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a>(</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> tvec3<T, P> <span class="keyword">const</span> & orig, </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> tvec3<T, P> <span class="keyword">const</span> & dest);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL T <a class="code" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#include "quaternion.inl"</span></div>
+<div class="ttc" id="a00220_html_ga42a0cf206c59eaeff4c67dd62e09a580"><div class="ttname"><a href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > pow(tquat< T, P > const &x, T const &y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="ttc" id="a00220_html_ga02b45352c7ac345cabc9e877314acda6"><div class="ttname"><a href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(tquat< T, P > const &q)</div><div class="ttdoc">Returns the squared length of x. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00220_html_gaedc9fba6485eade37cc26c16df9d7aad"><div class="ttname"><a href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">glm::toMat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > toMat4(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00088_source.html#l00131">gtx/quaternion.hpp:131</a></div></div>
+<div class="ttc" id="a00220_html_ga4bfe3c7770fc43d14b8ef0058c4a86b5"><div class="ttname"><a href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &v, tquat< T, P > const &q)</div><div class="ttdoc">Compute a cross product between a vector and a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga3534443de2a1a806f386976546cddc81"><div class="ttname"><a href="a00220.html#ga3534443de2a1a806f386976546cddc81">glm::shortMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > shortMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion interpolation using the rotation short path. </div></div>
+<div class="ttc" id="a00220_html_ga01935b66ba245c2fd7dee5427d86ce9b"><div class="ttname"><a href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">glm::toMat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > toMat3(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00088_source.html#l00124">gtx/quaternion.hpp:124</a></div></div>
+<div class="ttc" id="a00220_html_gac4856d356c5c97cec74e9b672ea89240"><div class="ttname"><a href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">glm::rotation</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotation(tvec3< T, P > const &orig, tvec3< T, P > const &dest)</div><div class="ttdoc">Compute the rotation between two vectors. </div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00220_html_ga90de879d97487ec804522dd418e5d8a0"><div class="ttname"><a href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">glm::extractRealComponent</a></div><div class="ttdeci">GLM_FUNC_DECL T extractRealComponent(tquat< T, P > const &q)</div><div class="ttdoc">Extract the real component of a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga56abae85b3669c866e91f3c57b298b9c"><div class="ttname"><a href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">glm::intermediate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > intermediate(tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</div><div class="ttdoc">Returns an intermediate control point for squad interpolation. </div></div>
+<div class="ttc" id="a00220_html_ga17295173d4c2b5ae49b84e9993b63a62"><div class="ttname"><a href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > exp(tquat< T, P > const &q)</div><div class="ttdoc">Returns a exp of a quaternion. </div></div>
+<div class="ttc" id="a00220_html_ga96575f8868b3f2aa3e13cab9b94ccbd3"><div class="ttname"><a href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotate(tquat< T, P > const &q, tvec4< T, P > const &v)</div><div class="ttdoc">Rotates a 4 components vector by a quaternion. </div></div>
+<div class="ttc" id="a00220_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00220.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
+<div class="ttc" id="a00220_html_ga808dd0f83ee8150db7e652313bde8eb2"><div class="ttname"><a href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">glm::toQuat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > toQuat(tmat4x4< T, P > const &x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00088_source.html#l00145">gtx/quaternion.hpp:145</a></div></div>
+<div class="ttc" id="a00172_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
+<div class="ttc" id="a00172_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
+<div class="ttc" id="a00220_html_gae75f537becdf2b1381b4482ec96e6c82"><div class="ttname"><a href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">glm::squad</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > squad(tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</div><div class="ttdoc">Compute a point on a path according squad equation. </div></div>
+<div class="ttc" id="a00220_html_ga791f42e134bfe97fc9c96f4668dd7489"><div class="ttname"><a href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > log(tquat< T, P > const &q)</div><div class="ttdoc">Returns a log of a quaternion. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00096.html b/doc/api/a00089.html
similarity index 73%
copy from doc/api/a00096.html
copy to doc/api/a00089.html
index f5d7fdd..c614afa 100644
--- a/doc/api/a00096.html
+++ b/doc/api/a00089.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: random.hpp File Reference</title>
+<title>0.9.8: random.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -52,45 +52,41 @@
</div><!--header-->
<div class="contents">
-<p><a href="a00096_source.html">Go to the source code of this file.</a></p>
+<p><a href="a00089_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template<typename genTYpe > </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a> (vecType< T, P > const &Min, vecType< T, P > const &Max)</td></tr>
+<tr class="separator:gaba9cec867916d894d794a32897b7fdfd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00178.html">GLM_GTC_random</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-09-18 / 2011-09-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00173.html">GLM_GTC_random</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
gtc_half_float (dependence) </dd>
<dd>
gtx_random (extended) </dd></dl>
-<p>Definition in file <a class="el" href="a00096_source.html">random.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00089_source.html">random.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00089_source.html b/doc/api/a00089_source.html
index 36f060b..e5a32d5 100644
--- a/doc/api/a00089_source.html
+++ b/doc/api/a00089_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: pages.doxy Source File</title>
+<title>0.9.8: random.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,15 +41,69 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_577c788b67d63fb3b3b5752bd495d0f2.html">doc</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">pages.doxy</div> </div>
+<div class="title">random.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<a href="a00089.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_random extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTYpe></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL genTYpe <a class="code" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> genTYpe Min,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> genTYpe Max);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a>(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> vecType<T, P> <span class="keyword">const</span> & Min,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> vecType<T, P> <span class="keyword">const</span> & Max);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a>(</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> genType Mean,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> genType Deviation);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a>(</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> T Radius);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a>(</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T Radius);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a>(</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T Radius);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a>(</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> T Radius);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#include "random.inl"</span></div>
+<div class="ttc" id="a00173_html_gaa9a6fc2d7a295b3857f7db23b1053d9d"><div class="ttname"><a href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">glm::sphericalRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > sphericalRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...</div></div>
+<div class="ttc" id="a00173_html_gad3a3ee7d26502a31ba552cb627a68606"><div class="ttname"><a href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">glm::diskRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > diskRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...</div></div>
+<div class="ttc" id="a00173_html_gaba9cec867916d894d794a32897b7fdfd"><div class="ttname"><a href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">glm::linearRand</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > linearRand(vecType< T, P > const &Min, vecType< T, P > const &Max)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a linear distribution. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00173_html_ga5506dee301160e3a06aef9b9bc7a0a83"><div class="ttname"><a href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">glm::ballRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > ballRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...</div></div>
+<div class="ttc" id="a00173_html_gae989c26a2899b2fb7444abe7c275c29c"><div class="ttname"><a href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">glm::circularRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > circularRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...</div></div>
+<div class="ttc" id="a00173_html_ga5193a83e49e4fdc5652c084711083574"><div class="ttname"><a href="a00173.html#ga5193a83e49e4fdc5652c084711083574">glm::gaussRand</a></div><div class="ttdeci">GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a gaussian distribution. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00090.html b/doc/api/a00090.html
index ced6e85..62a0306 100644
--- a/doc/api/a00090.html
+++ b/doc/api/a00090.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: perpendicular.hpp File Reference</title>
+<title>0.9.8: range.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,35 +45,17 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">perpendicular.hpp File Reference</div> </div>
+<div class="title">range.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00090_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &x, vecType const &Normal)</td></tr>
-<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00221.html">GLM_GTX_perpendicular</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00223.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00221.html">GLM_GTX_range</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Joshua Moerman </dd></dl>
-<p>Definition in file <a class="el" href="a00090_source.html">perpendicular.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00090_source.html">range.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00090_source.html b/doc/api/a00090_source.html
index 6525507..35b7ac2 100644
--- a/doc/api/a00090_source.html
+++ b/doc/api/a00090_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: perpendicular.hpp Source File</title>
+<title>0.9.8: range.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,33 +46,82 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">perpendicular.hpp</div> </div>
+<div class="title">range.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00090.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/projection.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_perpendicular extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL vecType <a class="code" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> vecType <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> vecType <span class="keyword">const</span> & Normal);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "perpendicular.inl"</span></div>
-<div class="ttc" id="a00221_html_ga41f8c73da9798a18e6b1e32f1e301f07"><div class="ttname"><a href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">glm::perp</a></div><div class="ttdeci">GLM_FUNC_DECL vecType perp(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x a perpendicular axis of Normal. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if !GLM_HAS_RANGE_FOR</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># error "GLM_GTX_range requires C++11 suppport or 'range for'"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/type_ptr.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">inline</span> length_t components(tvec1<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> {</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> }</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">inline</span> length_t components(tvec2<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">inline</span> length_t components(tvec3<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">inline</span> length_t components(tvec4<T, P> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> v.length();</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">inline</span> length_t components(genType <span class="keyword">const</span> & m)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">return</span> m.length() * m[0].length();</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * begin(genType <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * end(genType <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> {</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> begin(v) + components(v);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type * begin(genType& v)</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">inline</span> <span class="keyword">typename</span> genType::value_type * end(genType& v)</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> begin(v) + components(v);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> }</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00178_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00091.html b/doc/api/a00091.html
index 8430ec6..d9af15d 100644
--- a/doc/api/a00091.html
+++ b/doc/api/a00091.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: polar_coordinates.hpp File Reference</title>
+<title>0.9.8: raw_data.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,35 +46,30 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">polar_coordinates.hpp File Reference</div> </div>
+<div class="title">raw_data.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00091_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2< T, P > const &polar)</td></tr>
-<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3< T, P > const &euclidean)</td></tr>
-<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
+<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
+<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
+<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
+<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00222.html">GLM_GTX_polar_coordinates</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-03-06 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00222.html">GLM_GTX_raw_data</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00091_source.html">polar_coordinates.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00091_source.html">raw_data.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00091_source.html b/doc/api/a00091_source.html
index 85f3957..af978ee 100644
--- a/doc/api/a00091_source.html
+++ b/doc/api/a00091_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: polar_coordinates.hpp Source File</title>
+<title>0.9.8: raw_data.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,36 +46,39 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">polar_coordinates.hpp</div> </div>
+<div class="title">raw_data.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00091.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_raw_data extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="a00222.html#ga3005cb0d839d546c616becfa6602c607"> 30</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5"> 34</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a"> 38</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714"> 42</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }<span class="comment">// namespace glm</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_polar_coordinates extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a>(</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tvec2<T, P> <span class="keyword">const</span> & <a class="code" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "polar_coordinates.inl"</span></div>
-<div class="ttc" id="a00222_html_ga45ece1fbf7260c43e0f873c498202581"><div class="ttname"><a href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">glm::euclidean</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > euclidean(tvec2< T, P > const &polar)</div><div class="ttdoc">Convert Polar to Euclidean coordinates. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00222_html_gafcf95a38c780a4ad5ba14c8ac9e522bb"><div class="ttname"><a href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">glm::polar</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > polar(tvec3< T, P > const &euclidean)</div><div class="ttdoc">Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...</div></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "raw_data.inl"</span></div>
+<div class="ttc" id="a00222_html_ga4021754ffb8e5ef14c75802b15657714"><div class="ttname"><a href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">glm::qword</a></div><div class="ttdeci">detail::uint64 qword</div><div class="ttdoc">Type for qword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00091_source.html#l00042">raw_data.hpp:42</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00222_html_ga3005cb0d839d546c616becfa6602c607"><div class="ttname"><a href="a00222.html#ga3005cb0d839d546c616becfa6602c607">glm::byte</a></div><div class="ttdeci">detail::uint8 byte</div><div class="ttdoc">Type for byte numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00091_source.html#l00030">raw_data.hpp:30</a></div></div>
+<div class="ttc" id="a00222_html_ga16e9fea0ef1e6c4ef472d3d1731c49a5"><div class="ttname"><a href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">glm::word</a></div><div class="ttdeci">detail::uint16 word</div><div class="ttdoc">Type for word numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00091_source.html#l00034">raw_data.hpp:34</a></div></div>
+<div class="ttc" id="a00222_html_ga86e46fff9f80ae33893d8d697f2ca98a"><div class="ttname"><a href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">glm::dword</a></div><div class="ttdeci">detail::uint32 dword</div><div class="ttdoc">Type for dword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00091_source.html#l00038">raw_data.hpp:38</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00092.html b/doc/api/a00092.html
index b9cc995..cacd7fa 100644
--- a/doc/api/a00092.html
+++ b/doc/api/a00092.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: precision.hpp File Reference</title>
+<title>0.9.8: reciprocal.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,63 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">precision.hpp File Reference</div> </div>
+<div class="title">reciprocal.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00092_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a> (genType x)</td></tr>
+<tr class="separator:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a> (genType x)</td></tr>
+<tr class="separator:gafaca98a7100170db8841f446282debfa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a> (genType x)</td></tr>
+<tr class="separator:ga1b4bed91476b9b915e76b4a30236d330"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a> (genType x)</td></tr>
+<tr class="separator:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a> (genType x)</td></tr>
+<tr class="separator:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a> (genType x)</td></tr>
+<tr class="separator:gaec7586dccfe431f850d006f3824b8ca6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a> (genType angle)</td></tr>
+<tr class="separator:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a> (genType angle)</td></tr>
+<tr class="separator:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a> (genType angle)</td></tr>
+<tr class="separator:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a> (genType angle)</td></tr>
+<tr class="separator:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a> (genType angle)</td></tr>
+<tr class="separator:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a> (genType angle)</td></tr>
+<tr class="separator:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-04-01 / 2013-04-01 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00174.html">GLM_GTC_reciprocal</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00092_source.html">precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00092_source.html">reciprocal.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00092_source.html b/doc/api/a00092_source.html
index 7d19976..0a7798f 100644
--- a/doc/api/a00092_source.html
+++ b/doc/api/a00092_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: precision.hpp Source File</title>
+<title>0.9.8: reciprocal.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,28 +41,80 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">precision.hpp</div> </div>
+<div class="title">reciprocal.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00092.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">enum</span> precision</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> highp,</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> mediump,</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> lowp,</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> defaultp = highp</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> };</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_reciprocal extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a>(genType x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a>(genType x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a>(genType x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a>(genType <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a>(genType x);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a>(genType x);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL genType <a class="code" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a>(genType x);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#include "reciprocal.inl"</span></div>
+<div class="ttc" id="a00174_html_ga59dd0005b6474eea48af743b4f14ebbb"><div class="ttname"><a href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">glm::csc</a></div><div class="ttdeci">GLM_FUNC_DECL genType csc(genType angle)</div><div class="ttdoc">Cosecant function. </div></div>
+<div class="ttc" id="a00174_html_ga6b8b770eb7198e4dea59d52e6db81442"><div class="ttname"><a href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">glm::coth</a></div><div class="ttdeci">GLM_FUNC_DECL genType coth(genType angle)</div><div class="ttdoc">Cotangent hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga9a5cfd1e7170104a7b33863b1b75e5ae"><div class="ttname"><a href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">glm::sech</a></div><div class="ttdeci">GLM_FUNC_DECL genType sech(genType angle)</div><div class="ttdoc">Secant hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_gaeadfb9c9d71093f7865b2ba2ca8d104d"><div class="ttname"><a href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">glm::acot</a></div><div class="ttdeci">GLM_FUNC_DECL genType acot(genType x)</div><div class="ttdoc">Inverse cotangent function. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00174_html_ga3a7b517a95bbd3ad74da3aea87a66314"><div class="ttname"><a href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">glm::cot</a></div><div class="ttdeci">GLM_FUNC_DECL genType cot(genType angle)</div><div class="ttdoc">Cotangent function. </div></div>
+<div class="ttc" id="a00174_html_gaec7586dccfe431f850d006f3824b8ca6"><div class="ttname"><a href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">glm::asech</a></div><div class="ttdeci">GLM_FUNC_DECL genType asech(genType x)</div><div class="ttdoc">Inverse secant hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_gae4bcbebee670c5ea155f0777b3acbd84"><div class="ttname"><a href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">glm::sec</a></div><div class="ttdeci">GLM_FUNC_DECL genType sec(genType angle)</div><div class="ttdoc">Secant function. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00174_html_ga1b4bed91476b9b915e76b4a30236d330"><div class="ttname"><a href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">glm::acsc</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsc(genType x)</div><div class="ttdoc">Inverse cosecant function. </div></div>
+<div class="ttc" id="a00174_html_gafaca98a7100170db8841f446282debfa"><div class="ttname"><a href="a00174.html#gafaca98a7100170db8841f446282debfa">glm::acoth</a></div><div class="ttdeci">GLM_FUNC_DECL genType acoth(genType x)</div><div class="ttdoc">Inverse cotangent hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga2c5b7f962c2c9ff684e6d2de48db1f10"><div class="ttname"><a href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">glm::asec</a></div><div class="ttdeci">GLM_FUNC_DECL genType asec(genType x)</div><div class="ttdoc">Inverse secant function. </div></div>
+<div class="ttc" id="a00174_html_ga6d95843ff3ca6472ab399ba171d290a0"><div class="ttname"><a href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">glm::csch</a></div><div class="ttdeci">GLM_FUNC_DECL genType csch(genType angle)</div><div class="ttdoc">Cosecant hyperbolic function. </div></div>
+<div class="ttc" id="a00174_html_ga4b50aa5e5afc7e19ec113ab91596c576"><div class="ttname"><a href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">glm::acsch</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsch(genType x)</div><div class="ttdoc">Inverse cosecant hyperbolic function. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00093.html b/doc/api/a00093.html
index e1b7779..6040ad2 100644
--- a/doc/api/a00093.html
+++ b/doc/api/a00093.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: projection.hpp File Reference</title>
+<title>0.9.8: rotate_normalized_axis.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">projection.hpp File Reference</div> </div>
+<div class="title">rotate_normalized_axis.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,22 +56,22 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &x, vecType const &Normal)</td></tr>
-<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00223.html">GLM_GTX_projection</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00093_source.html">projection.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00093_source.html">rotate_normalized_axis.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00093_source.html b/doc/api/a00093_source.html
index 880b858..6c2b2ac 100644
--- a/doc/api/a00093_source.html
+++ b/doc/api/a00093_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: projection.hpp Source File</title>
+<title>0.9.8: rotate_normalized_axis.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,30 +46,43 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">projection.hpp</div> </div>
+<div class="title">rotate_normalized_axis.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00093.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../geometric.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_projection extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL vecType <a class="code" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a>(vecType <span class="keyword">const</span> & x, vecType <span class="keyword">const</span> & Normal);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "projection.inl"</span></div>
-<div class="ttc" id="a00223_html_gadf29123bcf748fc9d6fb0998192184cf"><div class="ttname"><a href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">glm::proj</a></div><div class="ttdeci">GLM_FUNC_DECL vecType proj(vecType const &x, vecType const &Normal)</div><div class="ttdoc">Projects x on Normal. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../gtc/epsilon.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "rotate_normalized_axis.inl"</span></div>
+<div class="ttc" id="a00223_html_ga6c00234d844faef36a6a94669fbd1639"><div class="ttname"><a href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">glm::rotateNormalizedAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotateNormalizedAxis(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components normalized axis and an angle. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00094.html b/doc/api/a00094.html
index 1fb0bc3..ac05ee7 100644
--- a/doc/api/a00094.html
+++ b/doc/api/a00094.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp File Reference</title>
+<title>0.9.8: rotate_vector.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtc/quaternion.hpp File Reference</div> </div>
+<div class="title">rotate_vector.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,101 +56,47 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class quatType> </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType< T, P > const &x, quatType< T, P > const &y)</td></tr>
-<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3< T, P > const &x)</td></tr>
-<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4< T, P > const &x)</td></tr>
-<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</td></tr>
+<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00177.html">GLM_GTC_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-21 / 2012-12-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> (dependence) </dd></dl>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00094_source.html">gtc/quaternion.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00094_source.html">rotate_vector.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00094_source.html b/doc/api/a00094_source.html
index 26b913c..b97dd43 100644
--- a/doc/api/a00094_source.html
+++ b/doc/api/a00094_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp Source File</title>
+<title>0.9.8: rotate_vector.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,249 +41,97 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtc/quaternion.hpp</div> </div>
+<div class="title">rotate_vector.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00094.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_quaternion extension included")</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">struct </span>tquat</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> tquat<T, P> type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T x, y, z, w;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL T & operator[](size_type i);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tquat() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tquat(tquat<T, P> const & q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <precision Q></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tquat(tquat<T, Q> const & q);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tquat(ctor);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL explicit tquat(T const & s, tvec3<T, P> const & v);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tquat(T const & w, T const & x, T const & y, T const & z);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL GLM_EXPLICIT tquat(tquat<U, Q> const & q);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat3x3<T, P>();</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL <span class="keyword">explicit</span> <span class="keyword">operator</span> tmat4x4<T, P>();</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tvec3<T, P> <span class="keyword">const</span> & u, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL <span class="keyword">explicit</span> tquat(tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tquat<T, P> & operator=(tquat<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tquat<T, P> & operator=(tquat<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<U, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<U, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tquat<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tquat<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tquat<T, P> operator-(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tquat<T, P> operator+(tquat<T, P> <span class="keyword">const</span> & q, tquat<T, P> <span class="keyword">const</span> & p);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tquat<T, P> <span class="keyword">const</span> & p);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tvec3<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v, tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tvec4<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v, tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tquat<T, P> operator*(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL tquat<T, P> operator*(T <span class="keyword">const</span> & s, tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tquat<T, P> operator/(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>quatType></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a>(quatType<T, P> <span class="keyword">const</span> & x, quatType<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y, T a);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a>(tquat<T, P> <span class="keyword">const</span> & q, T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b27 [...]
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat3x3<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a>(tmat4x4<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>(tquat<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a>(T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> GLM_FUNC_DECL tvec4<bool, P> <a class="code" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a>(tquat<T, P> <span class="keyword">const</span> & x, tquat<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor">#include "quaternion.inl"</span></div>
-<div class="ttc" id="a00177_html_gaa8f42979c921e450ff2812fb43c25702"><div class="ttname"><a href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotate(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components axis and an angle. </div></div>
-<div class="ttc" id="a00177_html_ga2c08b93a4261c10748fd4d2104346f17"><div class="ttname"><a href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">glm::pitch</a></div><div class="ttdeci">GLM_FUNC_DECL T pitch(tquat< T, P > const &x)</div><div class="ttdoc">Returns pitch value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga0906a221a2037519fcf316ea5c1e3b3e"><div class="ttname"><a href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">glm::greaterThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > greaterThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x >= y. </div></div>
-<div class="ttc" id="a00177_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00177.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
-<div class="ttc" id="a00177_html_gac187115710365e0b2902220b9611e7b6"><div class="ttname"><a href="a00177.html#gac187115710365e0b2902220b9611e7b6">glm::equal</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > equal(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x == y. </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga3e4615e9884dd0f41f5617b9848a5d9c"><div class="ttname"><a href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat4x4< T, P > const &x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_ga7c81996ed2724f26fe76faf352c76294"><div class="ttname"><a href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">glm::lessThanEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > lessThanEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x <= y. </div></div>
-<div class="ttc" id="a00177_html_gac682181783027544c8d251b4d3a60cf8"><div class="ttname"><a href="a00177.html#gac682181783027544c8d251b4d3a60cf8">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(tquat< T, P > const &q)</div><div class="ttdoc">Returns the length of the quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga484c4633f7c05d8e29ee8b452350f539"><div class="ttname"><a href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">glm::notEqual</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > notEqual(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x != y. </div></div>
-<div class="ttc" id="a00177_html_ga09d21a588ae425ac7517ea65cc59a5ae"><div class="ttname"><a href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">glm::greaterThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > greaterThan(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison of result x > y. </div></div>
-<div class="ttc" id="a00177_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)</div><div class="ttdoc">Returns euler angles, yitch as x, yaw as y, roll as z. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00177_html_ga35b6bcb22ac6d1e4a85440f5b69bdf86"><div class="ttname"><a href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > normalize(tquat< T, P > const &q)</div><div class="ttdoc">Returns the normalized quaternion. </div></div>
-<div class="ttc" id="a00177_html_gac54dfc83de465a2d03e90d342242ab3d"><div class="ttname"><a href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(quatType< T, P > const &x, quatType< T, P > const &y)</div><div class="ttdoc">Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </div></div>
-<div class="ttc" id="a00177_html_ga724a5df282b70cec0a6cb0d6dcddb6d6"><div class="ttname"><a href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">glm::yaw</a></div><div class="ttdeci">GLM_FUNC_DECL T yaw(tquat< T, P > const &x)</div><div class="ttdoc">Returns yaw value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga31cc82178742c36450f5662bd4fb30b0"><div class="ttname"><a href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > mix(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00177_html_ga5f47300c024c2d809944e6ac661d6d14"><div class="ttname"><a href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > inverse(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q inverse. </div></div>
-<div class="ttc" id="a00177_html_ga4fd705376c6c1fd667be0055a0ea58ec"><div class="ttname"><a href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">glm::roll</a></div><div class="ttdeci">GLM_FUNC_DECL T roll(tquat< T, P > const &x)</div><div class="ttdoc">Returns roll value of euler angles expressed in radians. </div></div>
-<div class="ttc" id="a00177_html_ga37ae19405f1ccf766f27e4fcd035d859"><div class="ttname"><a href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">glm::angleAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > angleAxis(T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Build a quaternion from an angle and a normalized axis. </div></div>
-<div class="ttc" id="a00177_html_ga91a40d16a3b5bb47d71ac1a3fb688ffa"><div class="ttname"><a href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">glm::lessThan</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< bool, P > lessThan(tquat< T, P > const &x, tquat< T, P > const &y)</div><div class="ttdoc">Returns the component-wise comparison result of x < y. </div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/transform.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_rotate_vector extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a>(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T <span class="keyword">const</span> & a);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> GLM_FUNC_DECL tvec2<T, P> <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec2<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> T <span class="keyword">const</span> & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>(</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> tvec3<T, P> <span class="keyword">const</span> & Normal,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> tvec3<T, P> <span class="keyword">const</span> & Up);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#include "rotate_vector.inl"</span></div>
+<div class="ttc" id="a00224_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
+<div class="ttc" id="a00224_html_gaf4d59dd2f668f9ffb38048055d1316bd"><div class="ttname"><a href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotate(tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</div><div class="ttdoc">Rotate a four dimensional vector around an axis. </div></div>
+<div class="ttc" id="a00224_html_ga034e5d197ab4bd8685624bc2cf16e586"><div class="ttname"><a href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">glm::rotateZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateZ(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00224_html_gae2507577c4bffa3548b32852791dd90c"><div class="ttname"><a href="a00224.html#gae2507577c4bffa3548b32852791dd90c">glm::rotateY</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateY(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="ttc" id="a00224_html_gafc9ab3101c3f3799f3d5d6d9d3baac09"><div class="ttname"><a href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > slerp(tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</div><div class="ttdoc">Returns Spherical interpolation between two vectors. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00224_html_gadab312d430a564741ae02215255027a0"><div class="ttname"><a href="a00224.html#gadab312d430a564741ae02215255027a0">glm::rotateX</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimentionnals vector around the X axis. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00095.html b/doc/api/a00095.html
index 3eb71ac..0c2f74f 100644
--- a/doc/api/a00095.html
+++ b/doc/api/a00095.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp File Reference</title>
+<title>0.9.8: round.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">gtx/quaternion.hpp File Reference</div> </div>
+<div class="title">round.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,75 +56,65 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3< T, P > const &v, tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</td></tr>
-<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat< T, P > const &x, T const &y)</td></tr>
-<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat< T, P > const &q, tvec4< T, P > const &v)</td></tr>
-<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3< T, P > const &orig, tvec3< T, P > const &dest)</td></tr>
-<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</td></tr>
-<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3< T, P > const &x)</td></tr>
-<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4< T, P > const &x)</td></tr>
-<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
+<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType< T, P > const &Value, T Multiple)</td></tr>
+<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType< T, P > const &Value, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00224.html">GLM_GTX_quaternion</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<div class="textblock"><p><a class="el" href="a00175.html">GLM_GTC_round</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00095_source.html">round.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00095_source.html b/doc/api/a00095_source.html
index 64260ce..32abd5b 100644
--- a/doc/api/a00095_source.html
+++ b/doc/api/a00095_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: quaternion.hpp Source File</title>
+<title>0.9.8: round.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,143 +41,103 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">gtx/quaternion.hpp</div> </div>
+<div class="title">round.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00095.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/_vectorize.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../vector_relational.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../common.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_integer extension included")</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtc/constants.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtx/norm.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_quaternion extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tquat<T, P> <span class="keyword">const</span> & q1,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> tquat<T, P> <span class="keyword">const</span> & q2,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> tquat<T, P> <span class="keyword">const</span> & s1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> tquat<T, P> <span class="keyword">const</span> & s2,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T <span class="keyword">const</span> & h);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a>(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> tquat<T, P> <span class="keyword">const</span> & prev,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> tquat<T, P> <span class="keyword">const</span> & curr,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> tquat<T, P> <span class="keyword">const</span> & next);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL genIUType <a class="code" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(genIUType Value);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(genIUType Value, genIUType Multiple);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Value, T Multiple);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a>(</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a>(</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a>(</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> T <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">//template<typename T, precision P></span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">//tquat<T, P> sqrt(</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// tquat<T, P> const & q);</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a>(</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL T <a class="code" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a>(</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b"> 153</a></span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a>(</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> tquat<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a>(x);}</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad"> 160</a></span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a>(</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> tquat<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(x);}</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc"> 167</a></span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> tmat3x3<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2"> 174</a></span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a>(</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> tmat4x4<T, P> <span class="keyword">const</span> & x){<span class="keywordflow">return</span> <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(x);}</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a>(</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> tquat<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> T <span class="keyword">const</span> & a);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> tquat<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> tquat<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> T <span class="keyword">const</span> & a);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a>(</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> tvec3<T, P> <span class="keyword">const</span> & orig, </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> tvec3<T, P> <span class="keyword">const</span> & dest);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> GLM_FUNC_DECL T <a class="code" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a>(tquat<T, P> <span class="keyword">const</span> & q);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#include "quaternion.inl"</span></div>
-<div class="ttc" id="a00224_html_ga56abae85b3669c866e91f3c57b298b9c"><div class="ttname"><a href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">glm::intermediate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > intermediate(tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</div><div class="ttdoc">Returns an intermediate control point for squad interpolation. </div></div>
-<div class="ttc" id="a00224_html_ga90de879d97487ec804522dd418e5d8a0"><div class="ttname"><a href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">glm::extractRealComponent</a></div><div class="ttdeci">GLM_FUNC_DECL T extractRealComponent(tquat< T, P > const &q)</div><div class="ttdoc">Extract the real component of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_ga01935b66ba245c2fd7dee5427d86ce9b"><div class="ttname"><a href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">glm::toMat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > toMat3(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00153">gtx/quaternion.hpp:153</a></div></div>
-<div class="ttc" id="a00224_html_ga17295173d4c2b5ae49b84e9993b63a62"><div class="ttname"><a href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > exp(tquat< T, P > const &q)</div><div class="ttdoc">Returns a exp of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00224.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
-<div class="ttc" id="a00224_html_gae75f537becdf2b1381b4482ec96e6c82"><div class="ttname"><a href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">glm::squad</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > squad(tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</div><div class="ttdoc">Compute a point on a path according squad equation. </div></div>
-<div class="ttc" id="a00224_html_gaedc9fba6485eade37cc26c16df9d7aad"><div class="ttname"><a href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">glm::toMat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > toMat4(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00160">gtx/quaternion.hpp:160</a></div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00224_html_ga3534443de2a1a806f386976546cddc81"><div class="ttname"><a href="a00224.html#ga3534443de2a1a806f386976546cddc81">glm::shortMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > shortMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion interpolation using the rotation short path. </div></div>
-<div class="ttc" id="a00224_html_ga808dd0f83ee8150db7e652313bde8eb2"><div class="ttname"><a href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">glm::toQuat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > toQuat(tmat4x4< T, P > const &x)</div><div class="ttdoc">Converts a 4 * 4 matrix to a quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00095_source.html#l00174">gtx/quaternion.hpp:174</a></div></div>
-<div class="ttc" id="a00224_html_ga4bfe3c7770fc43d14b8ef0058c4a86b5"><div class="ttname"><a href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &v, tquat< T, P > const &q)</div><div class="ttdoc">Compute a cross product between a vector and a quaternion. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00224_html_ga96575f8868b3f2aa3e13cab9b94ccbd3"><div class="ttname"><a href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotate(tquat< T, P > const &q, tvec4< T, P > const &v)</div><div class="ttdoc">Rotates a 4 components vector by a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00224_html_gac4856d356c5c97cec74e9b672ea89240"><div class="ttname"><a href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">glm::rotation</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotation(tvec3< T, P > const &orig, tvec3< T, P > const &dest)</div><div class="ttdoc">Compute the rotation between two vectors. </div></div>
-<div class="ttc" id="a00177_html_gae04c39422eb4e450ec8c4f45a1057b40"><div class="ttname"><a href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > mat3_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 3 * 3 matrix. </div></div>
-<div class="ttc" id="a00224_html_ga791f42e134bfe97fc9c96f4668dd7489"><div class="ttname"><a href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">glm::log</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > log(tquat< T, P > const &q)</div><div class="ttdoc">Returns a log of a quaternion. </div></div>
-<div class="ttc" id="a00224_html_ga02b45352c7ac345cabc9e877314acda6"><div class="ttname"><a href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">glm::length2</a></div><div class="ttdeci">GLM_FUNC_DECL T length2(tquat< T, P > const &q)</div><div class="ttdoc">Returns the squared length of x. </div></div>
-<div class="ttc" id="a00224_html_ga42a0cf206c59eaeff4c67dd62e09a580"><div class="ttname"><a href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">glm::pow</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > pow(tquat< T, P > const &x, T const &y)</div><div class="ttdoc">Returns x raised to the y power. </div></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Value, vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL genType <a class="code" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(genType Source, genType Multiple);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Source, vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL genType <a class="code" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> genType Source,</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> genType Multiple);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> vecType<T, P> <span class="keyword">const</span> & Source,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL genType <a class="code" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> genType Source,</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> genType Multiple);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> vecType<T, P> <span class="keyword">const</span> & Source,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> } <span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#include "round.inl"</span></div>
+<div class="ttc" id="a00175_html_gad454e4c8d8cd73ddc7de855f733a1465"><div class="ttname"><a href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">glm::isPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return true if the value is a power of two number. </div></div>
+<div class="ttc" id="a00175_html_ga7ae705574ef3e3ebfb4f537d8d285c48"><div class="ttname"><a href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">glm::isMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isMultiple(vecType< T, P > const &Value, vecType< T, P > const &Multiple)</div><div class="ttdoc">Return true if the 'Value' is a multiple of 'Multiple'. </div></div>
+<div class="ttc" id="a00175_html_gafe632af669ac57d670ca18e3665a12ca"><div class="ttname"><a href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">glm::ceilMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceilMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Higher multiple number of Source. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00175_html_gae95be3b384f3bbd00c6c1cf0a1f96485"><div class="ttname"><a href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">glm::roundPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
+<div class="ttc" id="a00175_html_ga10a8ab7b254257b607b6a3fc68c3e661"><div class="ttname"><a href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">glm::roundMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
+<div class="ttc" id="a00175_html_ga6a5a8f6dd1b2f755e4572bd039062c37"><div class="ttname"><a href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">glm::floorPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floorPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value, round down to a power of tw...</div></div>
+<div class="ttc" id="a00175_html_ga76ec9b214ea1376fe09a903e34bab847"><div class="ttname"><a href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">glm::ceilPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceilPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value, round up to a power of two...</div></div>
+<div class="ttc" id="a00175_html_ga6912db42d43873fe1dedb3aed2b7a239"><div class="ttname"><a href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">glm::floorMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floorMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00096.html b/doc/api/a00096.html
index f5d7fdd..2ccd042 100644
--- a/doc/api/a00096.html
+++ b/doc/api/a00096.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: random.hpp File Reference</title>
+<title>0.9.8: scalar_multiplication.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,56 +41,23 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">random.hpp File Reference</div> </div>
+<div class="title">scalar_multiplication.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00096_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
-<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
-<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
-<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
-<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template<typename genTYpe > </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
-<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
-<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00178.html">GLM_GTC_random</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-09-18 / 2011-09-18 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-gtx_random (extended) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00155.html">GTX Extensions (Experimental)</a> </p>
+<dl class="section author"><dt>Author</dt><dd>Joshua Moerman</dd></dl>
+<p>Enables scalar multiplication for all types</p>
+<p>Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic) </p>
-<p>Definition in file <a class="el" href="a00096_source.html">random.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00096_source.html">scalar_multiplication.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00096_source.html b/doc/api/a00096_source.html
index 4ccadda..d345a48 100644
--- a/doc/api/a00096_source.html
+++ b/doc/api/a00096_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: random.hpp Source File</title>
+<title>0.9.8: scalar_multiplication.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,69 +41,85 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">random.hpp</div> </div>
+<div class="title">scalar_multiplication.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00096.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_random extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#if !GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># error "GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <type_traits></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Vec></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">using</span> return_type_scalar_multiplication = <span class="keyword">typename</span> std::enable_if<</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> !std::is_same<T, float>::value <span class="comment">// T may not be a float</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> && std::is_arithmetic<T>::value, Vec <span class="comment">// But it may be an int or double (no vec3 or mat3, ...)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> >::type;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define GLM_IMPLEMENT_SCAL_MULT(Vec) \</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"> template <typename T> \</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"> operator*(T const & s, Vec rh){ \</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> return rh *= static_cast<float>(s); \</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"> \</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"> template <typename T> \</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"> operator*(Vec lh, T const & s){ \</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"> return lh *= static_cast<float>(s); \</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"> \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"> template <typename T> \</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"> operator/(Vec lh, T const & s){ \</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"> return lh *= 1.0f / s; \</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"> }</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genTYpe></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL genTYpe <a class="code" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> genTYpe Min,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> genTYpe Max);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> vecType<T, P> <span class="keyword">const</span> & Min,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> vecType<T, P> <span class="keyword">const</span> & Max);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL genType <a class="code" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> genType Mean,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> genType Deviation);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a>(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> T Radius);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a>(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> T Radius);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a>(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> T Radius);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a>(</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> T Radius);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#include "random.inl"</span></div>
-<div class="ttc" id="a00178_html_ga5506dee301160e3a06aef9b9bc7a0a83"><div class="ttname"><a href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">glm::ballRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > ballRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...</div></div>
-<div class="ttc" id="a00178_html_gae989c26a2899b2fb7444abe7c275c29c"><div class="ttname"><a href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">glm::circularRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > circularRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...</div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00178_html_ga5193a83e49e4fdc5652c084711083574"><div class="ttname"><a href="a00178.html#ga5193a83e49e4fdc5652c084711083574">glm::gaussRand</a></div><div class="ttdeci">GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a gaussian distribution. </div></div>
-<div class="ttc" id="a00178_html_ga12aebc19b85a8c736f5801c2f7b9b716"><div class="ttname"><a href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">glm::linearRand</a></div><div class="ttdeci">GLM_FUNC_DECL genTYpe linearRand(genTYpe Min, genTYpe Max)</div><div class="ttdoc">Generate random numbers in the interval [Min, Max], according a linear distribution. </div></div>
-<div class="ttc" id="a00178_html_gaa9a6fc2d7a295b3857f7db23b1053d9d"><div class="ttname"><a href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">glm::sphericalRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > sphericalRand(T Radius)</div><div class="ttdoc">Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...</div></div>
-<div class="ttc" id="a00178_html_gad3a3ee7d26502a31ba552cb627a68606"><div class="ttname"><a href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">glm::diskRand</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > diskRand(T Radius)</div><div class="ttdoc">Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...</div></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>)</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>)</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a>)</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>)</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>)</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>)</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>)</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>)</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#undef GLM_IMPLEMENT_SCAL_MULT</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> } <span class="comment">// namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00369">type_mat.hpp:369</a></div></div>
+<div class="ttc" id="a00157_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00157_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00157.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00364">type_mat.hpp:364</a></div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00157_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00374">type_mat.hpp:374</a></div></div>
+<div class="ttc" id="a00157_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00384">type_mat.hpp:384</a></div></div>
+<div class="ttc" id="a00157_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00157.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00157_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00157_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00389">type_mat.hpp:389</a></div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+<div class="ttc" id="a00157_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00394">type_mat.hpp:394</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00097.html b/doc/api/a00097.html
index f643bd3..db54a90 100644
--- a/doc/api/a00097.html
+++ b/doc/api/a00097.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: range.hpp File Reference</title>
+<title>0.9.8: scalar_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,16 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">range.hpp File Reference</div> </div>
+<div class="title">scalar_relational.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00097_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00225.html">GLM_GTX_range</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-19 / 2014-09-19 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Joshua Moerman </dd></dl>
+<div class="textblock"><p><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00097_source.html">range.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00097_source.html">scalar_relational.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00097_source.html b/doc/api/a00097_source.html
index 5f7820c..cd93b2b 100644
--- a/doc/api/a00097_source.html
+++ b/doc/api/a00097_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: range.hpp Source File</title>
+<title>0.9.8: scalar_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,71 +46,28 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">range.hpp</div> </div>
+<div class="title">scalar_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00097.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#if !GLM_HAS_RANGE_FOR</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># error "GLM_GTX_range requires C++11 suppport or 'range for'"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../gtc/type_ptr.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/* The glm types provide a .length() member, but for matrices</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> this only defines the number of columns, so we need to work around this */</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> detail::component_count_t number_of_elements_(tvec2<T, P> <span class="keyword">const</span> & v){</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> detail::component_count_t number_of_elements_(tvec3<T, P> <span class="keyword">const</span> & v){</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> detail::component_count_t number_of_elements_(tvec4<T, P> <span class="keyword">const</span> & v){</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> detail::component_count(v);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> detail::component_count_t number_of_elements_(genType <span class="keyword">const</span> & m){</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> detail::component_count(m) * detail::component_count(m[0]);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }<span class="comment">//namespace</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type * begin(genType <span class="keyword">const</span> & v){</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> <span class="keyword">typename</span> genType::value_type * end(genType <span class="keyword">const</span> & v){</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> begin(v) + detail::number_of_elements_(v);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typename</span> genType::value_type * begin(genType& v){</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(v);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">typename</span> genType::value_type * end(genType& v){</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> begin(v) + detail::number_of_elements_(v);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00182_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extend extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "scalar_relational.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00098.html b/doc/api/a00098.html
index f12a577..c1b642c 100644
--- a/doc/api/a00098.html
+++ b/doc/api/a00098.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: raw_data.hpp File Reference</title>
+<title>0.9.8: setup.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,42 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">raw_data.hpp File Reference</div> </div>
+<div class="title">setup.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00098_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
-<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
-<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
-<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
-<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00226.html">GLM_GTX_raw_data</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-11-19 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00098_source.html">setup.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00098_source.html b/doc/api/a00098_source.html
index 3872d21..2c5ed28 100644
--- a/doc/api/a00098_source.html
+++ b/doc/api/a00098_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: raw_data.hpp Source File</title>
+<title>0.9.8: setup.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,44 +41,781 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">raw_data.hpp</div> </div>
+<div class="title">setup.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00098.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_raw_data extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="a00226.html#ga3005cb0d839d546c616becfa6602c607"> 59</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5"> 63</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a"> 67</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714"> 71</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "raw_data.inl"</span></div>
-<div class="ttc" id="a00226_html_ga16e9fea0ef1e6c4ef472d3d1731c49a5"><div class="ttname"><a href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">glm::word</a></div><div class="ttdeci">detail::uint16 word</div><div class="ttdoc">Type for word numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00063">raw_data.hpp:63</a></div></div>
-<div class="ttc" id="a00226_html_ga3005cb0d839d546c616becfa6602c607"><div class="ttname"><a href="a00226.html#ga3005cb0d839d546c616becfa6602c607">glm::byte</a></div><div class="ttdeci">detail::uint8 byte</div><div class="ttdoc">Type for byte numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00059">raw_data.hpp:59</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00226_html_ga86e46fff9f80ae33893d8d697f2ca98a"><div class="ttname"><a href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">glm::dword</a></div><div class="ttdeci">detail::uint32 dword</div><div class="ttdoc">Type for dword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00067">raw_data.hpp:67</a></div></div>
-<div class="ttc" id="a00226_html_ga4021754ffb8e5ef14c75802b15657714"><div class="ttname"><a href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">glm::qword</a></div><div class="ttdeci">detail::uint64 qword</div><div class="ttdoc">Type for qword numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00098_source.html#l00071">raw_data.hpp:71</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#if (defined(GLM_FORCE_SWIZZLE) || defined(GLM_SWIZZLE)) && defined(GLM_FORCE_UNRESTRICTED_GENTYPE)</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor"># error "Both GLM_FORCE_SWIZZLE and GLM_FORCE_UNRESTRICTED_GENTYPE can't be defined at the same time"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Messages</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifdef GLM_MESSAGES</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor"># pragma message("GLM: GLM_MESSAGES is deprecated, use GLM_FORCE_MESSAGES instead")</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define GLM_MESSAGES_ENABLED 1</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define GLM_MESSAGES_DISABLE 0</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if defined(GLM_FORCE_MESSAGES) || defined(GLM_MESSAGES)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># undef GLM_MESSAGES</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># define GLM_MESSAGES GLM_MESSAGES_ENABLED</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># undef GLM_MESSAGES</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># define GLM_MESSAGES GLM_MESSAGES_DISABLE</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../simd/platform.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Version</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define GLM_VERSION 98</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#define GLM_VERSION_MAJOR 0</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define GLM_VERSION_MINOR 9</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#define GLM_VERSION_PATCH 8</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#define GLM_VERSION_REVISION 0</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_VERSION_DISPLAYED)</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"># define GLM_MESSAGE_VERSION_DISPLAYED</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># pragma message ("GLM: version 0.9.8.0")</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Report compiler detection</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: CUDA compiler detected")</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: Visual C++ compiler detected")</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: Clang compiler detected")</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># pragma message("GLM: Intel Compiler detected")</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># pragma message("GLM: GCC compiler detected")</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># pragma message("GLM: Compiler not detected")</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Build model</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#elif defined(__i386__) || defined(__ppc__)</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif//</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#if !defined(GLM_MODEL) && GLM_COMPILER != 0</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#endif//GLM_MODEL</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_MODEL_DISPLAYED)</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># pragma message("GLM: 64 bits model")</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># pragma message("GLM: 32 bits model")</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># endif//GLM_MODEL</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_ARCH_DISPLAYED)</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># pragma message("GLM: Platform independent code")</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX2)</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"># pragma message("GLM: AVX2 instruction set")</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_AVX)</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># pragma message("GLM: AVX instruction set")</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE42)</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># pragma message("GLM: SSE4.2 instruction set")</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE41)</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># pragma message("GLM: SSE4.1 instruction set")</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSSE3)</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"># pragma message("GLM: SSSE3 instruction set")</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE3)</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># pragma message("GLM: SSE3 instruction set")</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_SSE2)</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"># pragma message("GLM: SSE2 instruction set")</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_X86)</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># pragma message("GLM: x86 instruction set")</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_NEON)</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"># pragma message("GLM: NEON instruction set")</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_ARM)</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"># pragma message("GLM: ARM instruction set")</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_MIPS)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># pragma message("GLM: MIPS instruction set")</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"># elif(GLM_ARCH == GLM_ARCH_PPC)</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># pragma message("GLM: PowerPC architechture")</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># endif//GLM_ARCH</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// C++ Version</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor">#define GLM_LANG_CXX98_FLAG (1 << 1)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#define GLM_LANG_CXX03_FLAG (1 << 2)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#define GLM_LANG_CXX0X_FLAG (1 << 3)</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#define GLM_LANG_CXX11_FLAG (1 << 4)</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#define GLM_LANG_CXX1Y_FLAG (1 << 5)</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#define GLM_LANG_CXX14_FLAG (1 << 6)</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#define GLM_LANG_CXX1Z_FLAG (1 << 7)</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#define GLM_LANG_CXXMS_FLAG (1 << 8)</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG (1 << 9)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">#define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#define GLM_LANG_CXX14 (GLM_LANG_CXX1Y | GLM_LANG_CXX14_FLAG)</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#define GLM_LANG_CXX1Z (GLM_LANG_CXX14 | GLM_LANG_CXX1Z_FLAG)</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#if defined(GLM_FORCE_CXX14)</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"># undef GLM_FORCE_CXX11</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX03</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"># if __cplusplus >= 201402L // GLM_COMPILER_CLANG34 + -std=c++14</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"># elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_CLANG33 + -std=c++1y</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX1Y</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"># elif __cplusplus >= 201103L // GLM_COMPILER_CLANG33 + -std=c++11</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"># elif __has_feature(cxx_static_assert) // GLM_COMPILER_CLANG29 + -std=c++11</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"># elif defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">//# elif GLM_COMPILER >= GLM_COMPILER_VC2015</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">//# define GLM_LANG (GLM_LANG_CXX1Y | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"># define GLM_MSC_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"># define GLM_MSC_EXT 0</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="preprocessor"># elif __INTEL_CXX11_MODE__</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"># define GLM_MSC_EXT GLM_LANG_CXXMS_FLAG</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"># define GLM_MSC_EXT 0</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_CUDA75</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_MSC_EXT)</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"># else // Unknown compiler</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX // Good luck with that!</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"># ifndef GLM_FORCE_PURE</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"># define GLM_FORCE_PURE</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_LANG_DISPLAYED)</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"># if GLM_LANG & GLM_LANG_CXX1Z_FLAG</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># pragma message("GLM: C++1z")</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX14_FLAG</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># pragma message("GLM: C++14")</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX1Y_FLAG</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"># pragma message("GLM: C++1y")</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># pragma message("GLM: C++11")</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX0X_FLAG</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># pragma message("GLM: C++0x")</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX03_FLAG</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"># pragma message("GLM: C++03")</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX98_FLAG</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># pragma message("GLM: C++98")</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># pragma message("GLM: C++ language undetected")</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"># if GLM_LANG & (GLM_LANG_CXXGNU_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># pragma message("GLM: Language extensions enabled")</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// Has of C++ features</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># if defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL 1</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"> ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) && (GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15))))</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment">// N1720</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT 1</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010))))</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment">// N1988</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG30)))</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">// N2235</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR 1</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)))) // GCC 4.6 support constexpr but there is a compiler bug causing a crash</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL (GLM_HAS_CONSTEXPR || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015)))</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">// N2672</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS 1</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA75))))</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">#elif GLM_LANG & (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_LANG & GLM_LANG_CXXMS_FLAG)) || \</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA75)) || \</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)))</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment">// N2346</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor">#if defined(GLM_FORCE_UNRESTRICTED_GENTYPE)</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 0</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12)) || \</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="preprocessor"> (GLM_COMPILER & GLM_COMPILER_CUDA)))</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// N2118</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES 1</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC45)) || \</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12_1)) || \</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR 1</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL13)) || \</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"># define GLM_HAS_ASSIGNABLE 1</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"># define GLM_HAS_ASSIGNABLE ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49))))</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"># define GLM_HAS_MAKE_SIGNED 1</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"># define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && (\</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor"> (GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL))))</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">// OpenMP</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor">#ifdef _OPENMP</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_GCC61</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"># define GLM_HAS_OPENMP 45</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC49</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"># define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC47</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC44</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"># define GLM_HAS_OPENMP 30</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC42</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"># define GLM_HAS_OPENMP 25</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_CLANG38</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"># define GLM_HAS_OPENMP 20</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_INTEL</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_INTEL16</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"># define GLM_HAS_OPENMP 40</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_INTEL12</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"># define GLM_HAS_OPENMP 0</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"># endif// GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="comment">// Static assert</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor">#elif defined(BOOST_STATIC_ASSERT)</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor">#endif//GLM_LANG</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"># define GLM_VAR_USED</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor"># elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="preprocessor"># define GLM_INLINE __forceinline__</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor"># define GLM_NEVER_INLINE __noinline__</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="preprocessor"># define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"># endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"># define GLM_INLINE inline</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment">// Swizzle operators</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="comment">// User defines: GLM_FORCE_SWIZZLE</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"># pragma message("GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead")</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="preprocessor">#define GLM_SWIZZLE_ENABLED 1</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="preprocessor">#define GLM_SWIZZLE_DISABLE 0</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor">#if defined(GLM_FORCE_SWIZZLE) || defined(GLM_SWIZZLE)</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor"># undef GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"># undef GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"># define GLM_SWIZZLE GLM_SWIZZLE_DISABLE</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"># pragma message("GLM: Swizzling operators enabled")</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"># pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="comment">// Allows using not basic types as genType</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="comment">// #define GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"># define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor"># ifdef GLM_FORCE_UNRESTRICTED_GENTYPE</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"># pragma message("GLM: Use unrestricted genType")</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// Clip control</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="preprocessor">#ifdef GLM_DEPTH_ZERO_TO_ONE // Legacy 0.9.8 development</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="preprocessor"># error Define GLM_FORCE_DEPTH_ZERO_TO_ONE instead of GLM_DEPTH_ZERO_TO_ONE to use 0 to 1 clip space.</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor">#define GLM_DEPTH_ZERO_TO_ONE 0x00000001</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor">#define GLM_DEPTH_NEGATIVE_ONE_TO_ONE 0x00000002</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor">#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor"># define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_NEGATIVE_ONE_TO_ONE</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_DEPTH_DISPLAYED)</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"># define GLM_MESSAGE_DEPTH_DISPLAYED</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor"># if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"># pragma message("GLM: Depth clip space: Zero to one")</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"># pragma message("GLM: Depth clip space: negative one to one")</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment">// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment">// to use left handed coordinate system by default.</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor">#ifdef GLM_LEFT_HANDED // Legacy 0.9.8 development</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor"># error Define GLM_FORCE_LEFT_HANDED instead of GLM_LEFT_HANDED left handed coordinate system by default.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> </div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor">#define GLM_LEFT_HANDED 0x00000001 // For DirectX, Metal, Vulkan</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor">#define GLM_RIGHT_HANDED 0x00000002 // For OpenGL, default in GLM</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="preprocessor">#ifdef GLM_FORCE_LEFT_HANDED</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_LEFT_HANDED</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"># define GLM_COORDINATE_SYSTEM GLM_RIGHT_HANDED</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_HANDED_DISPLAYED)</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"># define GLM_MESSAGE_HANDED_DISPLAYED</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"># if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"># pragma message("GLM: Coordinate system: left handed")</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="preprocessor"># pragma message("GLM: Coordinate system: right handed")</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="comment">// Qualifiers</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="preprocessor"># define GLM_RESTRICT_FUNC __declspec(restrict)</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="preprocessor"># define GLM_RESTRICT __restrict</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_VC2013</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor">#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_CLANG37</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor"># define GLM_VECTOR_CALL __vectorcall</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="preprocessor"># define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="preprocessor"># define GLM_ALIGN(x) __align__(x)</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __align__(x)</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"># define GLM_RESTRICT_FUNC __restrict__</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor"># define GLM_DEPRECATED</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"># define GLM_ALIGN</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor"># define GLM_RESTRICT_FUNC</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"># define GLM_RESTRICT</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"># define GLM_VECTOR_CALL</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"># define GLM_DEFAULT = default</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor"># ifdef GLM_FORCE_NO_CTOR_INIT</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR = default</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"># define GLM_DEFAULT</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> </div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"># define GLM_CONSTEXPR_CTOR constexpr</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor">#elif GLM_HAS_CONSTEXPR_PARTIAL</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"># define GLM_CONSTEXPR</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor"># define GLM_CONSTEXPR_CTOR</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"># define GLM_CONSTEXPR_SIMD</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"># define GLM_EXPLICIT</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor">#define GLM_HAS_ALIGNED_TYPE GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="comment">// Length type</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment">// User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> {</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="keyword">using</span> std::size_t;</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH)</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"># if defined GLM_FORCE_SIZE_T_LENGTH</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"># pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor"># pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor">#endif//GLM_MESSAGES</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="comment">// countof</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> </div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor">#ifndef __has_feature</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"># define __has_feature(x) 0 // Compatibility with non-clang compilers.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> {</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> constexpr std::size_t countof(T <span class="keyword">const</span> (&)[N])</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> {</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">return</span> N;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> }</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor">#elif defined(_MSC_VER)</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment">// Uninitialize constructors</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> {</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="keyword">enum</span> ctor{uninitialize};</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00099.html b/doc/api/a00099.html
index c8ad706..7a0554c 100644
--- a/doc/api/a00099.html
+++ b/doc/api/a00099.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: reciprocal.hpp File Reference</title>
+<title>0.9.8: simd_mat4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,70 +41,21 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">reciprocal.hpp File Reference</div> </div>
+<div class="title">simd_mat4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00099_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a> (genType const &x)</td></tr>
-<tr class="separator:ga97d029f989f849b62915b068c264246b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a> (genType const &x)</td></tr>
-<tr class="separator:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a> (genType const &x)</td></tr>
-<tr class="separator:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a> (genType const &x)</td></tr>
-<tr class="separator:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a> (genType const &x)</td></tr>
-<tr class="separator:gac9761980e09149002a466ca131a4bcac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a> (genType const &x)</td></tr>
-<tr class="separator:ga450f3bf1c04751198994d26d92ac2a63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a> (genType const &angle)</td></tr>
-<tr class="separator:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a> (genType const &angle)</td></tr>
-<tr class="separator:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a> (genType const &angle)</td></tr>
-<tr class="separator:ga5df75de99f63e854087a06f538907b2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a> (genType const &angle)</td></tr>
-<tr class="separator:ga00404a9cdf62023792d1d0afedd7f896"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a> (genType const &angle)</td></tr>
-<tr class="separator:gabb6829a472da1cc94d88afa6396bed1f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a> (genType const &angle)</td></tr>
-<tr class="separator:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00179.html">GLM_GTC_reciprocal</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-09 / 2012-01-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00226.html">GLM_GTX_simd_mat4</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00099_source.html">reciprocal.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00099_source.html">simd_mat4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00099_source.html b/doc/api/a00099_source.html
index 9f3d6f4..c74c9e4 100644
--- a/doc/api/a00099_source.html
+++ b/doc/api/a00099_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: reciprocal.hpp Source File</title>
+<title>0.9.8: simd_mat4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,80 +41,173 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">reciprocal.hpp</div> </div>
+<div class="title">simd_mat4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00099.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_reciprocal extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if(GLM_ARCH & GLM_ARCH_SSE2_BIT)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># include "../detail/intrinsic_matrix.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># include "../gtx/simd_vec4.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_mat4 extension included")</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_mat4 extension is deprecated and will be removed in GLM 0.9.9. Use mat4 instead and use compiler SIMD arguments.")</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_ALIGNED_STRUCT(16) fmat4x4SIMD</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> fvec4SIMD col_type;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> fvec4SIMD row_type;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> fmat4x4SIMD type;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> fmat4x4SIMD transpose_type;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tmat4x4<float, defaultp> pure_type;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_row_type;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_col_type;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat4x4<float, defaultp> pure_transpose_type;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a>(genType <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL length_t <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> fvec4SIMD Data[4];</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// Constructors</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> fmat4x4SIMD() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> explicit fmat4x4SIMD(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> explicit fmat4x4SIMD(</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">float</span> const & x0, <span class="keywordtype">float</span> const & y0, <span class="keywordtype">float</span> const & z0, <span class="keywordtype">float</span> const & w0,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">float</span> const & x1, <span class="keywordtype">float</span> const & y1, <span class="keywordtype">float</span> const & z1, <span class="keywordtype">float</span> const & w1,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">float</span> const & x2, <span class="keywordtype">float</span> const & y2, <span class="keywordtype">float</span> const & z2, <span class="keywordtype">float</span> const & w2,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">float</span> const & x3, <span class="keywordtype">float</span> const & y3, <span class="keywordtype">float</span> const & z3, <span class="keywordtype">float</span> const & w3);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> explicit fmat4x4SIMD(</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> fvec4SIMD const & v0,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> fvec4SIMD const & v1,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> fvec4SIMD const & v2,</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> fvec4SIMD const & v3);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> explicit fmat4x4SIMD(</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <a class="code" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a> const & m);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> explicit fmat4x4SIMD(</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> __m128 const in[4]);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Conversions</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">//template <typename U></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">//explicit tmat4x4(tmat4x4<U> const & m);</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">//explicit tmat4x4(tmat2x2<T> const & x);</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">//explicit tmat4x4(tmat3x3<T> const & x);</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">//explicit tmat4x4(tmat2x3<T> const & x);</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">//explicit tmat4x4(tmat3x2<T> const & x);</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">//explicit tmat4x4(tmat2x4<T> const & x);</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">//explicit tmat4x4(tmat4x2<T> const & x);</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">//explicit tmat4x4(tmat3x4<T> const & x);</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">//explicit tmat4x4(tmat4x3<T> const & x);</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Accesses</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> fvec4SIMD & operator[](length_t i);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> fvec4SIMD const & operator[](length_t i) const;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Unary updatable operators</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> fmat4x4SIMD & operator= (fmat4x4SIMD const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> fmat4x4SIMD & operator+= (<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> fmat4x4SIMD & operator-= (<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> fmat4x4SIMD & operator*= (<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> fmat4x4SIMD & operator/= (<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> fmat4x4SIMD & operator++ ();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> fmat4x4SIMD & operator-- ();</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> };</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Binary operators</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> fmat4x4SIMD operator+ (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> fmat4x4SIMD operator+ (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> fmat4x4SIMD operator- (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> fmat4x4SIMD operator- (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> fmat4x4SIMD operator* (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> fmat4x4SIMD operator* (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> fmat4x4SIMD operator/ (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> fmat4x4SIMD operator/ (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#include "reciprocal.inl"</span></div>
-<div class="ttc" id="a00179_html_ga450f3bf1c04751198994d26d92ac2a63"><div class="ttname"><a href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">glm::asech</a></div><div class="ttdeci">GLM_FUNC_DECL genType asech(genType const &x)</div><div class="ttdoc">Inverse secant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga2f49e28c2634ae1a212e2fc38c42ad42"><div class="ttname"><a href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">glm::cot</a></div><div class="ttdeci">GLM_FUNC_DECL genType cot(genType const &angle)</div><div class="ttdoc">Cotangent function. </div></div>
-<div class="ttc" id="a00179_html_ga00404a9cdf62023792d1d0afedd7f896"><div class="ttname"><a href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">glm::csch</a></div><div class="ttdeci">GLM_FUNC_DECL genType csch(genType const &angle)</div><div class="ttdoc">Cosecant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_gac9761980e09149002a466ca131a4bcac"><div class="ttname"><a href="a00179.html#gac9761980e09149002a466ca131a4bcac">glm::asec</a></div><div class="ttdeci">GLM_FUNC_DECL genType asec(genType const &x)</div><div class="ttdoc">Inverse secant function. </div></div>
-<div class="ttc" id="a00179_html_ga97d029f989f849b62915b068c264246b"><div class="ttname"><a href="a00179.html#ga97d029f989f849b62915b068c264246b">glm::acot</a></div><div class="ttdeci">GLM_FUNC_DECL genType acot(genType const &x)</div><div class="ttdoc">Inverse cotangent function. </div></div>
-<div class="ttc" id="a00179_html_ga5df75de99f63e854087a06f538907b2c"><div class="ttname"><a href="a00179.html#ga5df75de99f63e854087a06f538907b2c">glm::csc</a></div><div class="ttdeci">GLM_FUNC_DECL genType csc(genType const &angle)</div><div class="ttdoc">Cosecant function. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00179_html_gabb6829a472da1cc94d88afa6396bed1f"><div class="ttname"><a href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">glm::sec</a></div><div class="ttdeci">GLM_FUNC_DECL genType sec(genType const &angle)</div><div class="ttdoc">Secant function. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00179_html_gad73911994e6bb6a06cc3ea1bd89201ab"><div class="ttname"><a href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">glm::acoth</a></div><div class="ttdeci">GLM_FUNC_DECL genType acoth(genType const &x)</div><div class="ttdoc">Inverse cotangent hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga418b31539e1a69c262712f2c7a4f27eb"><div class="ttname"><a href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">glm::acsch</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsch(genType const &x)</div><div class="ttdoc">Inverse cosecant hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_gae2f1e6f7c360dda452b88e0c492d6f4d"><div class="ttname"><a href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">glm::coth</a></div><div class="ttdeci">GLM_FUNC_DECL genType coth(genType const &angle)</div><div class="ttdoc">Cotangent hyperbolic function. </div></div>
-<div class="ttc" id="a00179_html_ga135e8f6b36bb85b5f7d8067e6b890e4d"><div class="ttname"><a href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">glm::acsc</a></div><div class="ttdeci">GLM_FUNC_DECL genType acsc(genType const &x)</div><div class="ttdoc">Inverse cosecant function. </div></div>
-<div class="ttc" id="a00179_html_gaaa698b992c63f454a3a1a1baa2773a3c"><div class="ttname"><a href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">glm::sech</a></div><div class="ttdeci">GLM_FUNC_DECL genType sech(genType const &angle)</div><div class="ttdoc">Secant hyperbolic function. </div></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// Unary constant operators</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> fmat4x4SIMD const operator- (fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, <span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, <span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> typedef detail::fmat4x4SIMD simdMat4;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> detail::fmat4x4SIMD const & x);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> detail::fmat4x4SIMD <a class="code" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> detail::fmat4x4SIMD const & x,</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> detail::fmat4x4SIMD const & y);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> detail::fmat4x4SIMD <a class="code" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> detail::fvec4SIMD const & c,</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> detail::fvec4SIMD const & r);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> detail::fmat4x4SIMD transpose(</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> detail::fmat4x4SIMD const & x);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">float</span> <a class="code" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> detail::fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> detail::fmat4x4SIMD <a class="code" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> detail::fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor">#include "simd_mat4.inl"</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
+<div class="ttc" id="a00150_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType< T, P > const &m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00150_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00157_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00157_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00399">type_mat.hpp:399</a></div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00150_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</d [...]
+<div class="ttc" id="a00150_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00100.html b/doc/api/a00100.html
index e959201..21ba4b1 100644
--- a/doc/api/a00100.html
+++ b/doc/api/a00100.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_normalized_axis.hpp File Reference</title>
+<title>0.9.8: simd_quat.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,40 +45,17 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">rotate_normalized_axis.hpp File Reference</div> </div>
+<div class="title">simd_quat.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00100_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00227.html">GLM_GTX_rotate_normalized_axis</a></p>
-<dl class="section date"><dt>Date</dt><dd>2012-12-13 / 2012-12-13 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00227.html">GLM_GTX_simd_quat</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00100_source.html">rotate_normalized_axis.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00100_source.html">simd_quat.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00100_source.html b/doc/api/a00100_source.html
index d85c47a..2ed51eb 100644
--- a/doc/api/a00100_source.html
+++ b/doc/api/a00100_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_normalized_axis.hpp Source File</title>
+<title>0.9.8: simd_quat.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,43 +46,231 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">rotate_normalized_axis.hpp</div> </div>
+<div class="title">simd_quat.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00100.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/epsilon.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/fast_trigonometry.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_ARCH != GLM_ARCH_PURE</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_SSE2_BIT</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># include "../gtx/simd_mat4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_quat extension included")</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_quat extension is deprecated and will be removed in GLM 0.9.9. Use GLM_GTC_quaternion instead and use compiler SIMD arguments.")</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// Warning silencer for nameless struct/union.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># pragma warning(push)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_ALIGNED_STRUCT(16) fquatSIMD</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> fquatSIMD type;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tquat<bool, defaultp> bool_type;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tquat<float, defaultp> pure_type;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tmat4x4<T, P> <span class="keyword">const</span> & m,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tquat<T, P> <a class="code" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a>(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> tquat<T, P> <span class="keyword">const</span> & q,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> tvec3<T, P> <span class="keyword">const</span> & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> __m128 Data;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> };</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> __m128 Data;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Implicit basic constructors</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> fquatSIMD() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> fquatSIMD(fquatSIMD const & q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> fquatSIMD(__m128 const & Data);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Explicit basic constructors</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> explicit fquatSIMD(</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> ctor);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> explicit fquatSIMD(</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">float</span> const & w,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">float</span> const & x,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">float</span> const & y,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">float</span> const & z);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> explicit fquatSIMD(</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> quat const & v);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> explicit fquatSIMD(</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & <a class="code" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// Unary arithmetic operators</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> fquatSIMD& operator= (fquatSIMD const & q) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> fquatSIMD& operator*=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> fquatSIMD& operator/=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#include "rotate_normalized_axis.inl"</span></div>
-<div class="ttc" id="a00227_html_ga6c00234d844faef36a6a94669fbd1639"><div class="ttname"><a href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">glm::rotateNormalizedAxis</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > rotateNormalizedAxis(tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</div><div class="ttdoc">Rotates a quaternion from a vector of 3 components normalized axis and an angle. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Arithmetic operators</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> detail::fquatSIMD operator- (</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> detail::fquatSIMD operator+ (</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> detail::fquatSIMD const & q,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> detail::fquatSIMD const & p);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> detail::fquatSIMD operator* (</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> detail::fquatSIMD const & q,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> detail::fquatSIMD const & p);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> detail::fvec4SIMD operator* (</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> detail::fquatSIMD const & q,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> detail::fvec4SIMD const & v);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> detail::fvec4SIMD operator* (</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> detail::fvec4SIMD const & v,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> detail::fquatSIMD operator* (</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> detail::fquatSIMD const & q,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> detail::fquatSIMD operator* (</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">float</span> s,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> detail::fquatSIMD operator/ (</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> detail::fquatSIMD const & q,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordtype">float</span> s);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> typedef <a class="code" href="a00141.html">glm</a>::detail::fquatSIMD simdQuat;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> quat <a class="code" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> detail::fquatSIMD const & x);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> detail::fquatSIMD quatSIMD_cast(</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> detail::fmat4x4SIMD const & m);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename T, precision P></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> detail::fquatSIMD quatSIMD_cast(</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> template <typename T, precision P></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> detail::fquatSIMD quatSIMD_cast(</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> detail::fmat4x4SIMD mat4SIMD_cast(</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">float</span> <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> detail::fquatSIMD const & x);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> detail::fquatSIMD <a class="code" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> detail::fquatSIMD const & x);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">float</span> <a class="code" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> detail::fquatSIMD const & q1,</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> detail::fquatSIMD const & q2);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> detail::fquatSIMD <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> detail::fquatSIMD const & x,</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> detail::fquatSIMD const & y,</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keywordtype">float</span> const & a);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> detail::fquatSIMD <a class="code" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> detail::fquatSIMD const & x,</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> detail::fquatSIMD const & y,</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keywordtype">float</span> const & a);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> detail::fquatSIMD <a class="code" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> detail::fquatSIMD const & x,</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> detail::fquatSIMD const & y,</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordtype">float</span> const & a);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> detail::fquatSIMD <a class="code" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> detail::fquatSIMD const & x,</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> detail::fquatSIMD const & y,</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordtype">float</span> const & a);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> detail::fquatSIMD fastSlerp(</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> detail::fquatSIMD const & x,</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> detail::fquatSIMD const & y,</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keywordtype">float</span> const & a);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> detail::fquatSIMD <a class="code" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> detail::fquatSIMD <a class="code" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> detail::fquatSIMD const & q);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> detail::fquatSIMD angleAxisSIMD(</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordtype">float</span> const & <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & <a class="code" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> detail::fquatSIMD angleAxisSIMD(</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keywordtype">float</span> const & angle,</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keywordtype">float</span> const & x,</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keywordtype">float</span> const & y,</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keywordtype">float</span> const & z);</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment"></span> __m128 <a class="code" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(__m128 x);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">#include "simd_quat.inl"</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"># pragma warning(pop)</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00148_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
+<div class="ttc" id="a00150_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00157_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00172_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00172.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
+<div class="ttc" id="a00172_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00172_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
+<div class="ttc" id="a00195_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
+<div class="ttc" id="a00220_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00220.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
+<div class="ttc" id="a00148_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00148.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
+<div class="ttc" id="a00172_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
+<div class="ttc" id="a00172_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)</div><div class="ttdoc">Returns euler angles, pitch as x, yaw as y, roll as z. </div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+<div class="ttc" id="a00172_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
+<div class="ttc" id="a00172_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00101.html b/doc/api/a00101.html
index 6d5b08a..f14dac5 100644
--- a/doc/api/a00101.html
+++ b/doc/api/a00101.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_vector.hpp File Reference</title>
+<title>0.9.8: simd_vec4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,65 +45,17 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">rotate_vector.hpp File Reference</div> </div>
+<div class="title">simd_vec4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00101_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</td></tr>
-<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00228.html">GLM_GTX_rotate_vector</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-11-02 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00228.html">GLM_GTX_simd_vec4</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00101_source.html">rotate_vector.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00101_source.html">simd_vec4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00101_source.html b/doc/api/a00101_source.html
index a333c38..6b80408 100644
--- a/doc/api/a00101_source.html
+++ b/doc/api/a00101_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: rotate_vector.hpp Source File</title>
+<title>0.9.8: simd_vec4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,92 +46,351 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">rotate_vector.hpp</div> </div>
+<div class="title">simd_vec4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00101.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/transform.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_rotate_vector extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if(GLM_ARCH & GLM_ARCH_SSE2_BIT)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># include "../detail/intrinsic_common.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># include "../detail/intrinsic_geometric.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># include "../detail/intrinsic_integer.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_vec4 extension included")</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_vec4 extension is deprecated and will be removed in GLM 0.9.9. Use *vec4 types instead and use compiler SIMD arguments.")</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Warning silencer for nameless struct/union.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma warning(push)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">enum</span> comp</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> X = 0,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> R = 0,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> S = 0,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> Y = 1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> G = 1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> T = 1,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> Z = 2,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> B = 2,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> P = 2,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> W = 3,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> A = 3,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> Q = 3</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> };</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a>(</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> T <span class="keyword">const</span> & a);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL tvec2<T, P> <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec2<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a>(</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> tvec3<T, P> <span class="keyword">const</span> & normal);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tvec3<T, P> <a class="code" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> tvec3<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a>(</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a>(</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tvec4<T, P> <a class="code" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a>(</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> tvec4<T, P> <span class="keyword">const</span> & v,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> T <span class="keyword">const</span> & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a>(</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> tvec3<T, P> <span class="keyword">const</span> & Normal,</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> tvec3<T, P> <span class="keyword">const</span> & Up);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#include "rotate_vector.inl"</span></div>
-<div class="ttc" id="a00228_html_ga034e5d197ab4bd8685624bc2cf16e586"><div class="ttname"><a href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">glm::rotateZ</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateZ(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
-<div class="ttc" id="a00228_html_ga49b4d082305cdfcfe0a5c184f684a902"><div class="ttname"><a href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">glm::orientation</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > orientation(tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</div><div class="ttdoc">Build a rotation matrix from a normal and a up vector. </div></div>
-<div class="ttc" id="a00228_html_gaf4d59dd2f668f9ffb38048055d1316bd"><div class="ttname"><a href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotate(tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</div><div class="ttdoc">Rotate a four dimensional vector around an axis. </div></div>
-<div class="ttc" id="a00228_html_gadab312d430a564741ae02215255027a0"><div class="ttname"><a href="a00228.html#gadab312d430a564741ae02215255027a0">glm::rotateX</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateX(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimentionnals vector around the X axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00228_html_gafc9ab3101c3f3799f3d5d6d9d3baac09"><div class="ttname"><a href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > slerp(tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</div><div class="ttdoc">Returns Spherical interpolation between two vectors. </div></div>
-<div class="ttc" id="a00228_html_gae2507577c4bffa3548b32852791dd90c"><div class="ttname"><a href="a00228.html#gae2507577c4bffa3548b32852791dd90c">glm::rotateY</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, P > rotateY(tvec4< T, P > const &v, T const &angle)</div><div class="ttdoc">Rotate a four dimensional vector around the X axis. </div></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_ALIGNED_STRUCT(16) fvec4SIMD</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typedef</span> fvec4SIMD type;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_type;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> tvec4<bool, highp> bool_type;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> __m128 Data;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> };</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> __m128 Data;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// Implicit basic constructors</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> fvec4SIMD() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> fvec4SIMD(fvec4SIMD const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> fvec4SIMD(__m128 const & Data);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Explicit basic constructors</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> explicit fvec4SIMD(</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> ctor);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> explicit fvec4SIMD(</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> explicit fvec4SIMD(</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">float</span> const & x,</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keywordtype">float</span> const & y,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">float</span> const & z,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">float</span> const & w);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> explicit fvec4SIMD(</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & v);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> fvec4SIMD(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v, <span class="keywordtype">float</span> const & s1, <span class="keywordtype">float</span> const & s2);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> fvec4SIMD(<span class="keywordtype">float</span> const & s1, <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v, <span class="keywordtype">float</span> const & s2);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> fvec4SIMD(<span class="keywordtype">float</span> const & s1, <span class="keywordtype">float</span> const & s2, <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> fvec4SIMD(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & v, <span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> fvec4SIMD(<span class="keywordtype">float</span> const & s, <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & v);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> fvec4SIMD(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v1, <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v2);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//fvec4SIMD(ivec4SIMD const & v);</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Unary arithmetic operators</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> fvec4SIMD& operator= (fvec4SIMD const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> fvec4SIMD& operator+=(fvec4SIMD const & v);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> fvec4SIMD& operator-=(fvec4SIMD const & v);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> fvec4SIMD& operator*=(fvec4SIMD const & v);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> fvec4SIMD& operator/=(fvec4SIMD const & v);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> fvec4SIMD& operator+=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> fvec4SIMD& operator-=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> fvec4SIMD& operator*=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> fvec4SIMD& operator/=(<span class="keywordtype">float</span> const & s);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> fvec4SIMD& operator++();</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> fvec4SIMD& operator--();</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Swizzle operators</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <comp X_, comp Y_, comp Z_, comp W_></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> fvec4SIMD& swizzle();</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <comp X_, comp Y_, comp Z_, comp W_></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> fvec4SIMD swizzle() const;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> template <comp X_, comp Y_, comp Z_></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> fvec4SIMD swizzle() const;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <comp X_, comp Y_></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> fvec4SIMD swizzle() const;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <comp X_></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> fvec4SIMD swizzle() const;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> };</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> typedef <a class="code" href="a00141.html">glm</a>::detail::fvec4SIMD simdVec4;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> vec4_cast(</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> detail::fvec4SIMD <a class="code" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> detail::fvec4SIMD <a class="code" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keywordtype">float</span> const & y);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//detail::fvec4SIMD modf(</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// detail::fvec4SIMD const & x,</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// detail::fvec4SIMD & i);</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordtype">float</span> const & y);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">float</span> const & y);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> detail::fvec4SIMD const & minVal,</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> detail::fvec4SIMD const & maxVal);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">float</span> const & minVal,</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">float</span> const & maxVal);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> detail::fvec4SIMD <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> detail::fvec4SIMD const & y,</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> detail::fvec4SIMD const & a);</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> detail::fvec4SIMD const & edge,</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keywordtype">float</span> const & edge,</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> detail::fvec4SIMD const & edge0,</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> detail::fvec4SIMD const & edge1,</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> detail::fvec4SIMD <a class="code" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keywordtype">float</span> const & edge0,</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">float</span> const & edge1,</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment">//bvec4 isnan(detail::fvec4SIMD const & x);</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="comment">//bvec4 isinf(detail::fvec4SIMD const & x);</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> detail::fvec4SIMD <a class="code" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> detail::fvec4SIMD const & a,</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> detail::fvec4SIMD const & b,</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> detail::fvec4SIMD const & c);</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="keywordtype">float</span> <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="keywordtype">float</span> <a class="code" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a>(</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">float</span> niceLength(</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> detail::fvec4SIMD length4(</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> detail::fvec4SIMD fastLength4(</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> detail::fvec4SIMD niceLength4(</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keywordtype">float</span> <a class="code" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> detail::fvec4SIMD const & p0,</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> detail::fvec4SIMD const & p1);</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> detail::fvec4SIMD distance4(</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> detail::fvec4SIMD const & p0,</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> detail::fvec4SIMD const & p1);</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keywordtype">float</span> simdDot(</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> detail::fvec4SIMD dot4(</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> detail::fvec4SIMD <a class="code" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> detail::fvec4SIMD const & x,</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> detail::fvec4SIMD const & y);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> detail::fvec4SIMD <a class="code" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> detail::fvec4SIMD <a class="code" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> detail::fvec4SIMD simdFaceforward(</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> detail::fvec4SIMD const & N,</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> detail::fvec4SIMD const & I,</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> detail::fvec4SIMD const & Nref);</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> detail::fvec4SIMD <a class="code" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> detail::fvec4SIMD const & I,</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> detail::fvec4SIMD const & N);</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> detail::fvec4SIMD <a class="code" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> detail::fvec4SIMD const & I,</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> detail::fvec4SIMD const & N,</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keywordtype">float</span> const & eta);</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> detail::fvec4SIMD <a class="code" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> detail::fvec4SIMD niceSqrt(</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> detail::fvec4SIMD <a class="code" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a>(</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> detail::fvec4SIMD <a class="code" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> detail::fvec4SIMD fastInversesqrt(</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor">#include "simd_vec4.inl"</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="preprocessor"># pragma warning(pop)</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
+<div class="ttc" id="a00146_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
+<div class="ttc" id="a00146_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
+<div class="ttc" id="a00194_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
+<div class="ttc" id="a00194_html_ga6c460e9414a50b2fc455c8f64c86cdc9"><div class="ttname"><a href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastSqrt(genType x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00146_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
+<div class="ttc" id="a00146_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00146_html_ga12201563ef902e3b07e0d1d7656efdb1"><div class="ttname"><a href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genType mod(genType x, genType y)</div><div class="ttdoc">Modulus. </div></div>
+<div class="ttc" id="a00146_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00146.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
+<div class="ttc" id="a00146_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
+<div class="ttc" id="a00146_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
+<div class="ttc" id="a00146_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00146.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
+<div class="ttc" id="a00148_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="ttc" id="a00148_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
+<div class="ttc" id="a00147_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
+<div class="ttc" id="a00148_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00148.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
+<div class="ttc" id="a00146_html_ga015a1261ff23e12650211aa872863cce"><div class="ttname"><a href="a00146.html#ga015a1261ff23e12650211aa872863cce">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL genType step(genType edge, genType x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. </div></div>
+<div class="ttc" id="a00148_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00148_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
+<div class="ttc" id="a00146_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
+<div class="ttc" id="a00146_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+<div class="ttc" id="a00146_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
+<div class="ttc" id="a00147_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
+<div class="ttc" id="a00194_html_gafe697d6287719538346bbdf8b1367c59"><div class="ttname"><a href="a00194.html#gafe697d6287719538346bbdf8b1367c59">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastLength(genType x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
+<div class="ttc" id="a00146_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
+<div class="ttc" id="a00146_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00102.html b/doc/api/a00102.html
index 1314d7d..223d558 100644
--- a/doc/api/a00102.html
+++ b/doc/api/a00102.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: round.hpp File Reference</title>
+<title>0.9.8: spline.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">round.hpp File Reference</div> </div>
+<div class="title">spline.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,72 +56,21 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
-<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType< T, P > const &Value, T Multiple)</td></tr>
-<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType< T, P > const &Value, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
+<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
+<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</td></tr>
+<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00180.html">GLM_GTC_round</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-03 / 2014-11-03 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00229.html">GLM_GTX_spline</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00102_source.html">round.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00102_source.html">spline.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00102_source.html b/doc/api/a00102_source.html
index fc7fa8a..f8f3cb9 100644
--- a/doc/api/a00102_source.html
+++ b/doc/api/a00102_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: round.hpp Source File</title>
+<title>0.9.8: spline.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,103 +41,59 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">round.hpp</div> </div>
+<div class="title">spline.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00102.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/_vectorize.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../vector_relational.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../common.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_integer extension included")</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL genIUType <a class="code" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(genIUType Value);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a>(vecType<T, P> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genIUType></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(genIUType Value, genIUType Multiple);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Value, T Multiple);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Value, vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL genType <a class="code" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(genType Source, genType Multiple);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a>(vecType<T, P> <span class="keyword">const</span> & Source, vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL genType <a class="code" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> genType Source,</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> genType Multiple);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a>(</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> vecType<T, P> <span class="keyword">const</span> & Source,</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL genType <a class="code" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> genType Source,</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> genType Multiple);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL vecType<T, P> <a class="code" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a>(</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> vecType<T, P> <span class="keyword">const</span> & Source,</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> vecType<T, P> <span class="keyword">const</span> & Multiple);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#include "round.inl"</span></div>
-<div class="ttc" id="a00180_html_gad454e4c8d8cd73ddc7de855f733a1465"><div class="ttname"><a href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">glm::isPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return true if the value is a power of two number. </div></div>
-<div class="ttc" id="a00180_html_gae95be3b384f3bbd00c6c1cf0a1f96485"><div class="ttname"><a href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">glm::roundPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
-<div class="ttc" id="a00180_html_ga6a5a8f6dd1b2f755e4572bd039062c37"><div class="ttname"><a href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">glm::floorPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floorPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value, round down to a power of tw...</div></div>
-<div class="ttc" id="a00180_html_ga76ec9b214ea1376fe09a903e34bab847"><div class="ttname"><a href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">glm::ceilPowerOfTwo</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceilPowerOfTwo(vecType< T, P > const &value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value, round up to a power of two...</div></div>
-<div class="ttc" id="a00180_html_gafe632af669ac57d670ca18e3665a12ca"><div class="ttname"><a href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">glm::ceilMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceilMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Higher multiple number of Source. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00180_html_ga6912db42d43873fe1dedb3aed2b7a239"><div class="ttname"><a href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">glm::floorMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floorMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
-<div class="ttc" id="a00180_html_ga10a8ab7b254257b607b6a3fc68c3e661"><div class="ttname"><a href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">glm::roundMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > roundMultiple(vecType< T, P > const &Source, vecType< T, P > const &Multiple)</div><div class="ttdoc">Lower multiple number of Source. </div></div>
-<div class="ttc" id="a00180_html_ga7ae705574ef3e3ebfb4f537d8d285c48"><div class="ttname"><a href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">glm::isMultiple</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isMultiple(vecType< T, P > const &Value, vecType< T, P > const &Multiple)</div><div class="ttdoc">Return true if the 'Value' is a multiple of 'Multiple'. </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtx/optimum_pow.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_spline extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL genType <a class="code" href="a00229.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a>(</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> genType <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> genType <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> genType <span class="keyword">const</span> & v3, </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> genType <span class="keyword">const</span> & v4, </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL genType <a class="code" href="a00229.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a>(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> genType <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> genType <span class="keyword">const</span> & t1, </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> genType <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> genType <span class="keyword">const</span> & t2, </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL genType <a class="code" href="a00229.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a>(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> genType <span class="keyword">const</span> & v1, </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> genType <span class="keyword">const</span> & v2, </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> genType <span class="keyword">const</span> & v3, </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> genType <span class="keyword">const</span> & v4, </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "spline.inl"</span></div>
+<div class="ttc" id="a00229_html_gaa69e143f6374d32f934a8edeaa50bac9"><div class="ttname"><a href="a00229.html#gaa69e143f6374d32f934a8edeaa50bac9">glm::hermite</a></div><div class="ttdeci">GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a hermite curve. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00229_html_ga8119c04f8210fd0d292757565cd6918d"><div class="ttname"><a href="a00229.html#ga8119c04f8210fd0d292757565cd6918d">glm::catmullRom</a></div><div class="ttdeci">GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a catmull rom curve. </div></div>
+<div class="ttc" id="a00229_html_ga6b867eb52e2fc933d2e0bf26aabc9a70"><div class="ttname"><a href="a00229.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">glm::cubic</a></div><div class="ttdeci">GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a cubic curve. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00103.html b/doc/api/a00103.html
index c50519f..c371382 100644
--- a/doc/api/a00103.html
+++ b/doc/api/a00103.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_multiplication.hpp File Reference</title>
+<title>0.9.8: std_based_type.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,25 +45,41 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">scalar_multiplication.hpp File Reference</div> </div>
+<div class="title">std_based_type.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00103_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
+<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
+<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
+<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
+<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
+<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
+<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
+<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
+<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-09-22 / 2014-09-22 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Joshua Moerman</dd></dl>
-<p>Enables scalar multiplication for all types</p>
-<p>Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic) </p>
+<div class="textblock"><p><a class="el" href="a00230.html">GLM_GTX_std_based_type</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00103_source.html">scalar_multiplication.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00103_source.html b/doc/api/a00103_source.html
index 7fee84e..bca72f4 100644
--- a/doc/api/a00103_source.html
+++ b/doc/api/a00103_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_multiplication.hpp Source File</title>
+<title>0.9.8: std_based_type.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,80 +46,51 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">scalar_multiplication.hpp</div> </div>
+<div class="title">std_based_type.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00103.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cstdlib></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_std_based_type extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="a00230.html#ga47c940f279a6b97ffc301eb4526a445a"> 30</a></span> <span class="keyword">typedef</span> tvec1<std::size_t, defaultp> <a class="code" href="a00230.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00230.html#gac0ef172641a1555684da0beb735c2a79"> 34</a></span> <span class="keyword">typedef</span> tvec2<std::size_t, defaultp> <a class="code" href="a00230.html#gac0ef172641a1555684da0beb735c2a79">size2</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="a00230.html#ga51b5e9650c459973134ffb4236ae88b6"> 38</a></span> <span class="keyword">typedef</span> tvec3<std::size_t, defaultp> <a class="code" href="a00230.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00230.html#gaf07a3f432e328c99d35637225c988121"> 42</a></span> <span class="keyword">typedef</span> tvec4<std::size_t, defaultp> <a class="code" href="a00230.html#gaf07a3f432e328c99d35637225c988121">size4</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#if !GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># error "GLM_GTX_scalar_multiplication requires C++11 support or alias templates and if not support for GCC"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include <type_traits></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00230.html#ga77d0b061efa41cb2ed2285d09294314e"> 46</a></span> <span class="keyword">typedef</span> tvec1<std::size_t, defaultp> <a class="code" href="a00230.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00230.html#gaa7d72bbe318d27da9d30f27095e4c75e"> 50</a></span> <span class="keyword">typedef</span> tvec2<std::size_t, defaultp> <a class="code" href="a00230.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="a00230.html#gad364e6c302642e3bb89d756df5d0c8c6"> 54</a></span> <span class="keyword">typedef</span> tvec3<std::size_t, defaultp> <a class="code" href="a00230.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> Vec></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">using</span> return_type_scalar_multiplication = <span class="keyword">typename</span> std::enable_if<</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> !std::is_same<T, float>::value <span class="comment">// T may not be a float</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> && std::is_arithmetic<T>::value, Vec <span class="comment">// But it may be an int or double (no vec3 or mat3, ...)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> >::type;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#define GLM_IMPLEMENT_SCAL_MULT(Vec) \</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"> template <typename T> \</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"> operator*(T const & s, Vec rh){ \</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"> return rh *= static_cast<float>(s); \</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> template <typename T> \</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"> operator*(Vec lh, T const & s){ \</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"> return lh *= static_cast<float>(s); \</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"> template <typename T> \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"> return_type_scalar_multiplication<T, Vec> \</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"> operator/(Vec lh, T const & s){ \</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"> return lh *= 1.0f / s; \</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"> }</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>)</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>)</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>)</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>)</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>)</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>)</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>)</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>)</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>)</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>)</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_IMPLEMENT_SCAL_MULT(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#undef GLM_IMPLEMENT_SCAL_MULT</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> } <span class="comment">// namespace glm</span></div>
-<div class="ttc" id="a00163_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00410">type_mat.hpp:410</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00163_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00395">type_mat.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00163.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00390">type_mat.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00400">type_mat.hpp:400</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00420">type_mat.hpp:420</a></div></div>
-<div class="ttc" id="a00163_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00415">type_mat.hpp:415</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="a00230.html#ga06862b7d59094244025d34407b2cb796"> 58</a></span> <span class="keyword">typedef</span> tvec4<std::size_t, defaultp> <a class="code" href="a00230.html#ga06862b7d59094244025d34407b2cb796">size4_t</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "std_based_type.inl"</span></div>
+<div class="ttc" id="a00230_html_ga06862b7d59094244025d34407b2cb796"><div class="ttname"><a href="a00230.html#ga06862b7d59094244025d34407b2cb796">glm::size4_t</a></div><div class="ttdeci">tvec4< std::size_t, defaultp > size4_t</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00058">std_based_type.hpp:58</a></div></div>
+<div class="ttc" id="a00230_html_gac0ef172641a1555684da0beb735c2a79"><div class="ttname"><a href="a00230.html#gac0ef172641a1555684da0beb735c2a79">glm::size2</a></div><div class="ttdeci">tvec2< std::size_t, defaultp > size2</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00034">std_based_type.hpp:34</a></div></div>
+<div class="ttc" id="a00230_html_ga77d0b061efa41cb2ed2285d09294314e"><div class="ttname"><a href="a00230.html#ga77d0b061efa41cb2ed2285d09294314e">glm::size1_t</a></div><div class="ttdeci">tvec1< std::size_t, defaultp > size1_t</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00046">std_based_type.hpp:46</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00230_html_ga47c940f279a6b97ffc301eb4526a445a"><div class="ttname"><a href="a00230.html#ga47c940f279a6b97ffc301eb4526a445a">glm::size1</a></div><div class="ttdeci">tvec1< std::size_t, defaultp > size1</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00030">std_based_type.hpp:30</a></div></div>
+<div class="ttc" id="a00230_html_gaf07a3f432e328c99d35637225c988121"><div class="ttname"><a href="a00230.html#gaf07a3f432e328c99d35637225c988121">glm::size4</a></div><div class="ttdeci">tvec4< std::size_t, defaultp > size4</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00042">std_based_type.hpp:42</a></div></div>
+<div class="ttc" id="a00230_html_ga51b5e9650c459973134ffb4236ae88b6"><div class="ttname"><a href="a00230.html#ga51b5e9650c459973134ffb4236ae88b6">glm::size3</a></div><div class="ttdeci">tvec3< std::size_t, defaultp > size3</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00038">std_based_type.hpp:38</a></div></div>
+<div class="ttc" id="a00230_html_gaa7d72bbe318d27da9d30f27095e4c75e"><div class="ttname"><a href="a00230.html#gaa7d72bbe318d27da9d30f27095e4c75e">glm::size2_t</a></div><div class="ttdeci">tvec2< std::size_t, defaultp > size2_t</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00050">std_based_type.hpp:50</a></div></div>
+<div class="ttc" id="a00230_html_gad364e6c302642e3bb89d756df5d0c8c6"><div class="ttname"><a href="a00230.html#gad364e6c302642e3bb89d756df5d0c8c6">glm::size3_t</a></div><div class="ttdeci">tvec3< std::size_t, defaultp > size3_t</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00103_source.html#l00054">std_based_type.hpp:54</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00104.html b/doc/api/a00104.html
index 6898261..79f48bb 100644
--- a/doc/api/a00104.html
+++ b/doc/api/a00104.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_relational.hpp File Reference</title>
+<title>0.9.8: string_cast.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,24 +45,32 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">scalar_relational.hpp File Reference</div> </div>
+<div class="title">string_cast.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00104_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template<template< typename, precision > class matType, typename T , precision P> </td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00231.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType< T, P > const &x)</td></tr>
+<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00229.html">GLM_GTX_scalar_relational</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-02-04 / 2013-02-04 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00231.html">GLM_GTX_string_cast</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00199.html" title="Add support for integer for core functions. ">GLM_GTX_integer</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00104_source.html">scalar_relational.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00104_source.html">string_cast.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00104_source.html b/doc/api/a00104_source.html
index 335096c..47effc3 100644
--- a/doc/api/a00104_source.html
+++ b/doc/api/a00104_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: scalar_relational.hpp Source File</title>
+<title>0.9.8: string_cast.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,28 +46,38 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">scalar_relational.hpp</div> </div>
+<div class="title">string_cast.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00104.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../gtx/dual_quaternion.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_CUDA)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"># error "GLM_GTX_string_cast is not supported on CUDA compiler"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_string_cast extension included")</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL std::string <a class="code" href="a00231.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a>(matType<T, P> <span class="keyword">const</span> & x);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }<span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_extend extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "scalar_relational.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "string_cast.inl"</span></div>
+<div class="ttc" id="a00231_html_ga7b4f9233593bbf1d53762f801ef56fe6"><div class="ttname"><a href="a00231.html#ga7b4f9233593bbf1d53762f801ef56fe6">glm::to_string</a></div><div class="ttdeci">GLM_FUNC_DECL std::string to_string(matType< T, P > const &x)</div><div class="ttdoc">Create a string from a GLM vector or matrix typed variable. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00105.html b/doc/api/a00105.html
index 4de0bde..797ec54 100644
--- a/doc/api/a00105.html
+++ b/doc/api/a00105.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: setup.hpp File Reference</title>
+<title>0.9.8: transform.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,42 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">setup.hpp File Reference</div> </div>
+<div class="title">transform.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00105_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-11-13 / 2014-10-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00232.html">GLM_GTX_transform</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
+<dd>
+<a class="el" href="a00233.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
-<p>Definition in file <a class="el" href="a00105_source.html">setup.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00105_source.html">transform.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00105_source.html b/doc/api/a00105_source.html
index a86d0f2..efaf258 100644
--- a/doc/api/a00105_source.html
+++ b/doc/api/a00105_source.html
@@ -1,1044 +1,95 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: setup.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">setup.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00105.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <cassert></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Version</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define GLM_VERSION 97</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#define GLM_VERSION_MAJOR 0</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#define GLM_VERSION_MINOR 9</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#define GLM_VERSION_PATCH 7</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#define GLM_VERSION_REVISION 0</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_VERSION_DISPLAYED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># define GLM_MESSAGE_VERSION_DISPLAYED</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message ("GLM: version 0.9.7")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Platform</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#define GLM_PLATFORM_UNKNOWN 0x00000000</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#define GLM_PLATFORM_WINDOWS 0x00010000</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#define GLM_PLATFORM_LINUX 0x00020000</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#define GLM_PLATFORM_APPLE 0x00040000</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">//#define GLM_PLATFORM_IOS 0x00080000</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#define GLM_PLATFORM_ANDROID 0x00100000</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#define GLM_PLATFORM_CHROME_NACL 0x00200000</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#define GLM_PLATFORM_UNIX 0x00400000</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#define GLM_PLATFORM_QNXNTO 0x00800000</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#define GLM_PLATFORM_WINCE 0x01000000</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#ifdef GLM_FORCE_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#elif defined(__QNXNTO__)</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_QNXNTO</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#elif defined(__APPLE__)</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_APPLE</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#elif defined(WINCE)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_WINCE</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#elif defined(_WIN32)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_WINDOWS</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#elif defined(__native_client__)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#elif defined(__ANDROID__)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_ANDROID</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#elif defined(__linux)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_LINUX</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#elif defined(__unix)</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNIX</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># define GLM_PLATFORM GLM_PLATFORM_UNKNOWN</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Report platform detection</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># define GLM_MESSAGE_PLATFORM_DISPLAYED</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># pragma message("GLM: QNX platform detected")</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">//# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">//# pragma message("GLM: iOS platform detected")</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"># pragma message("GLM: Apple platform detected")</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"># pragma message("GLM: WinCE platform detected")</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"># pragma message("GLM: Windows platform detected")</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># pragma message("GLM: Native Client detected")</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"># pragma message("GLM: Android platform detected")</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"># pragma message("GLM: Linux platform detected")</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># pragma message("GLM: UNIX platform detected")</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"># elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"># pragma message("GLM: platform unknown")</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># pragma message("GLM: platform not detected")</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// Compiler</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// User defines: GLM_FORCE_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// TODO ? __llvm__</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#define GLM_COMPILER_UNKNOWN 0x00000000</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// Intel</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor">#define GLM_COMPILER_INTEL 0x00100000</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#define GLM_COMPILER_INTEL12 0x00100010</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor">#define GLM_COMPILER_INTEL12_1 0x00100020</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#define GLM_COMPILER_INTEL13 0x00100030</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor">#define GLM_COMPILER_INTEL14 0x00100040</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#define GLM_COMPILER_INTEL15 0x00100050</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#define GLM_COMPILER_INTEL16 0x00100060</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// Visual C++ defines</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#define GLM_COMPILER_VC 0x01000000</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#define GLM_COMPILER_VC2010 0x01000090</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define GLM_COMPILER_VC2012 0x010000A0</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">#define GLM_COMPILER_VC2013 0x010000B0</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#define GLM_COMPILER_VC2015 0x010000C0</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// GCC defines</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#define GLM_COMPILER_GCC 0x02000000</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#define GLM_COMPILER_GCC44 0x020000B0</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#define GLM_COMPILER_GCC45 0x020000C0</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#define GLM_COMPILER_GCC46 0x020000D0</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#define GLM_COMPILER_GCC47 0x020000E0</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#define GLM_COMPILER_GCC48 0x020000F0</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#define GLM_COMPILER_GCC49 0x02000100</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define GLM_COMPILER_GCC50 0x02000200</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#define GLM_COMPILER_GCC51 0x02000300</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#define GLM_COMPILER_GCC52 0x02000400</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#define GLM_COMPILER_GCC53 0x02000500</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// CUDA</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#define GLM_COMPILER_CUDA 0x10000000</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#define GLM_COMPILER_CUDA40 0x10000040</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define GLM_COMPILER_CUDA41 0x10000050</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#define GLM_COMPILER_CUDA42 0x10000060</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor">#define GLM_COMPILER_CUDA50 0x10000070</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#define GLM_COMPILER_CUDA60 0x10000080</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#define GLM_COMPILER_CUDA65 0x10000090</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#define GLM_COMPILER_CUDA70 0x100000A0</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#define GLM_COMPILER_CUDA75 0x100000B0</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// LLVM</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#define GLM_COMPILER_LLVM 0x20000000</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#define GLM_COMPILER_LLVM32 0x20000030</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#define GLM_COMPILER_LLVM33 0x20000040</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor">#define GLM_COMPILER_LLVM34 0x20000050</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#define GLM_COMPILER_LLVM35 0x20000060</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#define GLM_COMPILER_LLVM36 0x20000070</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#define GLM_COMPILER_LLVM37 0x20000080</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#define GLM_COMPILER_LLVM38 0x20000090</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#define GLM_COMPILER_LLVM39 0x200000A0</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// Apple Clang</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG 0x40000000</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG40 0x40000010</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG41 0x40000020</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG42 0x40000030</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG50 0x40000040</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG51 0x40000050</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG60 0x40000060</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#define GLM_COMPILER_APPLE_CLANG61 0x40000070</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Build model</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor">#define GLM_MODEL_32 0x00000010</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#define GLM_MODEL_64 0x00000020</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Force generic C++ compiler</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#ifdef GLM_FORCE_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#elif defined(__INTEL_COMPILER)</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor"># if __INTEL_COMPILER == 1200</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL12</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor"># elif __INTEL_COMPILER == 1210</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL12_1</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor"># elif __INTEL_COMPILER == 1300</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"># elif __INTEL_COMPILER == 1400</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL14</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor"># elif __INTEL_COMPILER >= 1500</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL15</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"># elif __INTEL_COMPILER >= 1600</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL16</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// CUDA</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#elif defined(__CUDACC__)</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor"># if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"># include <cuda.h></span> <span class="comment">// make sure version is defined since nvcc does not define it itself!</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor"># if CUDA_VERSION < 3000</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor"># error "GLM requires CUDA 3.0 or higher"</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">// Visual C++</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#elif defined(_MSC_VER)</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"># if _MSC_VER < 1600</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"># error "GLM requires Visual C++ 2010 or higher"</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor"># elif _MSC_VER == 1600</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor"># elif _MSC_VER == 1700</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2012</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor"># elif _MSC_VER == 1800</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2013</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"># elif _MSC_VER >= 1900</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="preprocessor"># else//_MSC_VER</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor"># endif//_MSC_VER</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// Clang</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor">#elif defined(__clang__)</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor"># if GLM_PLATFORM & GLM_PLATFORM_APPLE</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor"># if __clang_major__ == 4 && __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG40</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="preprocessor"># elif __clang_major__ == 4 && __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG41</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor"># elif __clang_major__ == 4 && __clang_minor__ == 2</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG42</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor"># elif __clang_major__ == 5 && __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG50</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"># elif __clang_major__ == 5 && __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG51</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"># elif __clang_major__ == 6 && __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG60</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"># elif __clang_major__ == 6 && __clang_minor__ >= 1</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG61</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"># elif __clang_major__ >= 7</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG61</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_APPLE_CLANG</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"># if __clang_major__ == 3 && __clang_minor__ == 0</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM30</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 1</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM31</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 2</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM32</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 3</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM33</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 4</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM34</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 5</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM35</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 6</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM36</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 7</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM37</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ == 8</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM38</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"># elif __clang_major__ == 3 && __clang_minor__ >= 9</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM39</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="preprocessor"># elif __clang_major__ >= 4</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM39</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_LLVM</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment">// G++</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#elif defined(__GNUC__) || defined(__MINGW32__)</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor"># if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC42)</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC43)</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC44)</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC45)</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC46)</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC47)</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC48)</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor"># elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC49)</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="preprocessor"># elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC50)</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor"># elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 1)</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC51)</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor"># elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2)</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC52)</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="preprocessor"># elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3)</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC53)</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"># define GLM_COMPILER (GLM_COMPILER_GCC)</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor"># define GLM_COMPILER GLM_COMPILER_UNKNOWN</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="preprocessor">#ifndef GLM_COMPILER</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="preprocessor">#error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// Report compiler detection</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="preprocessor"># define GLM_MESSAGE_COMPILER_DISPLAYED</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="preprocessor"># pragma message("GLM: CUDA compiler detected")</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"># pragma message("GLM: Visual C++ compiler detected")</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_APPLE_CLANG</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"># pragma message("GLM: Clang compiler detected")</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_LLVM</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor"># pragma message("GLM: LLVM compiler detected")</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor"># pragma message("GLM: Intel Compiler detected")</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="preprocessor"># pragma message("GLM: GCC compiler detected")</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"># pragma message("GLM: Compiler not detected")</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment">// Build model</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor">#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_64</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor">#elif defined(__i386__) || defined(__ppc__)</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="preprocessor"># define GLM_MODEL GLM_MODEL_32</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="preprocessor">#if !defined(GLM_MODEL) && GLM_COMPILER != 0</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"># error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor">#endif//GLM_MODEL</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED)</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"># define GLM_MESSAGE_MODEL_DISPLAYED</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="preprocessor"># if(GLM_MODEL == GLM_MODEL_64)</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="preprocessor"># pragma message("GLM: 64 bits model")</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"># elif(GLM_MODEL == GLM_MODEL_32)</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor"># pragma message("GLM: 32 bits model")</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"># endif//GLM_MODEL</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// C++ Version</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="preprocessor">#define GLM_LANG_CXX98_FLAG (1 << 1)</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="preprocessor">#define GLM_LANG_CXX03_FLAG (1 << 2)</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="preprocessor">#define GLM_LANG_CXX0X_FLAG (1 << 3)</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="preprocessor">#define GLM_LANG_CXX11_FLAG (1 << 4)</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor">#define GLM_LANG_CXX1Y_FLAG (1 << 5)</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="preprocessor">#define GLM_LANG_CXX14_FLAG (1 << 6)</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="preprocessor">#define GLM_LANG_CXX1Z_FLAG (1 << 7)</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#define GLM_LANG_CXXMS_FLAG (1 << 8)</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor">#define GLM_LANG_CXXGNU_FLAG (1 << 9)</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor">#define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">#define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor">#define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="preprocessor">#define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="preprocessor">#define GLM_LANG_CXX1Y (GLM_LANG_CXX11 | GLM_LANG_CXX1Y_FLAG)</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor">#define GLM_LANG_CXX14 (GLM_LANG_CXX1Y | GLM_LANG_CXX14_FLAG)</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="preprocessor">#define GLM_LANG_CXX1Z (GLM_LANG_CXX14 | GLM_LANG_CXX1Z_FLAG)</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor">#define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor">#define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor">#if defined(GLM_FORCE_CXX14)</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor"># undef GLM_FORCE_CXX11</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX11)</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"># undef GLM_FORCE_CXX03</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX03)</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"># undef GLM_FORCE_CXX98</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX03</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#elif defined(GLM_FORCE_CXX98)</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"># if GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"># if __cplusplus >= 201402L // GLM_COMPILER_LLVM34 + -std=c++14</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"># elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_LLVM33 + -std=c++1y</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX1Y</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"># elif __cplusplus >= 201103L // GLM_COMPILER_LLVM33 + -std=c++11</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor"># elif __has_feature(cxx_static_assert) // GLM_COMPILER_LLVM29 + -std=c++11</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"># elif defined(__GXX_EXPERIMENTAL_CXX0X__)</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">//# elif GLM_COMPILER >= GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment">//# define GLM_LANG (GLM_LANG_CXX1Y | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">//# elif GLM_COMPILER >= GLM_COMPILER_VC2015</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment">//# define GLM_LANG GLM_LANG_CXX1Y</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX0X</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_INTEL</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor"># ifdef _MSC_EXTENSIONS</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_INTEL13</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor"># define GLM_LANG (GLM_LANG_CXX | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"># else // Unkown compiler</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor"># if __cplusplus >= 201402L</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX14</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="preprocessor"># elif __cplusplus >= 201103L</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX11</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor"># elif __cplusplus >= 199711L</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX98</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="preprocessor"># define GLM_LANG GLM_LANG_CXX // Good luck with that!</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># ifndef GLM_FORCE_PURE</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"># define GLM_FORCE_PURE</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED)</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor"># define GLM_MESSAGE_LANG_DISPLAYED</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor"># if GLM_LANG & GLM_LANG_CXX1Z_FLAG</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"># pragma message("GLM: C++1z")</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX14_FLAG</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"># pragma message("GLM: C++14")</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX1Y_FLAG</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># pragma message("GLM: C++1y")</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor"># pragma message("GLM: C++11")</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX0X_FLAG</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor"># pragma message("GLM: C++0x")</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX03_FLAG</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="preprocessor"># pragma message("GLM: C++03")</span></div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor"># elif GLM_LANG & GLM_LANG_CXX98_FLAG</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor"># pragma message("GLM: C++98")</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor"># pragma message("GLM: C++ language undetected")</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor"># if GLM_LANG & (GLM_LANG_CXXGNU_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"># pragma message("GLM: Language extensions enabled")</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="comment">// Has of C++ features</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="comment">// http://clang.llvm.org/cxx_status.html</span></div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="comment">// http://gcc.gnu.org/projects/cxx0x.html</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment">// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="preprocessor">#if GLM_PLATFORM == GLM_PLATFORM_ANDROID</span></div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="preprocessor">#elif GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="preprocessor"># if __has_include(<__config>) // libc++</span></div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="preprocessor"># include <__config></span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="comment">//# else // libstdc++</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="comment">//# include <bits/c++config.h></span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="preprocessor"># if defined(_LIBCPP_VERSION)// || defined(__GLIBCXX__)</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL 1</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL 0</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor"># define GLM_HAS_CXX11_STL ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && \</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)))</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment">// N1720</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT 1</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor"># define GLM_HAS_STATIC_ASSERT (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010)))</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> </div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="comment">// N1988</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE 1</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor"># define GLM_HAS_EXTENDED_INTEGER_TYPE (\</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30)) || \</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor"> ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_APPLE_CLANG) && (GLM_COMPILER >= GLM_COMPILER_APPLE_CLANG40)))</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="comment">// N2235</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)</span></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR 1</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)))</span></div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="preprocessor"># define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015))</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="comment">// N2672</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS 1</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="preprocessor"># define GLM_HAS_INITIALIZER_LISTS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment">// N2544 Unrestricted unions</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor">#elif GLM_LANG & (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS 1</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="preprocessor"># define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)))</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="comment">// N2346</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS 1</span></div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="preprocessor"># define GLM_HAS_DEFAULTED_FUNCTIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12)))</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment">// N2118</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES 1</span></div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="preprocessor"># define GLM_HAS_RVALUE_REFERENCES (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)))</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> </div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment">// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor"># define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC45)) || \</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> </div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="comment">// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES 1</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"># define GLM_HAS_TEMPLATE_ALIASES (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12_1)) || \</span></div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="comment">// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="preprocessor">#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)</span></div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)</span></div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="preprocessor">#elif GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR 1</span></div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="preprocessor"># define GLM_HAS_RANGE_FOR (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \</span></div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL13)) || \</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)))</span></div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor"># define GLM_HAS_ASSIGNABLE 1</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> <span class="preprocessor"># define GLM_HAS_ASSIGNABLE (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49)))</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor">#define GLM_HAS_TRIVIAL_QUERIES 0</span></div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor">#if GLM_LANG & GLM_LANG_CXX11_FLAG</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="preprocessor"># define GLM_HAS_MAKE_SIGNED 1</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor"># define GLM_HAS_MAKE_SIGNED (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)))</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="comment">//</span></div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="preprocessor">#if GLM_ARCH == GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS 0</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor"># define GLM_HAS_BITSCAN_WINDOWS (GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && (\</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="preprocessor"> (GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_LLVM | GLM_COMPILER_INTEL))</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">// OpenMP</span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor">#ifdef _OPENMP</span></div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_GCC47</span></div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor"># define GLM_HAS_OPENMP 31</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC44</span></div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"># define GLM_HAS_OPENMP 30</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="preprocessor"># elif GLM_COMPILER >= GLM_COMPILER_GCC42</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor"># define GLM_HAS_OPENMP 25</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="preprocessor"># endif// GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"># if GLM_COMPILER >= GLM_COMPILER_VC2010</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor"># define GLM_HAS_OPENMP 20</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># endif// GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="comment">// Not standard</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor">#define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment">// Platform</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="comment">// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor">#define GLM_ARCH_PURE 0x0000</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor">#define GLM_ARCH_ARM 0x0001</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor">#define GLM_ARCH_X86 0x0002</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor">#define GLM_ARCH_SSE2 0x0004</span></div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor">#define GLM_ARCH_SSE3 0x0008</span></div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor">#define GLM_ARCH_SSE4 0x0010</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor">#define GLM_ARCH_AVX 0x0020</span></div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor">#define GLM_ARCH_AVX2 0x0040</span></div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor">#if defined(GLM_FORCE_PURE)</span></div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="preprocessor">#elif defined(GLM_FORCE_AVX2)</span></div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="preprocessor">#elif defined(GLM_FORCE_AVX)</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor">#elif defined(GLM_FORCE_SSE4)</span></div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor">#elif defined(GLM_FORCE_SSE3)</span></div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="preprocessor">#elif defined(GLM_FORCE_SSE2)</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor">#elif (GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))</span></div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"># if(__AVX2__)</span></div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="preprocessor"># elif(__AVX__)</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"># elif(__SSE3__)</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"># elif(__SSE2__)</span></div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor">#elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))</span></div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"># if defined(_M_ARM_FP)</span></div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_ARM)</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="preprocessor"># elif defined(__AVX2__)</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"># elif defined(__AVX__)</span></div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="preprocessor"># elif _M_IX86_FP == 2</span></div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor">#elif (GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))</span></div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor"># if defined(__AVX2__)</span></div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="preprocessor"># elif defined(__AVX__)</span></div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="preprocessor"># elif defined(__SSE4_1__ )</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="preprocessor"># elif defined(__SSE3__)</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"># elif defined(__SSE2__)</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor"># define GLM_ARCH (GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="preprocessor"># define GLM_ARCH GLM_ARCH_PURE</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="comment">// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="comment">// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="comment">// To fix, we just explicitly include intrin.h here.</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#if defined(__MINGW64__) && (GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor"># include <intrin.h></span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_AVX2</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="preprocessor"># include <immintrin.h></span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_AVX</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="preprocessor"># include <immintrin.h></span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_SSE4</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="preprocessor"># include <smmintrin.h></span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_SSE3</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="preprocessor"># include <pmmintrin.h></span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="preprocessor">#if GLM_ARCH & GLM_ARCH_SSE2</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="preprocessor"># include <emmintrin.h></span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="preprocessor"># if(GLM_COMPILER == GLM_COMPILER_VC2005) // VC2005 is missing some intrinsics, workaround</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="keyword">inline</span> <span class="keywordtype">float</span> _mm_cvtss_f32(__m128 A) { <span class="keywordflow">return</span> A.m128_f32[0]; }</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="keyword">inline</span> __m128 _mm_castpd_ps(__m128d PD) { <span class="keyword">union </span>{ __m128 ps; __m128d pd; } c; c.pd = PD; <span class="keywordflow">return</span> c.ps; }</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="keyword">inline</span> __m128d _mm_castps_pd(__m128 PS) { <span class="keyword">union </span>{ __m128 ps; __m128d pd; } c; c.ps = PS; <span class="keywordflow">return</span> c.pd; }</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="keyword">inline</span> __m128i _mm_castps_si128(__m128 PS) { <span class="keyword">union </span>{ __m128 ps; __m128i <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>; } c; c.ps = PS; <span class="keywordflow">return</span> c.pi; }</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="keyword">inline</span> __m128 _mm_castsi128_ps(__m128i PI) { <span class="keyword">union </span>{ __m128 ps; __m128i <a class="code" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a>; } c; c.pi = PI; <span class="keywordflow">return</span> c.ps; }</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="preprocessor">#endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED)</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="preprocessor"># define GLM_MESSAGE_ARCH_DISPLAYED</span></div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="preprocessor"># if(GLM_ARCH == GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor"># pragma message("GLM: Platform independent code")</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="preprocessor"># elif(GLM_ARCH & GLM_ARCH_ARM)</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="preprocessor"># pragma message("GLM: ARM instruction set")</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="preprocessor"># elif(GLM_ARCH & GLM_ARCH_AVX2)</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="preprocessor"># pragma message("GLM: AVX2 instruction set")</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="preprocessor"># elif(GLM_ARCH & GLM_ARCH_AVX)</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="preprocessor"># pragma message("GLM: AVX instruction set")</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="preprocessor"># elif(GLM_ARCH & GLM_ARCH_SSE3)</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="preprocessor"># pragma message("GLM: SSE3 instruction set")</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor"># elif(GLM_ARCH & GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"># pragma message("GLM: SSE2 instruction set")</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="preprocessor"># endif//GLM_ARCH</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> </div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <span class="comment">// Static assert</span></div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> </div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="preprocessor">#if GLM_HAS_STATIC_ASSERT</span></div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) static_assert(x, message)</span></div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="preprocessor">#elif defined(BOOST_STATIC_ASSERT)</span></div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="preprocessor">#elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]</span></div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="preprocessor"># define GLM_STATIC_ASSERT(x, message)</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="preprocessor"># define GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="preprocessor">#endif//GLM_LANG</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> </div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> </div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_CUDA</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DEF __device__ __host__</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DECL __device__ __host__</span></div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DEF</span></div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="preprocessor"># define GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> </div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="preprocessor">#if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="preprocessor"># define GLM_VAR_USED __attribute__ ((unused))</span></div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="preprocessor"># define GLM_VAR_USED</span></div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> </div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="preprocessor">#if defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="preprocessor"># define GLM_INLINE __forceinline</span></div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="preprocessor"># define GLM_NEVER_INLINE __declspec((noinline))</span></div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="preprocessor"># elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="preprocessor"># define GLM_INLINE inline __attribute__((__always_inline__))</span></div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="preprocessor"># define GLM_NEVER_INLINE __attribute__((__noinline__))</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="preprocessor"># define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="preprocessor"># endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="preprocessor"># define GLM_INLINE inline</span></div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="preprocessor"># define GLM_NEVER_INLINE</span></div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="preprocessor">#endif//defined(GLM_FORCE_INLINE)</span></div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> </div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="preprocessor">#define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="preprocessor">#define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE</span></div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment">// Swizzle operators</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment">// User defines: GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> </div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)</span></div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> <span class="preprocessor"># define GLM_MESSAGE_SWIZZLE_DISPLAYED</span></div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="preprocessor"># if defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="preprocessor"># pragma message("GLM: Swizzling operators enabled")</span></div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="preprocessor"># pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")</span></div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment">// Qualifiers</span></div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="preprocessor"># define GLM_DEPRECATED __declspec(deprecated)</span></div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> <span class="preprocessor"># define GLM_ALIGN(x) __declspec(align(x))</span></div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))</span></div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name</span></div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="preprocessor"># define GLM_RESTRICT __declspec(restrict)</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="preprocessor"># define GLM_RESTRICT_VAR __restrict</span></div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="preprocessor">#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)</span></div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="preprocessor"># define GLM_DEPRECATED __attribute__((__deprecated__))</span></div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="preprocessor"># define GLM_ALIGN(x) __attribute__((aligned(x)))</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))</span></div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="preprocessor"># define GLM_RESTRICT __restrict__</span></div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="preprocessor"># define GLM_RESTRICT_VAR __restrict__</span></div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="preprocessor"># define GLM_DEPRECATED</span></div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="preprocessor"># define GLM_ALIGN</span></div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="preprocessor"># define GLM_ALIGNED_STRUCT(x) struct</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="preprocessor"># define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name</span></div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="preprocessor"># define GLM_RESTRICT</span></div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="preprocessor"># define GLM_RESTRICT_VAR</span></div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="preprocessor">#endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="preprocessor">#if GLM_HAS_DEFAULTED_FUNCTIONS</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="preprocessor"># define GLM_DEFAULT = default</span></div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <span class="preprocessor"># ifdef GLM_FORCE_NO_CTOR_INIT</span></div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR = default</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="preprocessor"># define GLM_DEFAULT</span></div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="preprocessor"># define GLM_DEFAULT_CTOR</span></div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="preprocessor">#if GLM_HAS_CONSTEXPR</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="preprocessor"># define GLM_CONSTEXPR constexpr</span></div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="preprocessor"># define GLM_RELAXED_CONSTEXPR constexpr</span></div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="preprocessor"># define GLM_CONSTEXPR</span></div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="preprocessor"># define GLM_RELAXED_CONSTEXPR const</span></div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="preprocessor">#ifdef GLM_FORCE_EXPLICIT_CTOR</span></div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="preprocessor"># define GLM_EXPLICIT explicit</span></div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="preprocessor"># define GLM_EXPLICIT</span></div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> </div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment">// Length type</span></div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment">// User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> </div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> {</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="keyword">using</span> std::size_t;</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="preprocessor"># if defined(GLM_FORCE_SIZE_T_LENGTH) || defined(GLM_FORCE_SIZE_FUNC)</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> length_t;</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> length_t;</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> </div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> {</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> component_count_t;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="keyword">typedef</span> length_t component_count_t;</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> GLM_FUNC_QUALIFIER GLM_CONSTEXPR component_count_t component_count(genType <span class="keyword">const</span> & m)</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> {</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="keywordflow">return</span> m.size();</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="keywordflow">return</span> m.length();</div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> }</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> </div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="preprocessor">#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)</span></div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="preprocessor"># define GLM_MESSAGE_FORCE_SIZE_T_LENGTH</span></div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="preprocessor"># if defined GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="preprocessor"># pragma message("GLM: .length() is replaced by .size() and returns a std::size_t")</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="preprocessor"># elif defined GLM_FORCE_SIZE_T_LENGTH</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="preprocessor"># pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> <span class="preprocessor"># pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="preprocessor">#endif//GLM_MESSAGE</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> </div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment">// countof</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="preprocessor">#ifndef __has_feature</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="preprocessor"># define __has_feature(x) 0 // Compatibility with non-clang compilers.</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> </div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="preprocessor">#if GLM_HAS_CONSTEXPR_PARTIAL</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> {</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> N></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> constexpr std::size_t countof(T <span class="keyword">const</span> (&)[N])</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> {</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="keywordflow">return</span> N;</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> }</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="preprocessor"># define GLM_COUNTOF(arr) glm::countof(arr)</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="preprocessor">#elif _MSC_VER</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="preprocessor"># define GLM_COUNTOF(arr) _countof(arr)</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="preprocessor"># define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> </div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment">// Uninitialize constructors</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> {</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="keyword">enum</span> ctor{uninitialize};</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00168_html_gae671930537266a9a650ccb4b88757692"><div class="ttname"><a href="a00168.html#gae671930537266a9a650ccb4b88757692">glm::pi</a></div><div class="ttdeci">GLM_FUNC_DECL genType pi()</div><div class="ttdoc">Return the pi constant. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: transform.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">transform.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00105.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtc/matrix_transform.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_transform extension included")</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00232.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00232.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a>(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> T <a class="code" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00232.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a>(</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "transform.inl"</span></div>
+<div class="ttc" id="a00232_html_ga1972d4a66a2e92637c8aaee598417a71"><div class="ttname"><a href="a00232.html#ga1972d4a66a2e92637c8aaee598417a71">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tvec3< T, P > const &v)</div><div class="ttdoc">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="ttc" id="a00232_html_ga838c4505ef7f254ed05117b1ac9691fb"><div class="ttname"><a href="a00232.html#ga838c4505ef7f254ed05117b1ac9691fb">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > translate(tvec3< T, P > const &v)</div><div class="ttdoc">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00232_html_ga2020c91bf61e050882b3a5c18eada700"><div class="ttname"><a href="a00232.html#ga2020c91bf61e050882b3a5c18eada700">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rotate(T angle, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians...</div></div>
+<div class="ttc" id="a00172_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/a00106.html b/doc/api/a00106.html
index 4ace205..50974e8 100644
--- a/doc/api/a00106.html
+++ b/doc/api/a00106.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_mat4.hpp File Reference</title>
+<title>0.9.8: transform2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,24 +45,52 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">simd_mat4.hpp File Reference</div> </div>
+<div class="title">transform2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00106_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</td></tr>
+<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</td></tr>
+<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
+<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4< valType, P > const &m, valType scale, valType bias)</td></tr>
+<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3< T, P > const &m, T y)</td></tr>
+<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4< T, P > &m, T y, T z)</td></tr>
+<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3< T, P > const &m, T x)</td></tr>
+<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4< T, P > &m, T x, T z)</td></tr>
+<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4< T, P > &m, T x, T y)</td></tr>
+<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00230.html">GLM_GTX_simd_mat4</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00233.html">GLM_GTX_transform2</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00106_source.html">simd_mat4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00106_source.html">transform2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00106_source.html b/doc/api/a00106_source.html
index 0b1b39f..7365541 100644
--- a/doc/api/a00106_source.html
+++ b/doc/api/a00106_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_mat4.hpp Source File</title>
+<title>0.9.8: transform2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,174 +46,93 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_mat4.hpp</div> </div>
+<div class="title">transform2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00106.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(GLM_ARCH & GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># include "../detail/intrinsic_matrix.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># include "../gtx/simd_vec4.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_mat4 extension included")</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_ALIGNED_STRUCT(16) fmat4x4SIMD</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> fvec4SIMD col_type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">typedef</span> fvec4SIMD row_type;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">typedef</span> fmat4x4SIMD type;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> fmat4x4SIMD transpose_type;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">typedef</span> tmat4x4<float, defaultp> pure_type;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_row_type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_col_type;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> tmat4x4<float, defaultp> pure_transpose_type;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL length_t <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> fvec4SIMD Data[4];</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Constructors</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> fmat4x4SIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> explicit fmat4x4SIMD(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">float</span> const & x0, <span class="keywordtype">float</span> const & y0, <span class="keywordtype">float</span> const & z0, <span class="keywordtype">float</span> const & w0,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">float</span> const & x1, <span class="keywordtype">float</span> const & y1, <span class="keywordtype">float</span> const & z1, <span class="keywordtype">float</span> const & w1,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">float</span> const & x2, <span class="keywordtype">float</span> const & y2, <span class="keywordtype">float</span> const & z2, <span class="keywordtype">float</span> const & w2,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">float</span> const & x3, <span class="keywordtype">float</span> const & y3, <span class="keywordtype">float</span> const & z3, <span class="keywordtype">float</span> const & w3);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> fvec4SIMD const & v0,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> fvec4SIMD const & v1,</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> fvec4SIMD const & v2,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> fvec4SIMD const & v3);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a> const & m);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> explicit fmat4x4SIMD(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> __m128 const in[4]);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Conversions</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">//template <typename U></span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">//explicit tmat4x4(tmat4x4<U> const & m);</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">//explicit tmat4x4(tmat2x2<T> const & x);</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//explicit tmat4x4(tmat3x3<T> const & x);</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">//explicit tmat4x4(tmat2x3<T> const & x);</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">//explicit tmat4x4(tmat3x2<T> const & x);</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">//explicit tmat4x4(tmat2x4<T> const & x);</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">//explicit tmat4x4(tmat4x2<T> const & x);</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">//explicit tmat4x4(tmat3x4<T> const & x);</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">//explicit tmat4x4(tmat4x3<T> const & x);</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// Accesses</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> fvec4SIMD & operator[](length_t i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> fvec4SIMD const & operator[](length_t i) const;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Unary updatable operators</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> fmat4x4SIMD & operator= (fmat4x4SIMD const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> fmat4x4SIMD & operator+= (<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> fmat4x4SIMD & operator-= (<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> fmat4x4SIMD & operator*= (<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> fmat4x4SIMD & operator/= (<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> fmat4x4SIMD & operator++ ();</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> fmat4x4SIMD & operator-- ();</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Binary operators</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> fmat4x4SIMD operator+ (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> fmat4x4SIMD operator+ (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> fmat4x4SIMD operator- (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> fmat4x4SIMD operator- (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> fmat4x4SIMD operator* (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> fmat4x4SIMD operator* (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> fmat4x4SIMD operator/ (fmat4x4SIMD const & m, <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> fmat4x4SIMD operator/ (<span class="keywordtype">float</span> const & s, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// Unary constant operators</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> fmat4x4SIMD const operator- (fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, <span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, <span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> typedef detail::fmat4x4SIMD simdMat4;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> detail::fmat4x4SIMD const & x);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> detail::fmat4x4SIMD <a class="code" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a>(</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> detail::fmat4x4SIMD const & x,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> detail::fmat4x4SIMD const & y);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> detail::fmat4x4SIMD <a class="code" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a>(</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> detail::fvec4SIMD const & c,</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> detail::fvec4SIMD const & r);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> detail::fmat4x4SIMD transpose(</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> detail::fmat4x4SIMD const & x);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">float</span> <a class="code" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a>(</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> detail::fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> detail::fmat4x4SIMD <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> detail::fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="preprocessor">#include "simd_mat4.inl"</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00155_html_ga26ea77c574802bc6fc193c40478718d2"><div class="ttname"><a href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">glm::determinant</a></div><div class="ttdeci">GLM_FUNC_DECL T determinant(matType< T, P > const &m)</div><div class="ttdoc">Returns the transposed matrix of x. </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00155_html_gae9f513dc8e4f3ceb993669321b6d0f09"><div class="ttname"><a href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">glm::outerProduct</a></div><div class="ttdeci">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type outerProduct(vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</div><div class="ttdoc">Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...</d [...]
-<div class="ttc" id="a00155_html_ga4a54992e4741188ee624b21e3ba91814"><div class="ttname"><a href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">glm::matrixCompMult</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > matrixCompMult(matType< T, P > const &x, matType< T, P > const &y)</div><div class="ttdoc">Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...</div></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../gtx/transform.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_transform2 extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00233.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a>(</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> tmat3x3<T, P> <span class="keyword">const</span> & m, </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> T y);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00233.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a>(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> tmat3x3<T, P> <span class="keyword">const</span> & m, </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> T x);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00233.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a>(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">const</span> tmat4x4<T, P> & m,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> T y, </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> T z);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00233.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a>(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> T x, </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> T z);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00233.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a>(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> T x, </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> T y);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">//template <typename T> GLM_FUNC_QUALIFIER tmat4x4<T, P> shear(const tmat4x4<T, P> & m, shearPlane, planePoint, angle)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// Reflect functions seem to don't work</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">//template <typename T> tmat3x3<T, P> reflect2D(const tmat3x3<T, P> & m, const tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment">//template <typename T> tmat4x4<T, P> reflect3D(const tmat4x4<T, P> & m, const tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00233.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a>(</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> tmat3x3<T, P> & m, </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> tvec3<T, P>& normal);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00233.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a>(</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">const</span> tvec3<T, P>& normal);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">template</span> <<span class="keyword">typename</span> valType, precision P> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat4x4<valType, P> <a class="code" href="a00233.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> valType <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> valType bias);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <<span class="keyword">typename</span> valType, precision P> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat4x4<valType, P> <a class="code" href="a00233.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> tmat4x4<valType, P> <span class="keyword">const</span> & m, </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> valType <a class="code" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> valType bias);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#include "transform2.inl"</span></div>
+<div class="ttc" id="a00233_html_gac1a1139e2980021422d1fc1c42dc74f2"><div class="ttname"><a href="a00233.html#gac1a1139e2980021422d1fc1c42dc74f2">glm::scaleBias</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< valType, P > scaleBias(tmat4x4< valType, P > const &m, valType scale, valType bias)</div><div class="ttdoc">Build a scale bias matrix. </div></div>
+<div class="ttc" id="a00233_html_gacfce1085167a8bfb71a55ea14d22752f"><div class="ttname"><a href="a00233.html#gacfce1085167a8bfb71a55ea14d22752f">glm::proj2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > proj2D(const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
+<div class="ttc" id="a00233_html_gafab0418f2503ec2133cb2de828cc482a"><div class="ttname"><a href="a00233.html#gafab0418f2503ec2133cb2de828cc482a">glm::proj3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > proj3D(const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00233_html_ga21ade82859e09a5cdaf4a01fbf8dc61b"><div class="ttname"><a href="a00233.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">glm::shearY2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > shearY2D(tmat3x3< T, P > const &m, T x)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
+<div class="ttc" id="a00233_html_ga31253ea18fdcdfde08c134c8b67688f7"><div class="ttname"><a href="a00233.html#ga31253ea18fdcdfde08c134c8b67688f7">glm::shearY3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearY3D(const tmat4x4< T, P > &m, T x, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
+<div class="ttc" id="a00233_html_ga10f6c62d8f827c4cacedb71fd05e4ba2"><div class="ttname"><a href="a00233.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">glm::shearX2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > shearX2D(tmat3x3< T, P > const &m, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis. </div></div>
+<div class="ttc" id="a00233_html_gae06ce274e4754f925d5d68440e89452e"><div class="ttname"><a href="a00233.html#gae06ce274e4754f925d5d68440e89452e">glm::shearX3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearX3D(const tmat4x4< T, P > &m, T y, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </div></div>
+<div class="ttc" id="a00169_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="ttc" id="a00233_html_ga5558ac64a7144685bf2eb4483a0e2f51"><div class="ttname"><a href="a00233.html#ga5558ac64a7144685bf2eb4483a0e2f51">glm::shearZ3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearZ3D(const tmat4x4< T, P > &m, T x, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on Z axis. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00107.html b/doc/api/a00107.html
index 9ba880d..3850469 100644
--- a/doc/api/a00107.html
+++ b/doc/api/a00107.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_quat.hpp File Reference</title>
+<title>0.9.8: trigonometric.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,28 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_quat.hpp File Reference</div> </div>
+<div class="title">trigonometric.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00107_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00231.html">GLM_GTX_simd_quat</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-04-22 / 2014-11-25 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00107_source.html">simd_quat.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00107_source.html">trigonometric.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00107_source.html b/doc/api/a00107_source.html
index d3d7ff9..4176ff0 100644
--- a/doc/api/a00107_source.html
+++ b/doc/api/a00107_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_quat.hpp Source File</title>
+<title>0.9.8: trigonometric.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,240 +41,19 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_quat.hpp</div> </div>
+<div class="title">trigonometric.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00107.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/fast_trigonometry.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(GLM_ARCH & GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># include "../gtx/simd_mat4.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_quat extension included")</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Warning silencer for nameless struct/union.</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># pragma warning(push)</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_ALIGNED_STRUCT(16) fquatSIMD</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> fquatSIMD type;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">typedef</span> tquat<bool, defaultp> bool_type;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> tquat<float, defaultp> pure_type;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> __m128 Data;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> };</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> __m128 Data;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// Implicit basic constructors</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> fquatSIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> fquatSIMD(fquatSIMD const & q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> fquatSIMD(__m128 const & Data);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Explicit basic constructors</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> explicit fquatSIMD(</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> ctor);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> explicit fquatSIMD(</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">float</span> const & w,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">float</span> const & x,</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">float</span> const & y,</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">float</span> const & z);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> explicit fquatSIMD(</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> quat const & v);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> explicit fquatSIMD(</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & <a class="code" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a>);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Unary arithmetic operators</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> fquatSIMD& operator= (fquatSIMD const & q) GLM_DEFAULT;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> fquatSIMD& operator*=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> fquatSIMD& operator/=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Arithmetic operators</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> detail::fquatSIMD operator- (</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> detail::fquatSIMD operator+ (</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> detail::fquatSIMD const & q,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> detail::fquatSIMD const & p);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> detail::fquatSIMD const & q,</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> detail::fquatSIMD const & p);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> detail::fvec4SIMD operator* (</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> detail::fquatSIMD const & q,</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> detail::fvec4SIMD const & v);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> detail::fvec4SIMD operator* (</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> detail::fvec4SIMD const & v,</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> detail::fquatSIMD const & q,</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">float</span> s);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> detail::fquatSIMD operator* (</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">float</span> s,</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> detail::fquatSIMD operator/ (</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> detail::fquatSIMD const & q,</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">float</span> s);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> typedef <a class="code" href="a00146.html">glm</a>::detail::fquatSIMD simdQuat;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> quat <a class="code" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a>(</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> detail::fquatSIMD const & x);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> detail::fmat4x4SIMD const & m);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> template <typename T, precision P></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> tmat4x4<T, P> const & m);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> template <typename T, precision P></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> detail::fquatSIMD quatSIMD_cast(</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> tmat3x3<T, P> const & m);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> detail::fmat4x4SIMD mat4SIMD_cast(</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> <a class="code" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a>(</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> detail::fquatSIMD const & x);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> detail::fquatSIMD <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> detail::fquatSIMD const & x);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a>(</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> detail::fquatSIMD const & q1,</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> detail::fquatSIMD const & q2);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> detail::fquatSIMD <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> detail::fquatSIMD const & x,</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> detail::fquatSIMD const & y,</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keywordtype">float</span> const & a);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> detail::fquatSIMD <a class="code" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a>(</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> detail::fquatSIMD const & x,</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> detail::fquatSIMD const & y,</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keywordtype">float</span> const & a);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> detail::fquatSIMD <a class="code" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a>(</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> detail::fquatSIMD const & x,</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> detail::fquatSIMD const & y,</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keywordtype">float</span> const & a);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> detail::fquatSIMD <a class="code" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a>(</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> detail::fquatSIMD const & x,</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> detail::fquatSIMD const & y,</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keywordtype">float</span> const & a);</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> detail::fquatSIMD fastSlerp(</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> detail::fquatSIMD const & x,</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> detail::fquatSIMD const & y,</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keywordtype">float</span> const & a);</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> detail::fquatSIMD <a class="code" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a>(</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> detail::fquatSIMD <a class="code" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a>(</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> detail::fquatSIMD const & q);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> detail::fquatSIMD angleAxisSIMD(</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keywordtype">float</span> const & <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>,</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & <a class="code" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a>);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> detail::fquatSIMD angleAxisSIMD(</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keywordtype">float</span> const & angle,</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keywordtype">float</span> const & x,</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keywordtype">float</span> const & y,</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keywordtype">float</span> const & z);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// TODO: Move this to somewhere more appropriate. Used with fastMix() and fastSlerp().</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"></span> __m128 <a class="code" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a>(__m128 x);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor">#include "simd_quat.inl"</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="preprocessor"># pragma warning(pop)</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00224_html_gac11bf550f17d1da14423595a27575084"><div class="ttname"><a href="a00224.html#gac11bf550f17d1da14423595a27575084">glm::fastMix</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > fastMix(tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</div><div class="ttdoc">Quaternion normalized linear interpolation. </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00177_html_gab1ace864fbf189ffa368950001808a3c"><div class="ttname"><a href="a00177.html#gab1ace864fbf189ffa368950001808a3c">glm::conjugate</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > conjugate(tquat< T, P > const &q)</div><div class="ttdoc">Returns the q conjugate. </div></div>
-<div class="ttc" id="a00177_html_ga14bb2ddf028c91542763eb6f2bba47ef"><div class="ttname"><a href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > mat4_cast(tquat< T, P > const &x)</div><div class="ttdoc">Converts a quaternion to a 4 * 4 matrix. </div></div>
-<div class="ttc" id="a00177_html_ga5692804fa4db9e762a1c19b607e54435"><div class="ttname"><a href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > lerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00177_html_ga0b3e87a13b2708154b72259e50789a19"><div class="ttname"><a href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">glm::axis</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > axis(tquat< T, P > const &x)</div><div class="ttdoc">Returns the q rotation axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gadb92ec1c1b0dd6b024176a73fbef3e64"><div class="ttname"><a href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">glm::eulerAngles</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > eulerAngles(tquat< T, P > const &x)</div><div class="ttdoc">Returns euler angles, yitch as x, yaw as y, roll as z. </div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00155_html_ga7635d3dbe5aa10ff73a0e6903bf6bea5"><div class="ttname"><a href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
-<div class="ttc" id="a00199_html_ga0aab3257bb3b628d10a1e0483e2c6915"><div class="ttname"><a href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">glm::fastSin</a></div><div class="ttdeci">GLM_FUNC_DECL T fastSin(T angle)</div><div class="ttdoc">Faster than the common sin function but less accurate. </div></div>
-<div class="ttc" id="a00177_html_ga950f8acff3e33bbda77895a3dcb7e5ce"><div class="ttname"><a href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > quat_cast(tmat3x3< T, P > const &x)</div><div class="ttdoc">Converts a 3 * 3 matrix to a quaternion. </div></div>
-<div class="ttc" id="a00177_html_ga22b438c7252f3fa5b773c9882471652a"><div class="ttname"><a href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">glm::slerp</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, P > slerp(tquat< T, P > const &x, tquat< T, P > const &y, T a)</div><div class="ttdoc">Spherical linear interpolation of two quaternions. </div></div>
-<div class="ttc" id="a00153_html_ga7dada304da2ba7dd3376ab4f178c3f6b"><div class="ttname"><a href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">glm::dot</a></div><div class="ttdeci">GLM_FUNC_DECL T dot(vecType< T, P > const &x, vecType< T, P > const &y)</div><div class="ttdoc">Returns the dot product of x and y, i.e., result = x * y. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00035.html">detail/func_trigonometric.hpp</a>"</span></div>
+<div class="ttc" id="a00035_html"><div class="ttname"><a href="a00035.html">func_trigonometric.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00108.html b/doc/api/a00108.html
index d2c80ba..cea3e32 100644
--- a/doc/api/a00108.html
+++ b/doc/api/a00108.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_vec4.hpp File Reference</title>
+<title>0.9.8: type_aligned.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,28 +41,195 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">simd_vec4.hpp File Reference</div> </div>
+<div class="title">gtc/type_aligned.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00108_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga780a35f764020f553a9601a3fcdcd059"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga780a35f764020f553a9601a3fcdcd059"></a>
+typedef aligned_highp_bvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a></td></tr>
+<tr class="separator:ga780a35f764020f553a9601a3fcdcd059"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae766b317c5afec852bfb3d74a3c54bc8"></a>
+typedef aligned_highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a></td></tr>
+<tr class="separator:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1964ba70d15915e5b710926decbb3cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae1964ba70d15915e5b710926decbb3cb"></a>
+typedef aligned_highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a></td></tr>
+<tr class="separator:gae1964ba70d15915e5b710926decbb3cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae164a1f7879f828bc35e50b79d786b05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae164a1f7879f828bc35e50b79d786b05"></a>
+typedef aligned_highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a></td></tr>
+<tr class="separator:gae164a1f7879f828bc35e50b79d786b05"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4974f46ae5a19415d91316960a53617a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4974f46ae5a19415d91316960a53617a"></a>
+typedef aligned_highp_dvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a></td></tr>
+<tr class="separator:ga4974f46ae5a19415d91316960a53617a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18d859f87122b2b3b2992ffe86dbebc0"></a>
+typedef aligned_highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a></td></tr>
+<tr class="separator:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa37869eea77d28419b2fb0ff70b69bf0"></a>
+typedef aligned_highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a></td></tr>
+<tr class="separator:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a9f0a4795ccc442fa9901845026f9f5"></a>
+typedef aligned_highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a></td></tr>
+<tr class="separator:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac5ffd9396890b64e707ba47c76435dfe"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a></td></tr>
+<tr class="separator:gac5ffd9396890b64e707ba47c76435dfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3adba191018d2de1dc2834a2ff5597d7"></a>
+typedef tvec3< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a></td></tr>
+<tr class="separator:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga903a73cf8ae1f4bc24583b81adf024dc"></a>
+typedef tvec4< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a></td></tr>
+<tr class="separator:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga186b90f0ba86724e080d237f3f5f9417"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a></td></tr>
+<tr class="separator:ga186b90f0ba86724e080d237f3f5f9417"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga54f6765716867706643bde03211d600f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a></td></tr>
+<tr class="separator:ga54f6765716867706643bde03211d600f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e5a90ed034e9e7414ff71e66a79139e"></a>
+typedef tvec4< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a></td></tr>
+<tr class="separator:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a></td></tr>
+<tr class="separator:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a></td></tr>
+<tr class="separator:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e3286a27b19f25801fb435b6d1225fb"></a>
+typedef tvec4< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a></td></tr>
+<tr class="separator:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7366a38dc888164e623fc10663e97670"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a></td></tr>
+<tr class="separator:ga7366a38dc888164e623fc10663e97670"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga967485a7e963365642ea17de62fe2a3f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a></td></tr>
+<tr class="separator:ga967485a7e963365642ea17de62fe2a3f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac56a4ce85b6233998139a7c1ac337440"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac56a4ce85b6233998139a7c1ac337440"></a>
+typedef tvec4< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a></td></tr>
+<tr class="separator:gac56a4ce85b6233998139a7c1ac337440"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea854184b9d574fc5e75b5709a4974e8"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a></td></tr>
+<tr class="separator:gaea854184b9d574fc5e75b5709a4974e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a></td></tr>
+<tr class="separator:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae2938d64c6a46f721681607c2ab3f884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2938d64c6a46f721681607c2ab3f884"></a>
+typedef tvec4< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a></td></tr>
+<tr class="separator:gae2938d64c6a46f721681607c2ab3f884"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76298aed82a439063c3d55980c84aa0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76298aed82a439063c3d55980c84aa0b"></a>
+typedef aligned_highp_ivec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a></td></tr>
+<tr class="separator:ga76298aed82a439063c3d55980c84aa0b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4f38fd2c86cee6940986197777b3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4f38fd2c86cee6940986197777b3ca4"></a>
+typedef aligned_highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a></td></tr>
+<tr class="separator:gae4f38fd2c86cee6940986197777b3ca4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga32794322d294e5ace7fed4a61896f270"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga32794322d294e5ace7fed4a61896f270"></a>
+typedef aligned_highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a></td></tr>
+<tr class="separator:ga32794322d294e5ace7fed4a61896f270"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f79eae5927c9033d84617e49f6f34e4"></a>
+typedef aligned_highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a></td></tr>
+<tr class="separator:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga524c702b82ae7ccaca896d374808c6d7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a></td></tr>
+<tr class="separator:ga524c702b82ae7ccaca896d374808c6d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga21fb6238997b4a21848411b16bc34e93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21fb6238997b4a21848411b16bc34e93"></a>
+typedef tvec3< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a></td></tr>
+<tr class="separator:ga21fb6238997b4a21848411b16bc34e93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0b5e3c64f8dbadfc42a2aca5f2da9692"></a>
+typedef tvec4< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a></td></tr>
+<tr class="separator:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a></td></tr>
+<tr class="separator:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a></td></tr>
+<tr class="separator:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab365ee7cfd19bab449daa8f7eb0ca71"></a>
+typedef tvec4< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a></td></tr>
+<tr class="separator:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad69bf7c406a3cec994307473cb3da032"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a></td></tr>
+<tr class="separator:gad69bf7c406a3cec994307473cb3da032"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a></td></tr>
+<tr class="separator:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad744848a2e4ddd2f041e6ec8d13600ae"></a>
+typedef tvec4< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a></td></tr>
+<tr class="separator:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a></td></tr>
+<tr class="separator:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga48c85299d98e8248f547a2c07ea609cf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a></td></tr>
+<tr class="separator:ga48c85299d98e8248f547a2c07ea609cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga40b0e05306f666f835ac97c963302ecb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga40b0e05306f666f835ac97c963302ecb"></a>
+typedef tvec4< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a></td></tr>
+<tr class="separator:ga40b0e05306f666f835ac97c963302ecb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a></td></tr>
+<tr class="separator:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae003f8f3071a8bc734a70c6d4978f968"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a></td></tr>
+<tr class="separator:gae003f8f3071a8bc734a70c6d4978f968"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga689f103781a795e919fddfa47d89170d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga689f103781a795e919fddfa47d89170d"></a>
+typedef tvec4< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a></td></tr>
+<tr class="separator:ga689f103781a795e919fddfa47d89170d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a></td></tr>
+<tr class="separator:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f78cd6d9c5827771e35921b4a92855a"></a>
+typedef tvec3< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a></td></tr>
+<tr class="separator:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cb80e2d4d351abeadac7b1676a91fd9"></a>
+typedef tvec4< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a></td></tr>
+<tr class="separator:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a></td></tr>
+<tr class="separator:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22efc7f84ab79eef640e00fc59d07478"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a></td></tr>
+<tr class="separator:ga22efc7f84ab79eef640e00fc59d07478"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad6f422f8871685ee467a575238e4ece4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6f422f8871685ee467a575238e4ece4"></a>
+typedef tvec4< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a></td></tr>
+<tr class="separator:gad6f422f8871685ee467a575238e4ece4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga389d12dcc8d57a444944a72646d17efa"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a></td></tr>
+<tr class="separator:ga389d12dcc8d57a444944a72646d17efa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a></td></tr>
+<tr class="separator:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae640082d0ffdb52fb2d658916c5815db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae640082d0ffdb52fb2d658916c5815db"></a>
+typedef tvec4< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a></td></tr>
+<tr class="separator:gae640082d0ffdb52fb2d658916c5815db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a></td></tr>
+<tr class="separator:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a></td></tr>
+<tr class="separator:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga717763c480dcf3ecf66121426287d08a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga717763c480dcf3ecf66121426287d08a"></a>
+typedef tvec4< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a></td></tr>
+<tr class="separator:ga717763c480dcf3ecf66121426287d08a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a></td></tr>
+<tr class="separator:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a></td></tr>
+<tr class="separator:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4ab68a8c32574bff14e62f95185d295"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ab68a8c32574bff14e62f95185d295"></a>
+typedef tvec4< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a></td></tr>
+<tr class="separator:gae4ab68a8c32574bff14e62f95185d295"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ff8ed402c93d280ff0597c1c5e7c548"></a>
+typedef aligned_highp_uvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a></td></tr>
+<tr class="separator:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga074137e3be58528d67041c223d49f398"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga074137e3be58528d67041c223d49f398"></a>
+typedef aligned_highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a></td></tr>
+<tr class="separator:ga074137e3be58528d67041c223d49f398"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a8d9c3046f89d854eb758adfa0811c0"></a>
+typedef aligned_highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a></td></tr>
+<tr class="separator:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabf842c45eea186170c267a328e3f3b7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf842c45eea186170c267a328e3f3b7d"></a>
+typedef aligned_highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a></td></tr>
+<tr class="separator:gabf842c45eea186170c267a328e3f3b7d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga05e6d4c908965d04191c2070a8d0a65e"></a>
+typedef aligned_highp_vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a></td></tr>
+<tr class="separator:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0682462f8096a226773e20fac993cde5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0682462f8096a226773e20fac993cde5"></a>
+typedef aligned_highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a></td></tr>
+<tr class="separator:ga0682462f8096a226773e20fac993cde5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf643b66664e0cd3c48759ae66c2bd0"></a>
+typedef aligned_highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a></td></tr>
+<tr class="separator:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga85d89e83cb8137e1be1446de8c3b643a"></a>
+typedef aligned_highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a></td></tr>
+<tr class="separator:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00232.html">GLM_GTX_simd_vec4</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-07 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00176.html">GLM_GTC_type_aligned</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00108_source.html">simd_vec4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00108_source.html b/doc/api/a00108_source.html
index fc7a0af..45a6c09 100644
--- a/doc/api/a00108_source.html
+++ b/doc/api/a00108_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: simd_vec4.hpp Source File</title>
+<title>0.9.8: type_aligned.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,360 +41,337 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">simd_vec4.hpp</div> </div>
+<div class="title">gtc/type_aligned.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00108.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(GLM_ARCH & GLM_ARCH_SSE2)</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># include "../detail/intrinsic_common.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># include "../detail/intrinsic_geometric.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># include "../detail/intrinsic_integer.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_simd_vec4 extension included")</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Warning silencer for nameless struct/union.</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma warning(push)</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">enum</span> comp</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> X = 0,</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> R = 0,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> S = 0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> Y = 1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> G = 1,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T = 1,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> Z = 2,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> B = 2,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> P = 2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> W = 3,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> A = 3,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> Q = 3</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_ALIGNED_STRUCT(16) fvec4SIMD</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> value_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typedef</span> std::size_t size_type;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">typedef</span> fvec4SIMD type;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">typedef</span> tvec4<float, defaultp> pure_type;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">typedef</span> tvec4<bool, highp> bool_type;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = defaultp;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#if !GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"># error "GLM: Aligned types are not supported on this platform"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_type_aligned extension included")</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec1;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// -- *vec1 --</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typedef</span> tvec1<float, aligned_highp> aligned_highp_vec1;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> tvec1<float, aligned_mediump> aligned_mediump_vec1;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> tvec1<float, aligned_lowp> aligned_lowp_vec1;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> tvec1<double, aligned_highp> aligned_highp_dvec1;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> tvec1<double, aligned_mediump> aligned_mediump_dvec1;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> tvec1<double, aligned_lowp> aligned_lowp_dvec1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> tvec1<int, aligned_highp> aligned_highp_ivec1;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> tvec1<int, aligned_mediump> aligned_mediump_ivec1;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> tvec1<int, aligned_lowp> aligned_lowp_ivec1;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tvec1<uint, aligned_highp> aligned_highp_uvec1;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec1<uint, aligned_mediump> aligned_mediump_uvec1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec1<uint, aligned_lowp> aligned_lowp_uvec1;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tvec1<bool, aligned_highp> aligned_highp_bvec1;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tvec1<bool, aligned_mediump> aligned_mediump_bvec1;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tvec1<bool, aligned_lowp> aligned_lowp_bvec1;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> tvec1<float, packed_highp> packed_highp_vec1;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> tvec1<float, packed_mediump> packed_mediump_vec1;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">typedef</span> tvec1<float, packed_lowp> packed_lowp_vec1;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> tvec1<double, packed_highp> packed_highp_dvec1;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> tvec1<double, packed_mediump> packed_mediump_dvec1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tvec1<double, packed_lowp> packed_lowp_dvec1;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> tvec1<int, packed_highp> packed_highp_ivec1;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">typedef</span> tvec1<int, packed_mediump> packed_mediump_ivec1;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">typedef</span> tvec1<int, packed_lowp> packed_lowp_ivec1;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> tvec1<uint, packed_highp> packed_highp_uvec1;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">typedef</span> tvec1<uint, packed_mediump> packed_mediump_uvec1;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> tvec1<uint, packed_lowp> packed_lowp_uvec1;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> tvec1<bool, packed_highp> packed_highp_bvec1;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> tvec1<bool, packed_mediump> packed_mediump_bvec1;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> tvec1<bool, packed_lowp> packed_lowp_bvec1;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// -- *vec2 --</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8"> 73</a></span> <span class="keyword">typedef</span> tvec2<float, aligned_highp> <a class="code" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d"> 77</a></span> <span class="keyword">typedef</span> tvec2<float, aligned_mediump> <a class="code" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367"> 81</a></span> <span class="keyword">typedef</span> tvec2<float, aligned_lowp> <a class="code" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417"> 85</a></span> <span class="keyword">typedef</span> tvec2<double, aligned_highp> <a class="code" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd"> 89</a></span> <span class="keyword">typedef</span> tvec2<double, aligned_mediump> <a class="code" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f"> 93</a></span> <span class="keyword">typedef</span> tvec2<double, aligned_lowp> <a class="code" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026"> 97</a></span> <span class="keyword">typedef</span> tvec2<int, aligned_highp> <a class="code" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa"> 101</a></span> <span class="keyword">typedef</span> tvec2<int, aligned_mediump> <a class="code" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00176.html#gad69bf7c406a3cec994307473cb3da032"> 105</a></span> <span class="keyword">typedef</span> tvec2<int, aligned_lowp> <a class="code" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#ifdef GLM_SIMD_ENABLE_XYZW_UNION</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> __m128 Data;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">struct </span>{<span class="keywordtype">float</span> x, y, z, w;};</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> __m128 Data;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Implicit basic constructors</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> fvec4SIMD() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> fvec4SIMD(fvec4SIMD const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> fvec4SIMD(__m128 const & Data);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// Explicit basic constructors</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00176.html#ga7366a38dc888164e623fc10663e97670"> 109</a></span> <span class="keyword">typedef</span> tvec2<uint, aligned_highp> <a class="code" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b"> 113</a></span> <span class="keyword">typedef</span> tvec2<uint, aligned_mediump> <a class="code" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a"> 117</a></span> <span class="keyword">typedef</span> tvec2<uint, aligned_lowp> <a class="code" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe"> 121</a></span> <span class="keyword">typedef</span> tvec2<bool, aligned_highp> <a class="code" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e"> 125</a></span> <span class="keyword">typedef</span> tvec2<bool, aligned_mediump> <a class="code" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> explicit fvec4SIMD(</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> ctor);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> explicit fvec4SIMD(</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> explicit fvec4SIMD(</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">float</span> const & x,</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">float</span> const & y,</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">float</span> const & z,</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keywordtype">float</span> const & w);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> explicit fvec4SIMD(</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & v);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> fvec4SIMD(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v, <span class="keywordtype">float</span> const & s1, <span class="keywordtype">float</span> const & s2);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> fvec4SIMD(<span class="keywordtype">float</span> const & s1, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v, <span class="keywordtype">float</span> const & s2);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> fvec4SIMD(<span class="keywordtype">float</span> const & s1, <span class="keywordtype">float</span> const & s2, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> fvec4SIMD(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & v, <span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> fvec4SIMD(<span class="keywordtype">float</span> const & s, <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & v);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> fvec4SIMD(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v1, <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & v2);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">//fvec4SIMD(ivec4SIMD const & v);</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// Unary arithmetic operators</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7"> 129</a></span> <span class="keyword">typedef</span> tvec2<bool, aligned_lowp> <a class="code" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// -- *vec3 --</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36"> 135</a></span> <span class="keyword">typedef</span> tvec3<float, aligned_highp> <a class="code" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82"> 139</a></span> <span class="keyword">typedef</span> tvec3<float, aligned_mediump> <a class="code" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968"> 143</a></span> <span class="keyword">typedef</span> tvec3<float, aligned_lowp> <a class="code" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="a00176.html#ga54f6765716867706643bde03211d600f"> 147</a></span> <span class="keyword">typedef</span> tvec3<double, aligned_highp> <a class="code" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478"> 151</a></span> <span class="keyword">typedef</span> tvec3<double, aligned_mediump> <a class="code" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> fvec4SIMD& operator= (fvec4SIMD const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> fvec4SIMD& operator+=(fvec4SIMD const & v);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> fvec4SIMD& operator-=(fvec4SIMD const & v);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> fvec4SIMD& operator*=(fvec4SIMD const & v);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> fvec4SIMD& operator/=(fvec4SIMD const & v);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> fvec4SIMD& operator+=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> fvec4SIMD& operator-=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> fvec4SIMD& operator*=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> fvec4SIMD& operator/=(<span class="keywordtype">float</span> const & s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> fvec4SIMD& operator++();</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> fvec4SIMD& operator--();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// Swizzle operators</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> template <comp X, comp Y, comp Z, comp W></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> fvec4SIMD& swizzle();</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> template <comp X, comp Y, comp Z, comp W></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> template <comp X, comp Y, comp Z></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> template <comp X, comp Y></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> template <comp X></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> fvec4SIMD swizzle() const;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> };</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> typedef <a class="code" href="a00146.html">glm</a>::detail::fvec4SIMD simdVec4;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> vec4_cast(</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a>(detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> detail::fvec4SIMD <a class="code" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee"> 155</a></span> <span class="keyword">typedef</span> tvec3<double, aligned_lowp> <a class="code" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a>;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e"> 159</a></span> <span class="keyword">typedef</span> tvec3<int, aligned_highp> <a class="code" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26"> 163</a></span> <span class="keyword">typedef</span> tvec3<int, aligned_mediump> <a class="code" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b"> 167</a></span> <span class="keyword">typedef</span> tvec3<int, aligned_lowp> <a class="code" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f"> 171</a></span> <span class="keyword">typedef</span> tvec3<uint, aligned_highp> <a class="code" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df"> 175</a></span> <span class="keyword">typedef</span> tvec3<uint, aligned_mediump> <a class="code" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf"> 179</a></span> <span class="keyword">typedef</span> tvec3<uint, aligned_lowp> <a class="code" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7"> 182</a></span> <span class="keyword">typedef</span> tvec3<bool, aligned_highp> <a class="code" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a"> 185</a></span> <span class="keyword">typedef</span> tvec3<bool, aligned_mediump> <a class="code" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93"> 188</a></span> <span class="keyword">typedef</span> tvec3<bool, aligned_lowp> <a class="code" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// -- *vec4 --</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884"> 193</a></span> <span class="keyword">typedef</span> tvec4<float, aligned_highp> <a class="code" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295"> 196</a></span> <span class="keyword">typedef</span> tvec4<float, aligned_mediump> <a class="code" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00176.html#ga689f103781a795e919fddfa47d89170d"> 199</a></span> <span class="keyword">typedef</span> tvec4<float, aligned_lowp> <a class="code" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a>(detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e"> 202</a></span> <span class="keyword">typedef</span> tvec4<double, aligned_highp> <a class="code" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00176.html#gad6f422f8871685ee467a575238e4ece4"> 205</a></span> <span class="keyword">typedef</span> tvec4<double, aligned_mediump> <a class="code" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71"> 208</a></span> <span class="keyword">typedef</span> tvec4<double, aligned_lowp> <a class="code" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> detail::fvec4SIMD <a class="code" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb"> 211</a></span> <span class="keyword">typedef</span> tvec4<int, aligned_highp> <a class="code" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db"> 214</a></span> <span class="keyword">typedef</span> tvec4<int, aligned_mediump> <a class="code" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae"> 217</a></span> <span class="keyword">typedef</span> tvec4<int, aligned_lowp> <a class="code" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a>(detail::fvec4SIMD const & x);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440"> 220</a></span> <span class="keyword">typedef</span> tvec4<uint, aligned_highp> <a class="code" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="a00176.html#ga717763c480dcf3ecf66121426287d08a"> 223</a></span> <span class="keyword">typedef</span> tvec4<uint, aligned_mediump> <a class="code" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb"> 226</a></span> <span class="keyword">typedef</span> tvec4<uint, aligned_lowp> <a class="code" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc"> 229</a></span> <span class="keyword">typedef</span> tvec4<bool, aligned_highp> <a class="code" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a>;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a>(detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a>(</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keywordtype">float</span> const & y);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment">//detail::fvec4SIMD modf(</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// detail::fvec4SIMD const & x,</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment">// detail::fvec4SIMD & i);</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a>(</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">float</span> const & y);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a>(</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keywordtype">float</span> const & y);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9"> 232</a></span> <span class="keyword">typedef</span> tvec4<bool, aligned_mediump> <a class="code" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692"> 235</a></span> <span class="keyword">typedef</span> tvec4<bool, aligned_lowp> <a class="code" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a>;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// -- default --</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">typedef</span> aligned_lowp_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">typedef</span> aligned_lowp_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">typedef</span> aligned_lowp_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">typedef</span> aligned_lowp_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">typedef</span> aligned_mediump_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">typedef</span> aligned_mediump_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">typedef</span> aligned_mediump_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">typedef</span> aligned_mediump_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">typedef</span> aligned_highp_vec1 <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="a00176.html#ga0682462f8096a226773e20fac993cde5"> 254</a></span> <span class="keyword">typedef</span> aligned_highp_vec2 <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0"> 257</a></span> <span class="keyword">typedef</span> aligned_highp_vec3 <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a"> 260</a></span> <span class="keyword">typedef</span> aligned_highp_vec4 <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">typedef</span> aligned_lowp_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">typedef</span> aligned_lowp_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">typedef</span> aligned_lowp_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">typedef</span> aligned_lowp_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">typedef</span> aligned_mediump_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">typedef</span> aligned_mediump_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">typedef</span> aligned_mediump_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">typedef</span> aligned_mediump_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">typedef</span> aligned_highp_dvec1 <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0"> 278</a></span> <span class="keyword">typedef</span> aligned_highp_dvec2 <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0"> 281</a></span> <span class="keyword">typedef</span> aligned_highp_dvec3 <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> detail::fvec4SIMD const & minVal,</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> detail::fvec4SIMD const & maxVal);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a>(</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keywordtype">float</span> const & minVal,</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keywordtype">float</span> const & maxVal);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> detail::fvec4SIMD <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a>(</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> detail::fvec4SIMD const & y,</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> detail::fvec4SIMD const & a);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> detail::fvec4SIMD const & edge,</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a>(</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keywordtype">float</span> const & edge,</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> detail::fvec4SIMD const & edge0,</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> detail::fvec4SIMD const & edge1,</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> detail::fvec4SIMD <a class="code" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keywordtype">float</span> const & edge0,</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="keywordtype">float</span> const & edge1,</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="comment">//bvec4 isnan(detail::fvec4SIMD const & x);</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">//bvec4 isinf(detail::fvec4SIMD const & x);</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment">//detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="comment">//detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> detail::fvec4SIMD <a class="code" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> detail::fvec4SIMD const & a,</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> detail::fvec4SIMD const & b,</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> detail::fvec4SIMD const & c);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment">//detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="comment">//detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>(</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keywordtype">float</span> <a class="code" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a>(</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keywordtype">float</span> niceLength(</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> detail::fvec4SIMD length4(</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> detail::fvec4SIMD fastLength4(</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> detail::fvec4SIMD niceLength4(</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keywordtype">float</span> <a class="code" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a>(</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> detail::fvec4SIMD const & p0,</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> detail::fvec4SIMD const & p1);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> detail::fvec4SIMD distance4(</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> detail::fvec4SIMD const & p0,</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> detail::fvec4SIMD const & p1);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keywordtype">float</span> simdDot(</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> detail::fvec4SIMD dot4(</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> detail::fvec4SIMD <a class="code" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a>(</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> detail::fvec4SIMD const & x,</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> detail::fvec4SIMD const & y);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> detail::fvec4SIMD <a class="code" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a>(</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> detail::fvec4SIMD <a class="code" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a>(</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> detail::fvec4SIMD simdFaceforward(</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> detail::fvec4SIMD const & N,</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> detail::fvec4SIMD const & I,</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> detail::fvec4SIMD const & Nref);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> detail::fvec4SIMD <a class="code" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a>(</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> detail::fvec4SIMD const & I,</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> detail::fvec4SIMD const & N);</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> detail::fvec4SIMD <a class="code" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a>(</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> detail::fvec4SIMD const & I,</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> detail::fvec4SIMD const & N,</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keywordtype">float</span> const & eta);</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> detail::fvec4SIMD <a class="code" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a>(</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> detail::fvec4SIMD niceSqrt(</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> detail::fvec4SIMD <a class="code" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a>(</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> detail::fvec4SIMD <a class="code" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a>(</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> detail::fvec4SIMD fastInversesqrt(</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> detail::fvec4SIMD const & x);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="preprocessor">#include "simd_vec4.inl"</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor">#if (GLM_COMPILER & GLM_COMPILER_VC)</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="preprocessor"># pragma warning(pop)</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="preprocessor">#endif//(GLM_ARCH != GLM_ARCH_PURE)</span></div>
-<div class="ttc" id="a00153_html_ga7ca317dde0d7e94d920153554d4a02a8"><div class="ttname"><a href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">glm::distance</a></div><div class="ttdeci">GLM_FUNC_DECL T distance(vecType< T, P > const &p0, vecType< T, P > const &p1)</div><div class="ttdoc">Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </div></div>
-<div class="ttc" id="a00151_html_ga93bce26c7d80d30a62f5c508f8498a6c"><div class="ttname"><a href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
-<div class="ttc" id="a00151_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
-<div class="ttc" id="a00151_html_ga568b822b78f045f77c3325e165b44d5d"><div class="ttname"><a href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > floor(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga8ba89e40e55ae5cdf228548f9b7639c7"><div class="ttname"><a href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL genType fract(genType x)</div><div class="ttdoc">Return x - floor(x). </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00198_html_ga3b02c1d6e0c754144e2f1e110bf9f16c"><div class="ttname"><a href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">glm::fastNormalize</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastNormalize(genType const &x)</div><div class="ttdoc">Faster than the common normalize function but less accurate. </div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00151_html_ga9189b2bec45ff301923ea8f8dd157fb8"><div class="ttname"><a href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > ceil(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
-<div class="ttc" id="a00151_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
-<div class="ttc" id="a00151_html_ga634cdbf8b37edca03f2248450570fd54"><div class="ttname"><a href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > trunc(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
-<div class="ttc" id="a00153_html_gab7e7cdf4403931a5f7b74560ad64159b"><div class="ttname"><a href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">glm::refract</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > refract(vecType< T, P > const &I, vecType< T, P > const &N, T eta)</div><div class="ttdoc">For the incident vector I and surface normal N, and the ratio of indices of refraction eta...</div></div>
-<div class="ttc" id="a00198_html_gafe697d6287719538346bbdf8b1367c59"><div class="ttname"><a href="a00198.html#gafe697d6287719538346bbdf8b1367c59">glm::fastLength</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastLength(genType x)</div><div class="ttdoc">Faster than the common length function but less accurate. </div></div>
-<div class="ttc" id="a00151_html_gada0165544c0618d634c8056a88082ce9"><div class="ttname"><a href="a00151.html#gada0165544c0618d634c8056a88082ce9">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > round(vecType< T, P > const &x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
-<div class="ttc" id="a00153_html_gada9451ec170a36fe53552812b9c03a68"><div class="ttname"><a href="a00153.html#gada9451ec170a36fe53552812b9c03a68">glm::normalize</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > normalize(vecType< T, P > const &x)</div><div class="ttdoc">Returns a vector in the same direction as x but with length of 1. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00151_html_gac3446b4138e0b8757561c07cd19f084d"><div class="ttname"><a href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sign(vecType< T, P > const &x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
-<div class="ttc" id="a00153_html_gab63646fc36b81cf69d3ce123a72f76f2"><div class="ttname"><a href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">glm::reflect</a></div><div class="ttdeci">GLM_FUNC_DECL genType reflect(genType const &I, genType const &N)</div><div class="ttdoc">For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...</div></div>
-<div class="ttc" id="a00198_html_ga6c460e9414a50b2fc455c8f64c86cdc9"><div class="ttname"><a href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">glm::fastSqrt</a></div><div class="ttdeci">GLM_FUNC_DECL genType fastSqrt(genType x)</div><div class="ttdoc">Faster than the common sqrt function but less accurate. </div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00151_html_ga98caa7f95a94c86a86ebce893a45326c"><div class="ttname"><a href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL genType max(genType x, genType y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00151_html_ga693d77696ff36572a0da79efec965acd"><div class="ttname"><a href="a00151.html#ga693d77696ff36572a0da79efec965acd">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL genType abs(genType x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
-<div class="ttc" id="a00151_html_ga2c2bde1cec025b7ddff83c74a1113719"><div class="ttname"><a href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL genType min(genType x, genType y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
-<div class="ttc" id="a00152_html_ga599103d4fe4ef2234761ba8da7268627"><div class="ttname"><a href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">glm::inversesqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > inversesqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the reciprocal of the positive square root of v. </div></div>
-<div class="ttc" id="a00151_html_gadccbaffe46f369cf1a96b2aef92cbfdd"><div class="ttname"><a href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > mix(vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
-<div class="ttc" id="a00151_html_ga015a1261ff23e12650211aa872863cce"><div class="ttname"><a href="a00151.html#ga015a1261ff23e12650211aa872863cce">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL genType step(genType edge, genType x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. </div></div>
-<div class="ttc" id="a00151_html_ga12201563ef902e3b07e0d1d7656efdb1"><div class="ttname"><a href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL genType mod(genType x, genType y)</div><div class="ttdoc">Modulus. </div></div>
-<div class="ttc" id="a00152_html_gae7ac2e44c14d4e8004098d0bfba6e2b8"><div class="ttname"><a href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">glm::sqrt</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< T, P > sqrt(vecType< T, P > const &v)</div><div class="ttdoc">Returns the positive square root of v. </div></div>
-<div class="ttc" id="a00153_html_gafe2cae8cb26fd44be62aee97369d0af8"><div class="ttname"><a href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">glm::cross</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, P > cross(tvec3< T, P > const &x, tvec3< T, P > const &y)</div><div class="ttdoc">Returns the cross product of x and y. </div></div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5"> 284</a></span> <span class="keyword">typedef</span> aligned_highp_dvec4 <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">typedef</span> aligned_lowp_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">typedef</span> aligned_lowp_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">typedef</span> aligned_lowp_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">typedef</span> aligned_lowp_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">typedef</span> aligned_mediump_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">typedef</span> aligned_mediump_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">typedef</span> aligned_mediump_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">typedef</span> aligned_mediump_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">typedef</span> aligned_highp_ivec1 <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4"> 302</a></span> <span class="keyword">typedef</span> aligned_highp_ivec2 <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="a00176.html#ga32794322d294e5ace7fed4a61896f270"> 305</a></span> <span class="keyword">typedef</span> aligned_highp_ivec3 <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4"> 308</a></span> <span class="keyword">typedef</span> aligned_highp_ivec4 <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// -- Unsigned integer definition --</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">typedef</span> aligned_lowp_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keyword">typedef</span> aligned_lowp_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">typedef</span> aligned_lowp_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">typedef</span> aligned_lowp_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keyword">typedef</span> aligned_mediump_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">typedef</span> aligned_mediump_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">typedef</span> aligned_mediump_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">typedef</span> aligned_mediump_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">typedef</span> aligned_highp_uvec1 <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="a00176.html#ga074137e3be58528d67041c223d49f398"> 328</a></span> <span class="keyword">typedef</span> aligned_highp_uvec2 <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0"> 331</a></span> <span class="keyword">typedef</span> aligned_highp_uvec3 <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d"> 334</a></span> <span class="keyword">typedef</span> aligned_highp_uvec4 <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">typedef</span> aligned_lowp_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keyword">typedef</span> aligned_lowp_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">typedef</span> aligned_lowp_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">typedef</span> aligned_lowp_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">typedef</span> aligned_mediump_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">typedef</span> aligned_mediump_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="keyword">typedef</span> aligned_mediump_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">typedef</span> aligned_mediump_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">typedef</span> aligned_highp_bvec1 <a class="code" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8"> 352</a></span> <span class="keyword">typedef</span> aligned_highp_bvec2 <a class="code" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb"> 355</a></span> <span class="keyword">typedef</span> aligned_highp_bvec3 <a class="code" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05"> 358</a></span> <span class="keyword">typedef</span> aligned_highp_bvec4 <a class="code" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00176_html_gae766b317c5afec852bfb3d74a3c54bc8"><div class="ttname"><a href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">glm::aligned_bvec2</a></div><div class="ttdeci">aligned_highp_bvec2 aligned_bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00352">gtc/type_aligned.hpp:352</a></div></div>
+<div class="ttc" id="a00176_html_gaba56f2b76d320379cdf7c37e0d4b03bd"><div class="ttname"><a href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">glm::aligned_mediump_dvec2</a></div><div class="ttdeci">tvec2< double, aligned_mediump > aligned_mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00089">gtc/type_aligned.hpp:89</a></div></div>
+<div class="ttc" id="a00176_html_ga903a73cf8ae1f4bc24583b81adf024dc"><div class="ttname"><a href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">glm::aligned_highp_bvec4</a></div><div class="ttdeci">tvec4< bool, aligned_highp > aligned_highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00229">gtc/type_aligned.hpp:229</a></div></div>
+<div class="ttc" id="a00176_html_ga967485a7e963365642ea17de62fe2a3f"><div class="ttname"><a href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">glm::aligned_highp_uvec3</a></div><div class="ttdeci">tvec3< uint, aligned_highp > aligned_highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00171">gtc/type_aligned.hpp:171</a></div></div>
+<div class="ttc" id="a00176_html_ga8a9f0a4795ccc442fa9901845026f9f5"><div class="ttname"><a href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">glm::aligned_dvec4</a></div><div class="ttdeci">aligned_highp_dvec4 aligned_dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00284">gtc/type_aligned.hpp:284</a></div></div>
+<div class="ttc" id="a00176_html_ga4974f46ae5a19415d91316960a53617a"><div class="ttname"><a href="a00176.html#ga4974f46ae5a19415d91316960a53617a">glm::aligned_dvec1</a></div><div class="ttdeci">aligned_highp_dvec1 aligned_dvec1</div><div class="ttdoc">1 component vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00275">gtc/type_aligned.hpp:275</a></div></div>
+<div class="ttc" id="a00176_html_gaa8615b4ce4fdf176c631b34d2d31d81b"><div class="ttname"><a href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">glm::aligned_lowp_ivec3</a></div><div class="ttdeci">tvec3< int, aligned_lowp > aligned_lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00167">gtc/type_aligned.hpp:167</a></div></div>
+<div class="ttc" id="a00176_html_ga22efc7f84ab79eef640e00fc59d07478"><div class="ttname"><a href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">glm::aligned_mediump_dvec3</a></div><div class="ttdeci">tvec3< double, aligned_mediump > aligned_mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00151">gtc/type_aligned.hpp:151</a></div></div>
+<div class="ttc" id="a00176_html_gae003f8f3071a8bc734a70c6d4978f968"><div class="ttname"><a href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">glm::aligned_lowp_vec3</a></div><div class="ttdeci">tvec3< float, aligned_lowp > aligned_lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00143">gtc/type_aligned.hpp:143</a></div></div>
+<div class="ttc" id="a00176_html_ga524c702b82ae7ccaca896d374808c6d7"><div class="ttname"><a href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">glm::aligned_lowp_bvec2</a></div><div class="ttdeci">tvec2< bool, aligned_lowp > aligned_lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00129">gtc/type_aligned.hpp:129</a></div></div>
+<div class="ttc" id="a00176_html_gaee29d3a28f634b03f0a20e79e600f5df"><div class="ttname"><a href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">glm::aligned_mediump_uvec3</a></div><div class="ttdeci">tvec3< uint, aligned_mediump > aligned_mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00175">gtc/type_aligned.hpp:175</a></div></div>
+<div class="ttc" id="a00176_html_ga689f103781a795e919fddfa47d89170d"><div class="ttname"><a href="a00176.html#ga689f103781a795e919fddfa47d89170d">glm::aligned_lowp_vec4</a></div><div class="ttdeci">tvec4< float, aligned_lowp > aligned_lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00199">gtc/type_aligned.hpp:199</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00176_html_gad6f422f8871685ee467a575238e4ece4"><div class="ttname"><a href="a00176.html#gad6f422f8871685ee467a575238e4ece4">glm::aligned_mediump_dvec4</a></div><div class="ttdeci">tvec4< double, aligned_mediump > aligned_mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00205">gtc/type_aligned.hpp:205</a></div></div>
+<div class="ttc" id="a00176_html_ga88c56fde67f035d80b2d0d6d568af30b"><div class="ttname"><a href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">glm::aligned_mediump_uvec2</a></div><div class="ttdeci">tvec2< uint, aligned_mediump > aligned_mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00113">gtc/type_aligned.hpp:113</a></div></div>
+<div class="ttc" id="a00176_html_ga389d12dcc8d57a444944a72646d17efa"><div class="ttname"><a href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">glm::aligned_mediump_ivec2</a></div><div class="ttdeci">tvec2< int, aligned_mediump > aligned_mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00101">gtc/type_aligned.hpp:101</a></div></div>
+<div class="ttc" id="a00176_html_ga717763c480dcf3ecf66121426287d08a"><div class="ttname"><a href="a00176.html#ga717763c480dcf3ecf66121426287d08a">glm::aligned_mediump_uvec4</a></div><div class="ttdeci">tvec4< uint, aligned_mediump > aligned_mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00223">gtc/type_aligned.hpp:223</a></div></div>
+<div class="ttc" id="a00176_html_gae164a1f7879f828bc35e50b79d786b05"><div class="ttname"><a href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">glm::aligned_bvec4</a></div><div class="ttdeci">aligned_highp_bvec4 aligned_bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00358">gtc/type_aligned.hpp:358</a></div></div>
+<div class="ttc" id="a00176_html_gac5ffd9396890b64e707ba47c76435dfe"><div class="ttname"><a href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">glm::aligned_highp_bvec2</a></div><div class="ttdeci">tvec2< bool, aligned_highp > aligned_highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00121">gtc/type_aligned.hpp:121</a></div></div>
+<div class="ttc" id="a00176_html_ga76298aed82a439063c3d55980c84aa0b"><div class="ttname"><a href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">glm::aligned_ivec1</a></div><div class="ttdeci">aligned_highp_ivec1 aligned_ivec1</div><div class="ttdoc">1 component vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00299">gtc/type_aligned.hpp:299</a></div></div>
+<div class="ttc" id="a00176_html_ga48c85299d98e8248f547a2c07ea609cf"><div class="ttname"><a href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">glm::aligned_lowp_uvec3</a></div><div class="ttdeci">tvec3< uint, aligned_lowp > aligned_lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00179">gtc/type_aligned.hpp:179</a></div></div>
+<div class="ttc" id="a00176_html_ga0b5e3c64f8dbadfc42a2aca5f2da9692"><div class="ttname"><a href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">glm::aligned_lowp_bvec4</a></div><div class="ttdeci">tvec4< bool, aligned_lowp > aligned_lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00235">gtc/type_aligned.hpp:235</a></div></div>
+<div class="ttc" id="a00176_html_gaa37869eea77d28419b2fb0ff70b69bf0"><div class="ttname"><a href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">glm::aligned_dvec3</a></div><div class="ttdeci">aligned_highp_dvec3 aligned_dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00281">gtc/type_aligned.hpp:281</a></div></div>
+<div class="ttc" id="a00176_html_ga0682462f8096a226773e20fac993cde5"><div class="ttname"><a href="a00176.html#ga0682462f8096a226773e20fac993cde5">glm::aligned_vec2</a></div><div class="ttdeci">aligned_highp_vec2 aligned_vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00254">gtc/type_aligned.hpp:254</a></div></div>
+<div class="ttc" id="a00176_html_gae1964ba70d15915e5b710926decbb3cb"><div class="ttname"><a href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">glm::aligned_bvec3</a></div><div class="ttdeci">aligned_highp_bvec3 aligned_bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00355">gtc/type_aligned.hpp:355</a></div></div>
+<div class="ttc" id="a00176_html_gab70c189b4691715b3f7f0abb35c65b2f"><div class="ttname"><a href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">glm::aligned_lowp_dvec2</a></div><div class="ttdeci">tvec2< double, aligned_lowp > aligned_lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00093">gtc/type_aligned.hpp:93</a></div></div>
+<div class="ttc" id="a00176_html_ga54f6765716867706643bde03211d600f"><div class="ttname"><a href="a00176.html#ga54f6765716867706643bde03211d600f">glm::aligned_highp_dvec3</a></div><div class="ttdeci">tvec3< double, aligned_highp > aligned_highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00147">gtc/type_aligned.hpp:147</a></div></div>
+<div class="ttc" id="a00176_html_gabf842c45eea186170c267a328e3f3b7d"><div class="ttname"><a href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">glm::aligned_uvec4</a></div><div class="ttdeci">aligned_highp_uvec4 aligned_uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00334">gtc/type_aligned.hpp:334</a></div></div>
+<div class="ttc" id="a00176_html_gae234a3a1c6288fa5e2d4c78c5e39002e"><div class="ttname"><a href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">glm::aligned_highp_ivec3</a></div><div class="ttdeci">tvec3< int, aligned_highp > aligned_highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00159">gtc/type_aligned.hpp:159</a></div></div>
+<div class="ttc" id="a00176_html_gac56a4ce85b6233998139a7c1ac337440"><div class="ttname"><a href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">glm::aligned_highp_uvec4</a></div><div class="ttdeci">tvec4< uint, aligned_highp > aligned_highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00220">gtc/type_aligned.hpp:220</a></div></div>
+<div class="ttc" id="a00176_html_ga15355ffc7ec7931b81ba76736b65e51a"><div class="ttname"><a href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">glm::aligned_lowp_uvec2</a></div><div class="ttdeci">tvec2< uint, aligned_lowp > aligned_lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00117">gtc/type_aligned.hpp:117</a></div></div>
+<div class="ttc" id="a00176_html_ga5b16f7e81555819bf0f80f4db4bc0b26"><div class="ttname"><a href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">glm::aligned_mediump_ivec3</a></div><div class="ttdeci">tvec3< int, aligned_mediump > aligned_mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00163">gtc/type_aligned.hpp:163</a></div></div>
+<div class="ttc" id="a00176_html_ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><div class="ttname"><a href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">glm::aligned_lowp_vec2</a></div><div class="ttdeci">tvec2< float, aligned_lowp > aligned_lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00081">gtc/type_aligned.hpp:81</a></div></div>
+<div class="ttc" id="a00176_html_ga2a8d9c3046f89d854eb758adfa0811c0"><div class="ttname"><a href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">glm::aligned_uvec3</a></div><div class="ttdeci">aligned_highp_uvec3 aligned_uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00331">gtc/type_aligned.hpp:331</a></div></div>
+<div class="ttc" id="a00176_html_gae2938d64c6a46f721681607c2ab3f884"><div class="ttname"><a href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">glm::aligned_highp_vec4</a></div><div class="ttdeci">tvec4< float, aligned_highp > aligned_highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00193">gtc/type_aligned.hpp:193</a></div></div>
+<div class="ttc" id="a00176_html_gae4ab68a8c32574bff14e62f95185d295"><div class="ttname"><a href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">glm::aligned_mediump_vec4</a></div><div class="ttdeci">tvec4< float, aligned_mediump > aligned_mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00196">gtc/type_aligned.hpp:196</a></div></div>
+<div class="ttc" id="a00176_html_ga7366a38dc888164e623fc10663e97670"><div class="ttname"><a href="a00176.html#ga7366a38dc888164e623fc10663e97670">glm::aligned_highp_uvec2</a></div><div class="ttdeci">tvec2< uint, aligned_highp > aligned_highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00109">gtc/type_aligned.hpp:109</a></div></div>
+<div class="ttc" id="a00176_html_ga21fb6238997b4a21848411b16bc34e93"><div class="ttname"><a href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">glm::aligned_lowp_bvec3</a></div><div class="ttdeci">tvec3< bool, aligned_lowp > aligned_lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00188">gtc/type_aligned.hpp:188</a></div></div>
+<div class="ttc" id="a00176_html_ga780a35f764020f553a9601a3fcdcd059"><div class="ttname"><a href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">glm::aligned_bvec1</a></div><div class="ttdeci">aligned_highp_bvec1 aligned_bvec1</div><div class="ttdoc">1 component vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00349">gtc/type_aligned.hpp:349</a></div></div>
+<div class="ttc" id="a00176_html_ga55fb20d4e73a65c834b5861fc6cf4c36"><div class="ttname"><a href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">glm::aligned_highp_vec3</a></div><div class="ttdeci">tvec3< float, aligned_highp > aligned_highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00135">gtc/type_aligned.hpp:135</a></div></div>
+<div class="ttc" id="a00176_html_ga8e5a90ed034e9e7414ff71e66a79139e"><div class="ttname"><a href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">glm::aligned_highp_dvec4</a></div><div class="ttdeci">tvec4< double, aligned_highp > aligned_highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00202">gtc/type_aligned.hpp:202</a></div></div>
+<div class="ttc" id="a00176_html_ga1ff8ed402c93d280ff0597c1c5e7c548"><div class="ttname"><a href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">glm::aligned_uvec1</a></div><div class="ttdeci">aligned_highp_uvec1 aligned_uvec1</div><div class="ttdoc">1 component vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00325">gtc/type_aligned.hpp:325</a></div></div>
+<div class="ttc" id="a00176_html_gaea854184b9d574fc5e75b5709a4974e8"><div class="ttname"><a href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">glm::aligned_highp_vec2</a></div><div class="ttdeci">tvec2< float, aligned_highp > aligned_highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00073">gtc/type_aligned.hpp:73</a></div></div>
+<div class="ttc" id="a00176_html_gaed5d4dd2755cc5141a9533488edd9e82"><div class="ttname"><a href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">glm::aligned_mediump_vec3</a></div><div class="ttdeci">tvec3< float, aligned_mediump > aligned_mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00139">gtc/type_aligned.hpp:139</a></div></div>
+<div class="ttc" id="a00176_html_ga85d89e83cb8137e1be1446de8c3b643a"><div class="ttname"><a href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">glm::aligned_vec4</a></div><div class="ttdeci">aligned_highp_vec4 aligned_vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00260">gtc/type_aligned.hpp:260</a></div></div>
+<div class="ttc" id="a00176_html_ga4f78cd6d9c5827771e35921b4a92855a"><div class="ttname"><a href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">glm::aligned_mediump_bvec3</a></div><div class="ttdeci">tvec3< bool, aligned_mediump > aligned_mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00185">gtc/type_aligned.hpp:185</a></div></div>
+<div class="ttc" id="a00176_html_ga2cb80e2d4d351abeadac7b1676a91fd9"><div class="ttname"><a href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">glm::aligned_mediump_bvec4</a></div><div class="ttdeci">tvec4< bool, aligned_mediump > aligned_mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00232">gtc/type_aligned.hpp:232</a></div></div>
+<div class="ttc" id="a00176_html_ga57549b1281d99ba1825b1ef0dae6227d"><div class="ttname"><a href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">glm::aligned_mediump_vec2</a></div><div class="ttdeci">tvec2< float, aligned_mediump > aligned_mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00077">gtc/type_aligned.hpp:77</a></div></div>
+<div class="ttc" id="a00176_html_ga7f79eae5927c9033d84617e49f6f34e4"><div class="ttname"><a href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">glm::aligned_ivec4</a></div><div class="ttdeci">aligned_highp_ivec4 aligned_ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00308">gtc/type_aligned.hpp:308</a></div></div>
+<div class="ttc" id="a00176_html_ga77d37d7c80c7faa2eecb3eba7677750e"><div class="ttname"><a href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">glm::aligned_mediump_bvec2</a></div><div class="ttdeci">tvec2< bool, aligned_mediump > aligned_mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00125">gtc/type_aligned.hpp:125</a></div></div>
+<div class="ttc" id="a00176_html_gabeec3d5ec99c196f4c0eb03b58d486ee"><div class="ttname"><a href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">glm::aligned_lowp_dvec3</a></div><div class="ttdeci">tvec3< double, aligned_lowp > aligned_lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00155">gtc/type_aligned.hpp:155</a></div></div>
+<div class="ttc" id="a00176_html_ga40b0e05306f666f835ac97c963302ecb"><div class="ttname"><a href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">glm::aligned_lowp_uvec4</a></div><div class="ttdeci">tvec4< uint, aligned_lowp > aligned_lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00226">gtc/type_aligned.hpp:226</a></div></div>
+<div class="ttc" id="a00176_html_gab6ddd9d1421eb610ddeb32705fed7026"><div class="ttname"><a href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">glm::aligned_highp_ivec2</a></div><div class="ttdeci">tvec2< int, aligned_highp > aligned_highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00097">gtc/type_aligned.hpp:97</a></div></div>
+<div class="ttc" id="a00176_html_ga18d859f87122b2b3b2992ffe86dbebc0"><div class="ttname"><a href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">glm::aligned_dvec2</a></div><div class="ttdeci">aligned_highp_dvec2 aligned_dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00278">gtc/type_aligned.hpp:278</a></div></div>
+<div class="ttc" id="a00176_html_ga074137e3be58528d67041c223d49f398"><div class="ttname"><a href="a00176.html#ga074137e3be58528d67041c223d49f398">glm::aligned_uvec2</a></div><div class="ttdeci">aligned_highp_uvec2 aligned_uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00328">gtc/type_aligned.hpp:328</a></div></div>
+<div class="ttc" id="a00176_html_gad744848a2e4ddd2f041e6ec8d13600ae"><div class="ttname"><a href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">glm::aligned_lowp_ivec4</a></div><div class="ttdeci">tvec4< int, aligned_lowp > aligned_lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00217">gtc/type_aligned.hpp:217</a></div></div>
+<div class="ttc" id="a00176_html_gad69bf7c406a3cec994307473cb3da032"><div class="ttname"><a href="a00176.html#gad69bf7c406a3cec994307473cb3da032">glm::aligned_lowp_ivec2</a></div><div class="ttdeci">tvec2< int, aligned_lowp > aligned_lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00105">gtc/type_aligned.hpp:105</a></div></div>
+<div class="ttc" id="a00176_html_ga05e6d4c908965d04191c2070a8d0a65e"><div class="ttname"><a href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">glm::aligned_vec1</a></div><div class="ttdeci">aligned_highp_vec1 aligned_vec1</div><div class="ttdoc">1 component vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00251">gtc/type_aligned.hpp:251</a></div></div>
+<div class="ttc" id="a00176_html_gaab365ee7cfd19bab449daa8f7eb0ca71"><div class="ttname"><a href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">glm::aligned_lowp_dvec4</a></div><div class="ttdeci">tvec4< double, aligned_lowp > aligned_lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00208">gtc/type_aligned.hpp:208</a></div></div>
+<div class="ttc" id="a00176_html_gae640082d0ffdb52fb2d658916c5815db"><div class="ttname"><a href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">glm::aligned_mediump_ivec4</a></div><div class="ttdeci">tvec4< int, aligned_mediump > aligned_mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00214">gtc/type_aligned.hpp:214</a></div></div>
+<div class="ttc" id="a00176_html_ga3adba191018d2de1dc2834a2ff5597d7"><div class="ttname"><a href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">glm::aligned_highp_bvec3</a></div><div class="ttdeci">tvec3< bool, aligned_highp > aligned_highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00182">gtc/type_aligned.hpp:182</a></div></div>
+<div class="ttc" id="a00176_html_gae4f38fd2c86cee6940986197777b3ca4"><div class="ttname"><a href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">glm::aligned_ivec2</a></div><div class="ttdeci">aligned_highp_ivec2 aligned_ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00302">gtc/type_aligned.hpp:302</a></div></div>
+<div class="ttc" id="a00176_html_ga1e3286a27b19f25801fb435b6d1225fb"><div class="ttname"><a href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">glm::aligned_highp_ivec4</a></div><div class="ttdeci">tvec4< int, aligned_highp > aligned_highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00211">gtc/type_aligned.hpp:211</a></div></div>
+<div class="ttc" id="a00176_html_ga32794322d294e5ace7fed4a61896f270"><div class="ttname"><a href="a00176.html#ga32794322d294e5ace7fed4a61896f270">glm::aligned_ivec3</a></div><div class="ttdeci">aligned_highp_ivec3 aligned_ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00305">gtc/type_aligned.hpp:305</a></div></div>
+<div class="ttc" id="a00176_html_ga186b90f0ba86724e080d237f3f5f9417"><div class="ttname"><a href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">glm::aligned_highp_dvec2</a></div><div class="ttdeci">tvec2< double, aligned_highp > aligned_highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00085">gtc/type_aligned.hpp:85</a></div></div>
+<div class="ttc" id="a00176_html_ga7cf643b66664e0cd3c48759ae66c2bd0"><div class="ttname"><a href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">glm::aligned_vec3</a></div><div class="ttdeci">aligned_highp_vec3 aligned_vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00257">gtc/type_aligned.hpp:257</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00109.html b/doc/api/a00109.html
index c8c9a66..91e30c4 100644
--- a/doc/api/a00109.html
+++ b/doc/api/a00109.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: spline.hpp File Reference</title>
+<title>0.9.8: type_aligned.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -48,7 +48,7 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">spline.hpp File Reference</div> </div>
+<div class="title">gtx/type_aligned.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,28 +56,432 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
-<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
-<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</td></tr>
-<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
+<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
+<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
+<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
+<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
+<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
+<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
+<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
+<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
+<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
+<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
+<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
+<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
+<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
+<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
+<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
+<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
+<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
+<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
+<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
+<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
+<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
+<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
+<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
+<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
+<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
+<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
+<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
+<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
+<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
+<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
+<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
+<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
+<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
+<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
+<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
+<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
+<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
+<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
+<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
+<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
+<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
+<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
+<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
+<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
+<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
+<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
+<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
+<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
+<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
+<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
+<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
+<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
+<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
+<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
+<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
+<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
+<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
+<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
+<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
+<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
+<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
+<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
+<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
+<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
+<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
+<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
+<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
+<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
+<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
+<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
+<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
+<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
+<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
+<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
+<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
+<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
+<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
+<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
+<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
+<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
+<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
+<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
+<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
+<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
+<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
+<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
+<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
+<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
+<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
+<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
+<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
+<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
+<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
+<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
+<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
+<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
+<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
+<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
+<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
+<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
+<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
+<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
+<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
+<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
+<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
+<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
+<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
+<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
+<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
+<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
+<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
+<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
+<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
+<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
+<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
+<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
+<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
+<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
+<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
+<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
+<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
+<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
+<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
+<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
+<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
+<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
+<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
+<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
+<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
+<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
+<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
+<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
+<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
+<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
+<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
+<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
+<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
+<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
+<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
+<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
+<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
+<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
+<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
+<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
+<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
+<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
+<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
+<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
+<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
+<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
+<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
+<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
+<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
+<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
+<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
+<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
+<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
+<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
+<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
+<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
+<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
+<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
+<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
+<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
+<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
+<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
+<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
+<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
+<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
+<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
+<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
+<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
+<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
+<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
+<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
+<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
+<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
+<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
+<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
+<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
+<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
+<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
+<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
+<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
+<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
+<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
+<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
+<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
+<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
+<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
+<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
+<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
+<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
+<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
+<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
+<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
+<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
+<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
+<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
+<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
+<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
+<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
+<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
+<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
+<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
+<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
+<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
+<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
+<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00233.html">GLM_GTX_spline</a></p>
-<dl class="section date"><dt>Date</dt><dd>2007-01-25 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00234.html">GLM_GTX_type_aligned</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00109_source.html">spline.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00109_source.html">gtx/type_aligned.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00109_source.html b/doc/api/a00109_source.html
index f5019e6..c9862ae 100644
--- a/doc/api/a00109_source.html
+++ b/doc/api/a00109_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: spline.hpp Source File</title>
+<title>0.9.8: type_aligned.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,54 +46,718 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">spline.hpp</div> </div>
+<div class="title">gtx/type_aligned.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00109.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../gtx/optimum_pow.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_spline extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL genType <a class="code" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a>(</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> genType <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> genType <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> genType <span class="keyword">const</span> & v3, </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> genType <span class="keyword">const</span> & v4, </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL genType <a class="code" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> genType <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> genType <span class="keyword">const</span> & t1, </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> genType <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> genType <span class="keyword">const</span> & t2, </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL genType <a class="code" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a>(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> genType <span class="keyword">const</span> & v1, </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> genType <span class="keyword">const</span> & v2, </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> genType <span class="keyword">const</span> & v3, </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> genType <span class="keyword">const</span> & v4, </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "spline.inl"</span></div>
-<div class="ttc" id="a00233_html_ga6b867eb52e2fc933d2e0bf26aabc9a70"><div class="ttname"><a href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">glm::cubic</a></div><div class="ttdeci">GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a cubic curve. </div></div>
-<div class="ttc" id="a00233_html_ga8119c04f8210fd0d292757565cd6918d"><div class="ttname"><a href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">glm::catmullRom</a></div><div class="ttdeci">GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a catmull rom curve. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00233_html_gaa69e143f6374d32f934a8edeaa50bac9"><div class="ttname"><a href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">glm::hermite</a></div><div class="ttdeci">GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</div><div class="ttdoc">Return a point from a hermite curve. </div></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_type_aligned extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Signed int vector types </span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>, aligned_lowp_int8, 1);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>, aligned_lowp_int16, 2);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>, aligned_lowp_int32, 4);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>, aligned_lowp_int64, 8);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>, aligned_lowp_int8_t, 1);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>, aligned_lowp_int16_t, 2);</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>, aligned_lowp_int32_t, 4);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>, aligned_lowp_int64_t, 8);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>, aligned_lowp_i8, 1);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>, aligned_lowp_i16, 2);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>, aligned_lowp_i32, 4);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>, aligned_lowp_i64, 8);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>, aligned_mediump_int8, 1);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>, aligned_mediump_int16, 2);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>, aligned_mediump_int32, 4);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>, aligned_mediump_int64, 8);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>, aligned_mediump_int8_t, 1);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>, aligned_mediump_int16_t, 2);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>, aligned_mediump_int32_t, 4);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>, aligned_mediump_int64_t, 8);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>, aligned_mediump_i8, 1);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>, aligned_mediump_i16, 2);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>, aligned_mediump_i32, 4);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>, aligned_mediump_i64, 8);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>, aligned_highp_int8, 1);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>, aligned_highp_int16, 2);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>, aligned_highp_int32, 4);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>, aligned_highp_int64, 8);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>, aligned_highp_int8_t, 1);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>, aligned_highp_int16_t, 2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>, aligned_highp_int32_t, 4);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>, aligned_highp_int64_t, 8);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>, aligned_highp_i8, 1);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>, aligned_highp_i16, 2);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>, aligned_highp_i32, 4);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>, aligned_highp_i64, 8);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int8, aligned_int8, 1);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int16, aligned_int16, 2);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int32, aligned_int32, 4);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int64, aligned_int64, 8);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>, aligned_int8_t, 1);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>, aligned_int16_t, 2);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>, aligned_int32_t, 4);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>, aligned_int64_t, 8);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>, aligned_i8, 1);</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>, aligned_i16, 2);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>, aligned_i32, 4);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>, aligned_i64, 8);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(ivec1, <a class="code" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a>, 4);</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>, <a class="code" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a>, 8);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>, <a class="code" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a>, 16);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>, <a class="code" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a>, 16);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>, aligned_i8vec1, 1);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>, aligned_i8vec2, 2);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>, aligned_i8vec3, 4);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>, aligned_i8vec4, 4);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>, aligned_i16vec1, 2);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>, aligned_i16vec2, 4);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>, aligned_i16vec3, 8);</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>, aligned_i16vec4, 8);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>, aligned_i32vec1, 4);</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>, aligned_i32vec2, 8);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>, aligned_i32vec3, 16);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>, aligned_i32vec4, 16);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>, aligned_i64vec1, 8);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>, aligned_i64vec2, 16);</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>, aligned_i64vec3, 32);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>, aligned_i64vec4, 32);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>, aligned_lowp_uint8, 1);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>, aligned_lowp_uint16, 2);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>, aligned_lowp_uint32, 4);</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>, aligned_lowp_uint64, 8);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>, aligned_lowp_uint8_t, 1);</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>, aligned_lowp_uint16_t, 2);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>, aligned_lowp_uint32_t, 4);</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>, aligned_lowp_uint64_t, 8);</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>, aligned_lowp_u8, 1);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>, aligned_lowp_u16, 2);</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>, aligned_lowp_u32, 4);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>, aligned_lowp_u64, 8);</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>, aligned_mediump_uint8, 1);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>, aligned_mediump_uint16, 2);</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>, aligned_mediump_uint32, 4);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>, aligned_mediump_uint64, 8);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>, aligned_mediump_uint8_t, 1);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>, aligned_mediump_uint16_t, 2);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>, aligned_mediump_uint32_t, 4);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>, aligned_mediump_uint64_t, 8);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>, aligned_mediump_u8, 1);</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>, aligned_mediump_u16, 2);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>, aligned_mediump_u32, 4);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>, aligned_mediump_u64, 8);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>, aligned_highp_uint8, 1);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>, aligned_highp_uint16, 2);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>, aligned_highp_uint32, 4);</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>, aligned_highp_uint64, 8);</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>, aligned_highp_uint8_t, 1);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>, aligned_highp_uint16_t, 2);</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>, aligned_highp_uint32_t, 4);</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>, aligned_highp_uint64_t, 8);</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>, aligned_highp_u8, 1);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>, aligned_highp_u16, 2);</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>, aligned_highp_u32, 4);</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>, aligned_highp_u64, 8);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint8, aligned_uint8, 1);</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint16, aligned_uint16, 2);</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint32, aligned_uint32, 4);</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint64, aligned_uint64, 8);</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>, aligned_uint8_t, 1);</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>, aligned_uint16_t, 2);</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>, aligned_uint32_t, 4);</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>, aligned_uint64_t, 8);</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>, aligned_u8, 1);</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>, aligned_u16, 2);</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>, aligned_u32, 4);</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>, aligned_u64, 8);</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uvec1, <a class="code" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a>, 4);</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>, <a class="code" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a>, 8);</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>, <a class="code" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a>, 16);</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>, <a class="code" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a>, 16);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>, aligned_u8vec1, 1);</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>, aligned_u8vec2, 2);</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>, aligned_u8vec3, 4);</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>, aligned_u8vec4, 4);</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>, aligned_u16vec1, 2);</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>, aligned_u16vec2, 4);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>, aligned_u16vec3, 8);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>, aligned_u16vec4, 8);</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>, aligned_u32vec1, 4);</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>, aligned_u32vec2, 8);</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>, aligned_u32vec3, 16);</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>, aligned_u32vec4, 16);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>, aligned_u64vec1, 8);</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>, aligned_u64vec2, 16);</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>, aligned_u64vec3, 32);</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>, aligned_u64vec4, 32);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_float32, 4);</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_float64, 8);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>, aligned_float32_t, 4);</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>, aligned_float64_t, 8);</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_f32, 4);</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_f64, 8);</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(vec1, <a class="code" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a>, 4);</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>, <a class="code" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a>, 8);</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>, <a class="code" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a>, 16);</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>, <a class="code" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a>, 16);</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>, aligned_fvec1, 4);</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>, aligned_fvec2, 8);</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>, aligned_fvec3, 16);</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>, aligned_fvec4, 16);</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>, aligned_f32vec1, 4);</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>, aligned_f32vec2, 8);</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>, aligned_f32vec3, 16);</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>, aligned_f32vec4, 16);</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dvec1, <a class="code" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a>, 8);</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>, <a class="code" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a>, 16);</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>, <a class="code" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a>, 32);</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>, <a class="code" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a>, 32);</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>, aligned_f64vec1, 8);</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>, aligned_f64vec2, 16);</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>, aligned_f64vec3, 32);</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>, aligned_f64vec4, 32);</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment">//typedef detail::tmat1<f32> mat1;</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>, aligned_mat2, 16);</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>, aligned_mat3, 16);</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>, aligned_mat4, 16);</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> </div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="comment">//typedef detail::tmat1x1<f32> mat1;</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>, aligned_mat2x2, 16);</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>, aligned_mat3x3, 16);</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>, aligned_mat4x4, 16);</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="comment">//typedef detail::tmat1x1<f32> fmat1;</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2, 16);</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3, 16);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4, 16);</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> </div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="comment">//typedef f32 fmat1x1;</span></div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> </div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2x2, 16);</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>, aligned_fmat2x3, 16);</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>, aligned_fmat2x4, 16);</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>, aligned_fmat3x2, 16);</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3x3, 16);</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>, aligned_fmat3x4, 16);</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>, aligned_fmat4x2, 16);</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>, aligned_fmat4x3, 16);</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4x4, 16);</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> </div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="comment">//typedef detail::tmat1x1<f32, defaultp> f32mat1;</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2, 16);</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> </div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3, 16);</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4, 16);</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> </div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> </div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment">//typedef f32 f32mat1x1;</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> </div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2x2, 16);</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> </div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>, aligned_f32mat2x3, 16);</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> </div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>, aligned_f32mat2x4, 16);</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>, aligned_f32mat3x2, 16);</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3x3, 16);</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>, aligned_f32mat3x4, 16);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> </div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>, aligned_f32mat4x2, 16);</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>, aligned_f32mat4x3, 16);</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4x4, 16);</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="comment">//typedef detail::tmat1x1<f64, defaultp> f64mat1;</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2, 32);</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3, 32);</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4, 32);</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> </div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment">//typedef f64 f64mat1x1;</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> </div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2x2, 32);</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>, aligned_f64mat2x3, 32);</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> </div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>, aligned_f64mat2x4, 32);</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>, aligned_f64mat3x2, 32);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3x3, 32);</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>, aligned_f64mat3x4, 32);</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>, aligned_f64mat4x2, 32);</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>, aligned_f64mat4x3, 32);</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4x4, 32);</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(quat, aligned_quat, 16);</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(fquat, aligned_fquat, 16);</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dquat, aligned_dquat, 32);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>, aligned_f32quat, 16);</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> </div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <a class="code" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>, aligned_f64quat, 32);</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> </div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> </div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="preprocessor">#include "type_aligned.inl"</span></div>
+<div class="ttc" id="a00157_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00157.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00515">type_vec.hpp:515</a></div></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00157_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00359">type_mat.hpp:359</a></div></div>
+<div class="ttc" id="a00157_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00176_html_ga8a9f0a4795ccc442fa9901845026f9f5"><div class="ttname"><a href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">glm::aligned_dvec4</a></div><div class="ttdeci">aligned_highp_dvec4 aligned_dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00284">gtc/type_aligned.hpp:284</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00176_html_ga4974f46ae5a19415d91316960a53617a"><div class="ttname"><a href="a00176.html#ga4974f46ae5a19415d91316960a53617a">glm::aligned_dvec1</a></div><div class="ttdeci">aligned_highp_dvec1 aligned_dvec1</div><div class="ttdoc">1 component vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00275">gtc/type_aligned.hpp:275</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00157_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00510">type_vec.hpp:510</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00157_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00157.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00157_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00176_html_ga76298aed82a439063c3d55980c84aa0b"><div class="ttname"><a href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">glm::aligned_ivec1</a></div><div class="ttdeci">aligned_highp_ivec1 aligned_ivec1</div><div class="ttdoc">1 component vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00299">gtc/type_aligned.hpp:299</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00157_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00399">type_mat.hpp:399</a></div></div>
+<div class="ttc" id="a00176_html_gaa37869eea77d28419b2fb0ff70b69bf0"><div class="ttname"><a href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">glm::aligned_dvec3</a></div><div class="ttdeci">aligned_highp_dvec3 aligned_dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00281">gtc/type_aligned.hpp:281</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00176_html_ga0682462f8096a226773e20fac993cde5"><div class="ttname"><a href="a00176.html#ga0682462f8096a226773e20fac993cde5">glm::aligned_vec2</a></div><div class="ttdeci">aligned_highp_vec2 aligned_vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00254">gtc/type_aligned.hpp:254</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00157_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00542">type_vec.hpp:542</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00176_html_gabf842c45eea186170c267a328e3f3b7d"><div class="ttname"><a href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">glm::aligned_uvec4</a></div><div class="ttdeci">aligned_highp_uvec4 aligned_uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00334">gtc/type_aligned.hpp:334</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00157_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00547">type_vec.hpp:547</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00176_html_ga2a8d9c3046f89d854eb758adfa0811c0"><div class="ttname"><a href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">glm::aligned_uvec3</a></div><div class="ttdeci">aligned_highp_uvec3 aligned_uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00331">gtc/type_aligned.hpp:331</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00157_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00379">type_mat.hpp:379</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00157_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00488">type_vec.hpp:488</a></div></div>
+<div class="ttc" id="a00176_html_ga1ff8ed402c93d280ff0597c1c5e7c548"><div class="ttname"><a href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">glm::aligned_uvec1</a></div><div class="ttdeci">aligned_highp_uvec1 aligned_uvec1</div><div class="ttdoc">1 component vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00325">gtc/type_aligned.hpp:325</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00157_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00537">type_vec.hpp:537</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00176_html_ga85d89e83cb8137e1be1446de8c3b643a"><div class="ttname"><a href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">glm::aligned_vec4</a></div><div class="ttdeci">aligned_highp_vec4 aligned_vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00260">gtc/type_aligned.hpp:260</a></div></div>
+<div class="ttc" id="a00157_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00493">type_vec.hpp:493</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00176_html_ga7f79eae5927c9033d84617e49f6f34e4"><div class="ttname"><a href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">glm::aligned_ivec4</a></div><div class="ttdeci">aligned_highp_ivec4 aligned_ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00308">gtc/type_aligned.hpp:308</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00176_html_ga18d859f87122b2b3b2992ffe86dbebc0"><div class="ttname"><a href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">glm::aligned_dvec2</a></div><div class="ttdeci">aligned_highp_dvec2 aligned_dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00278">gtc/type_aligned.hpp:278</a></div></div>
+<div class="ttc" id="a00176_html_ga074137e3be58528d67041c223d49f398"><div class="ttname"><a href="a00176.html#ga074137e3be58528d67041c223d49f398">glm::aligned_uvec2</a></div><div class="ttdeci">aligned_highp_uvec2 aligned_uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00328">gtc/type_aligned.hpp:328</a></div></div>
+<div class="ttc" id="a00157_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00483">type_vec.hpp:483</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00176_html_ga05e6d4c908965d04191c2070a8d0a65e"><div class="ttname"><a href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">glm::aligned_vec1</a></div><div class="ttdeci">aligned_highp_vec1 aligned_vec1</div><div class="ttdoc">1 component vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00251">gtc/type_aligned.hpp:251</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00176_html_gae4f38fd2c86cee6940986197777b3ca4"><div class="ttname"><a href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">glm::aligned_ivec2</a></div><div class="ttdeci">aligned_highp_ivec2 aligned_ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00302">gtc/type_aligned.hpp:302</a></div></div>
+<div class="ttc" id="a00176_html_ga32794322d294e5ace7fed4a61896f270"><div class="ttname"><a href="a00176.html#ga32794322d294e5ace7fed4a61896f270">glm::aligned_ivec3</a></div><div class="ttdeci">aligned_highp_ivec3 aligned_ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00305">gtc/type_aligned.hpp:305</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00157_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00520">type_vec.hpp:520</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00234_html_ga95cc03b8b475993fa50e05e38e203303"><div class="ttname"><a href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">glm::GLM_ALIGNED_TYPEDEF</a></div><div class="ttdeci">GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)</div><div class="ttdoc">Double-precision floating-point aligned quaternion. </div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00176_html_ga7cf643b66664e0cd3c48759ae66c2bd0"><div class="ttname"><a href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">glm::aligned_vec3</a></div><div class="ttdeci">aligned_highp_vec3 aligned_vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00108_source.html#l00257">gtc/type_aligned.hpp:257</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00212">fwd.hpp:212</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00110.html b/doc/api/a00110.html
index 1feb618..8435092 100644
--- a/doc/api/a00110.html
+++ b/doc/api/a00110.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: std_based_type.hpp File Reference</title>
+<title>0.9.8: type_float.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">std_based_type.hpp File Reference</div> </div>
+<div class="title">type_float.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,37 +56,21 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
-<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
-<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
-<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
-<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
-<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
-<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
-<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
-<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
-<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
+<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
+<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
+<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
+<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
+<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00234.html">GLM_GTX_std_based_type</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-06-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00110_source.html b/doc/api/a00110_source.html
index cfa3a57..a7947d3 100644
--- a/doc/api/a00110_source.html
+++ b/doc/api/a00110_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: std_based_type.hpp Source File</title>
+<title>0.9.8: type_float.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,56 +41,67 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">std_based_type.hpp</div> </div>
+<div class="title">type_float.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00110.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <cstdlib></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_std_based_type extension included")</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a"> 59</a></span> <span class="keyword">typedef</span> tvec1<std::size_t, defaultp> <a class="code" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00234.html#gac0ef172641a1555684da0beb735c2a79"> 63</a></span> <span class="keyword">typedef</span> tvec2<std::size_t, defaultp> <a class="code" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> lowp_float_t;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> mediump_float_t;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> highp_float_t;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="a00158.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1"> 27</a></span> <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00158.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="a00158.html#ga280c68f537f4b1e03a00b23e62573b98"> 34</a></span> <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00158.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00158.html#ga6e95694987ba35af6f736638be39626a"> 41</a></span> <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00158.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> mediump_float float_t;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> highp_float float_t;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> mediump_float float_t;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> lowp_float float_t;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for floating-point types"</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1"> 55</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00177.html#gab5596d48586414c91ccb270962dc14d3"> 56</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// check type sizes</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a>) == 4, <span class="stringliteral">"float32 size isn't 4 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a>) == 8, <span class="stringliteral">"float64 size isn't 8 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6"> 67</a></span> <span class="keyword">typedef</span> tvec3<std::size_t, defaultp> <a class="code" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00234.html#gaf07a3f432e328c99d35637225c988121"> 71</a></span> <span class="keyword">typedef</span> tvec4<std::size_t, defaultp> <a class="code" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e"> 75</a></span> <span class="keyword">typedef</span> tvec1<std::size_t, defaultp> <a class="code" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e"> 79</a></span> <span class="keyword">typedef</span> tvec2<std::size_t, defaultp> <a class="code" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6"> 83</a></span> <span class="keyword">typedef</span> tvec3<std::size_t, defaultp> <a class="code" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00234.html#ga06862b7d59094244025d34407b2cb796"> 87</a></span> <span class="keyword">typedef</span> tvec4<std::size_t, defaultp> <a class="code" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "std_based_type.inl"</span></div>
-<div class="ttc" id="a00234_html_gaf07a3f432e328c99d35637225c988121"><div class="ttname"><a href="a00234.html#gaf07a3f432e328c99d35637225c988121">glm::size4</a></div><div class="ttdeci">tvec4< std::size_t, defaultp > size4</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00071">std_based_type.hpp:71</a></div></div>
-<div class="ttc" id="a00234_html_ga47c940f279a6b97ffc301eb4526a445a"><div class="ttname"><a href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">glm::size1</a></div><div class="ttdeci">tvec1< std::size_t, defaultp > size1</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00059">std_based_type.hpp:59</a></div></div>
-<div class="ttc" id="a00234_html_gaa7d72bbe318d27da9d30f27095e4c75e"><div class="ttname"><a href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">glm::size2_t</a></div><div class="ttdeci">tvec2< std::size_t, defaultp > size2_t</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00079">std_based_type.hpp:79</a></div></div>
-<div class="ttc" id="a00234_html_ga51b5e9650c459973134ffb4236ae88b6"><div class="ttname"><a href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">glm::size3</a></div><div class="ttdeci">tvec3< std::size_t, defaultp > size3</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00067">std_based_type.hpp:67</a></div></div>
-<div class="ttc" id="a00234_html_ga77d0b061efa41cb2ed2285d09294314e"><div class="ttname"><a href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">glm::size1_t</a></div><div class="ttdeci">tvec1< std::size_t, defaultp > size1_t</div><div class="ttdoc">Vector type based of one std::size_t component. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00075">std_based_type.hpp:75</a></div></div>
-<div class="ttc" id="a00234_html_gad364e6c302642e3bb89d756df5d0c8c6"><div class="ttname"><a href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">glm::size3_t</a></div><div class="ttdeci">tvec3< std::size_t, defaultp > size3_t</div><div class="ttdoc">Vector type based of three std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00083">std_based_type.hpp:83</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00234_html_ga06862b7d59094244025d34407b2cb796"><div class="ttname"><a href="a00234.html#ga06862b7d59094244025d34407b2cb796">glm::size4_t</a></div><div class="ttdeci">tvec4< std::size_t, defaultp > size4_t</div><div class="ttdoc">Vector type based of four std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00087">std_based_type.hpp:87</a></div></div>
-<div class="ttc" id="a00234_html_gac0ef172641a1555684da0beb735c2a79"><div class="ttname"><a href="a00234.html#gac0ef172641a1555684da0beb735c2a79">glm::size2</a></div><div class="ttdeci">tvec2< std::size_t, defaultp > size2</div><div class="ttdoc">Vector type based of two std::size_t components. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00063">std_based_type.hpp:63</a></div></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00055">type_float.hpp:55</a></div></div>
+<div class="ttc" id="a00177_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00177.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00056">type_float.hpp:56</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga358d69e11b1c0f6c7c469e0d39ab7fd1"><div class="ttname"><a href="a00158.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::lowp_float</a></div><div class="ttdeci">lowp_float_t lowp_float</div><div class="ttdoc">Low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00027">type_float.hpp:27</a></div></div>
+<div class="ttc" id="a00158_html_ga6e95694987ba35af6f736638be39626a"><div class="ttname"><a href="a00158.html#ga6e95694987ba35af6f736638be39626a">glm::highp_float</a></div><div class="ttdeci">highp_float_t highp_float</div><div class="ttdoc">High precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00041">type_float.hpp:41</a></div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga280c68f537f4b1e03a00b23e62573b98"><div class="ttname"><a href="a00158.html#ga280c68f537f4b1e03a00b23e62573b98">glm::mediump_float</a></div><div class="ttdeci">mediump_float_t mediump_float</div><div class="ttdoc">Medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00110_source.html#l00034">type_float.hpp:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00111.html b/doc/api/a00111.html
index 5ab613a..7f942ba 100644
--- a/doc/api/a00111.html
+++ b/doc/api/a00111.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: string_cast.hpp File Reference</title>
+<title>0.9.8: type_gentype.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,43 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">string_cast.hpp File Reference</div> </div>
+<div class="title">type_gentype.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00111_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template<template< typename, precision > class matType, typename T , precision P> </td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType< T, P > const &x)</td></tr>
-<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00235.html">GLM_GTX_string_cast</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-04-26 / 2014-05-10 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00203.html" title="Add support for integer for core functions. ">GLM_GTX_integer</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00111_source.html">string_cast.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00111_source.html">type_gentype.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00111_source.html b/doc/api/a00111_source.html
index fa8dab0..0ecc164 100644
--- a/doc/api/a00111_source.html
+++ b/doc/api/a00111_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: string_cast.hpp Source File</title>
+<title>0.9.8: type_gentype.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,41 +41,202 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">string_cast.hpp</div> </div>
+<div class="title">type_gentype.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00111.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">enum</span> profile</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> {</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> nice,</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> fast,</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> simd</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> };</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">typedef</span> std::size_t sizeType;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">template</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typename</span> VALTYPE, </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>TYPE</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> ></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">struct </span>genType</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">enum</span> ctor{null};</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> VALTYPE value_type;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">typedef</span> VALTYPE & value_reference;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">typedef</span> VALTYPE * value_pointer;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">typedef</span> VALTYPE <span class="keyword">const</span> * value_const_pointer;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> TYPE<bool> bool_type;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> sizeType size_type;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> is_vector();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">typedef</span> TYPE<VALTYPE> type;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> TYPE<VALTYPE> * pointer;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> * const_pointer;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> * <span class="keyword">const</span> const_pointer_const;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">typedef</span> TYPE<VALTYPE> * <span class="keyword">const</span> pointer_const;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> TYPE<VALTYPE> & reference;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> & const_reference;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> & param_type;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <string></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#if(GLM_COMPILER & GLM_COMPILER_CUDA)</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># error "GLM_GTX_string_cast is not supported on CUDA compiler"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_string_cast extension included")</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType, <span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL std::string <a class="code" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a>(matType<T, P> <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "string_cast.inl"</span></div>
-<div class="ttc" id="a00235_html_ga7b4f9233593bbf1d53762f801ef56fe6"><div class="ttname"><a href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">glm::to_string</a></div><div class="ttdeci">GLM_FUNC_DECL std::string to_string(matType< T, P > const &x)</div><div class="ttdoc">Create a string from a GLM vector or matrix typed variable. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Address (Implementation details)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> value_const_pointer value_address()<span class="keyword"> const</span>{<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> value_pointer value_address(){<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">//protected:</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// enum kind</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// {</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// GEN_TYPE,</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// VEC_TYPE,</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// MAT_TYPE</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// };</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// typedef typename TYPE::kind kind;</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typename</span> VALTYPE, </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>TYPE</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> ></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">bool</span> genType<VALTYPE, TYPE>::is_vector()</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> class base</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> public:</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> // Traits</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment"> typedef sizeType size_type;</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment"> typedef valTypeT value_type;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> typedef base<value_type, colT, rowT> class_type;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> typedef base<bool, colT, rowT> bool_type;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> typedef base<value_type, rowT, 1> col_type;</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> typedef base<value_type, colT, 1> row_type;</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment"> typedef base<value_type, rowT, colT> transpose_type;</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> static size_type col_size();</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> static size_type row_size();</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment"> static size_type value_size();</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"> static bool is_scalar();</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment"> static bool is_vector();</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> static bool is_matrix();</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"></span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> private:</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"> // Data </span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment"> col_type value[colT]; </span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> public:</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> // Constructors</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> base();</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> base(class_type const & m);</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> explicit base(T const & x);</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> explicit base(value_type const * const x);</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> explicit base(col_type const * const x);</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"></span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> // Conversions</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> template <typename vU, uint cU, uint rU, profile pU></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> explicit base(base<vU, cU, rU, pU> const & m);</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"></span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> // Accesses</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> col_type& operator[](size_type i);</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> col_type const & operator[](size_type i) const;</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> // Unary updatable operators</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> class_type& operator= (class_type const & x);</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> class_type& operator+= (T const & x);</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"> class_type& operator+= (class_type const & x);</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> class_type& operator-= (T const & x);</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> class_type& operator-= (class_type const & x);</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> class_type& operator*= (T const & x);</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> class_type& operator*= (class_type const & x);</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> class_type& operator/= (T const & x);</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"> class_type& operator/= (class_type const & x);</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"> class_type& operator++ ();</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> class_type& operator-- ();</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> };</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">//template <typename T></span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">//struct traits</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">//{</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// static const bool is_signed = false;</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// static const bool is_float = false;</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// static const bool is_vector = false;</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// static const bool is_matrix = false;</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// static const bool is_genType = false;</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// static const bool is_genIType = false;</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// static const bool is_genUType = false;</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">//};</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">//template <></span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">//struct traits<half></span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">//{</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">//};</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">//template <></span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">//struct traits<float></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">//{</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">//};</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">//template <></span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">//struct traits<double></span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">//{</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// static const bool is_float = true;</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// static const bool is_genType = true;</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">//};</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">//template <typename genType></span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">//struct desc</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">//{</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// typedef genType type;</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// typedef genType * pointer;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// typedef genType const* const_pointer;</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// typedef genType const *const const_pointer_const;</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// typedef genType *const pointer_const;</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// typedef genType & reference;</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// typedef genType const& const_reference;</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// typedef genType const& param_type;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// typedef typename genType::value_type value_type;</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// typedef typename genType::size_type size_type;</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// static const typename size_type value_size;</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">//};</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">//template <typename genType></span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">//const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">//#include "type_gentype.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00112.html b/doc/api/a00112.html
index 2be19c1..1ed655d 100644
--- a/doc/api/a00112.html
+++ b/doc/api/a00112.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform.hpp File Reference</title>
+<title>0.9.8: type_half.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,49 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">transform.hpp File Reference</div> </div>
+<div class="title">type_half.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00112_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00236.html">GLM_GTX_transform</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd>
-<dd>
-<a class="el" href="a00237.html" title="Add extra transformation matrices. ">GLM_GTX_transform2</a> </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00112_source.html">transform.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00112_source.html">type_half.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00112_source.html b/doc/api/a00112_source.html
index 3ce13fd..57e5b82 100644
--- a/doc/api/a00112_source.html
+++ b/doc/api/a00112_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform.hpp Source File</title>
+<title>0.9.8: type_half.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,49 +41,33 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">transform.hpp</div> </div>
+<div class="title">type_half.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00112.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtc/matrix_transform.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_transform extension included")</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a>(</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a>(</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> T <a class="code" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a>, </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a>(</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#include "transform.inl"</span></div>
-<div class="ttc" id="a00236_html_ga2020c91bf61e050882b3a5c18eada700"><div class="ttname"><a href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">glm::rotate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > rotate(T angle, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees...</div></div>
-<div class="ttc" id="a00236_html_ga838c4505ef7f254ed05117b1ac9691fb"><div class="ttname"><a href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">glm::translate</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > translate(tvec3< T, P > const &v)</div><div class="ttdoc">Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00177_html_gad4a4448baedb198b2b1e7880d2544dc9"><div class="ttname"><a href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL T angle(tquat< T, P > const &x)</div><div class="ttdoc">Returns the quaternion rotation angle. </div></div>
-<div class="ttc" id="a00236_html_ga1972d4a66a2e92637c8aaee598417a71"><div class="ttname"><a href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tvec3< T, P > const &v)</div><div class="ttdoc">Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> & value);</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "type_half.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00113.html b/doc/api/a00113.html
index 59082bc..3c0ef0b 100644
--- a/doc/api/a00113.html
+++ b/doc/api/a00113.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform2.hpp File Reference</title>
+<title>0.9.8: type_int.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,63 +41,56 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">transform2.hpp File Reference</div> </div>
+<div class="title">type_int.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00113_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</td></tr>
-<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</td></tr>
-<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
-<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4< valType, P > const &m, valType scale, valType bias)</td></tr>
-<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3< T, P > const &m, T y)</td></tr>
-<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4< T, P > &m, T y, T z)</td></tr>
-<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3< T, P > const &m, T x)</td></tr>
-<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4< T, P > &m, T x, T z)</td></tr>
-<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4< T, P > &m, T x, T y)</td></tr>
-<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
+<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
+<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
+<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
+<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
+<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
+<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
+<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
+<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
+<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
+<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
+<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
+<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
+<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
+<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
+<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00237.html">GLM_GTX_transform2</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-21 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00113_source.html">transform2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00113_source.html b/doc/api/a00113_source.html
index 075cb04..067f4a1 100644
--- a/doc/api/a00113_source.html
+++ b/doc/api/a00113_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: transform2.hpp Source File</title>
+<title>0.9.8: type_int.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,98 +41,306 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">transform2.hpp</div> </div>
+<div class="title">type_int.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00113.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../gtx/transform.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_transform2 extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a>(</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tmat3x3<T, P> <span class="keyword">const</span> & m, </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> T y);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a>(</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> tmat3x3<T, P> <span class="keyword">const</span> & m, </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> T x);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a>(</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">const</span> tmat4x4<T, P> & m,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T y, </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T z);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00098.html">setup.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"># include <type_traits></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># include <cstdint></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"># if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a> <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a> <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a> <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a> <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a> <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a> <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a> <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> sint64;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">typedef</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64 sint64;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-Wlong-long"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"># elif (GLM_COMPILER & GLM_COMPILER_CLANG)</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wc++11-long-long"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># else//unknown compiler</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># endif//GLM_COMPILER</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">typedef</span> sint64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">typedef</span> uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#endif//</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> lowp_int_t;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> highp_int_t;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lowp_uint_t;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> highp_uint_t;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"># if GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">using</span> std::make_signed;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">using</span> std::make_unsigned;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># else//GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">struct </span>make_signed</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {};</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a>(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> T x, </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> T z);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a>(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> T x, </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> T y);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">//template <typename T> GLM_FUNC_QUALIFIER tmat4x4<T, P> shear(const tmat4x4<T, P> & m, shearPlane, planePoint, angle)</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Identity + tan(angle) * cross(Normal, OnPlaneVector) 0</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// - dot(PointOnPlane, normal) * OnPlaneVector 1</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// Reflect functions seem to don't work</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">//template <typename T> tmat3x3<T, P> reflect2D(const tmat3x3<T, P> & m, const tvec3<T, P>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">//template <typename T> tmat4x4<T, P> reflect3D(const tmat4x4<T, P> & m, const tvec3<T, P>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat3x3<T, P> <a class="code" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a>(</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">const</span> tmat3x3<T, P> & m, </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">const</span> tvec3<T, P>& normal);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat4x4<T, P> <a class="code" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a>(</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">const</span> tmat4x4<T, P> & m, </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">const</span> tvec3<T, P>& normal);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keyword">typename</span> valType, precision P> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tmat4x4<valType, P> <a class="code" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> valType <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> valType bias);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> valType, precision P> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat4x4<valType, P> <a class="code" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a>(</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> tmat4x4<valType, P> <span class="keyword">const</span> & m, </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> valType <a class="code" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a>, </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> valType bias);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#include "transform2.inl"</span></div>
-<div class="ttc" id="a00237_html_gac1a1139e2980021422d1fc1c42dc74f2"><div class="ttname"><a href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">glm::scaleBias</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< valType, P > scaleBias(tmat4x4< valType, P > const &m, valType scale, valType bias)</div><div class="ttdoc">Build a scale bias matrix. </div></div>
-<div class="ttc" id="a00237_html_ga5558ac64a7144685bf2eb4483a0e2f51"><div class="ttname"><a href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">glm::shearZ3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearZ3D(const tmat4x4< T, P > &m, T x, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on Z axis. </div></div>
-<div class="ttc" id="a00237_html_ga21ade82859e09a5cdaf4a01fbf8dc61b"><div class="ttname"><a href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">glm::shearY2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > shearY2D(tmat3x3< T, P > const &m, T x)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
-<div class="ttc" id="a00237_html_ga31253ea18fdcdfde08c134c8b67688f7"><div class="ttname"><a href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">glm::shearY3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearY3D(const tmat4x4< T, P > &m, T x, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on Y axis. </div></div>
-<div class="ttc" id="a00237_html_ga10f6c62d8f827c4cacedb71fd05e4ba2"><div class="ttname"><a href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">glm::shearX2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > shearX2D(tmat3x3< T, P > const &m, T y)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis. </div></div>
-<div class="ttc" id="a00237_html_gacfce1085167a8bfb71a55ea14d22752f"><div class="ttname"><a href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">glm::proj2D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, P > proj2D(const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
-<div class="ttc" id="a00237_html_gae06ce274e4754f925d5d68440e89452e"><div class="ttname"><a href="a00237.html#gae06ce274e4754f925d5d68440e89452e">glm::shearX3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > shearX3D(const tmat4x4< T, P > &m, T y, T z)</div><div class="ttdoc">Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </div></div>
-<div class="ttc" id="a00237_html_gafab0418f2503ec2133cb2de828cc482a"><div class="ttname"><a href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">glm::proj3D</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > proj3D(const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</div><div class="ttdoc">Build planar projection matrix along normal axis. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00174_html_ga8f062fcc07e2445500793f2803afebb0"><div class="ttname"><a href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">glm::scale</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, P > scale(tmat4x4< T, P > const &m, tvec3< T, P > const &v)</div><div class="ttdoc">Builds a scale 4 * 4 matrix created from 3 scalars. </div></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">struct </span>make_signed<char></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">struct </span>make_signed<short></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">struct </span>make_signed<int></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> };</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">struct </span>make_signed<long></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">struct </span>make_signed<unsigned char></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">struct </span>make_signed<unsigned short></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">struct </span>make_signed<unsigned int></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> };</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">struct </span>make_signed<unsigned long></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> };</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">struct </span>make_unsigned</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> {};</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">struct </span>make_unsigned<char></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> };</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">struct </span>make_unsigned<short></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> };</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">struct </span>make_unsigned<int></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> };</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">struct </span>make_unsigned<long></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> };</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">struct </span>make_unsigned<unsigned char></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> };</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">struct </span>make_unsigned<unsigned short></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> };</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">struct </span>make_unsigned<unsigned int></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> };</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">struct </span>make_unsigned<unsigned long></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> };</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">struct </span>make_signed<long long></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> };</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">struct </span>make_signed<unsigned long long></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> {</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> };</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">struct </span>make_unsigned<long long></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> };</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">struct </span>make_unsigned<unsigned long long></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> };</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor"># endif//GLM_HAS_MAKE_SIGNED</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0"> 206</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="a00177.html#ga302041c186d0d028bea31b711fe16759"> 207</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f"> 208</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e"> 209</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865"> 211</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d"> 212</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d"> 213</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00177.html#gab630f76c26b50298187f7889104d4b9c"> 214</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="a00158.html#gad0fa1e32e8b3552ed63556eca51c620e"> 224</a></span> <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00158.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00158.html#ga212ef8f883878cb7430228a279a7d866"> 231</a></span> <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00158.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="a00158.html#gaaabe7eb044941ebf308b53a447d692dc"> 238</a></span> <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00158.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00158.html#ga25ebc60727fc8b4a1167665f9ecdca97"> 245</a></span> <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00158.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00158.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e"> 252</a></span> <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00158.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00158.html#ga73e8a694d7fc69143cf25161d18d1dcf"> 259</a></span> <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00158.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keyword">typedef</span> mediump_int int_t;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="keyword">typedef</span> highp_int int_t;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">typedef</span> mediump_int int_t;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">typedef</span> lowp_int int_t;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for signed integer types"</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">typedef</span> mediump_uint uint_t;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">typedef</span> highp_uint uint_t;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">typedef</span> mediump_uint uint_t;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">typedef</span> lowp_uint uint_t;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for unsigned integer types"</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14"> 288</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment">// check type sizes</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a>) == 1, <span class="stringliteral">"int8 size isn't 1 byte on this platform"</span>);</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a>) == 2, <span class="stringliteral">"int16 size isn't 2 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a>) == 4, <span class="stringliteral">"int32 size isn't 4 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a>) == 8, <span class="stringliteral">"int64 size isn't 8 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a>) == 1, <span class="stringliteral">"uint8 size isn't 1 byte on this platform"</span>);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a>) == 2, <span class="stringliteral">"uint16 size isn't 2 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a>) == 4, <span class="stringliteral">"uint32 size isn't 4 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a>) == 8, <span class="stringliteral">"uint64 size isn't 8 bytes on this platform"</span>);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00177_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00206">type_int.hpp:206</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00209">type_int.hpp:209</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00177_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00212">type_int.hpp:212</a></div></div>
+<div class="ttc" id="a00158_html_gad0fa1e32e8b3552ed63556eca51c620e"><div class="ttname"><a href="a00158.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::lowp_int</a></div><div class="ttdeci">detail::lowp_int_t lowp_int</div><div class="ttdoc">Low precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00224">type_int.hpp:224</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00177.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00207">type_int.hpp:207</a></div></div>
+<div class="ttc" id="a00158_html_ga25ebc60727fc8b4a1167665f9ecdca97"><div class="ttname"><a href="a00158.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::lowp_uint</a></div><div class="ttdeci">detail::lowp_uint_t lowp_uint</div><div class="ttdoc">Low precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00245">type_int.hpp:245</a></div></div>
+<div class="ttc" id="a00158_html_gaaabe7eb044941ebf308b53a447d692dc"><div class="ttname"><a href="a00158.html#gaaabe7eb044941ebf308b53a447d692dc">glm::highp_int</a></div><div class="ttdeci">detail::highp_int_t highp_int</div><div class="ttdoc">High precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00238">type_int.hpp:238</a></div></div>
+<div class="ttc" id="a00177_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00211">type_int.hpp:211</a></div></div>
+<div class="ttc" id="a00177_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00213">type_int.hpp:213</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00098_html"><div class="ttname"><a href="a00098.html">setup.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00177_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00177.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00214">type_int.hpp:214</a></div></div>
+<div class="ttc" id="a00158_html_ga212ef8f883878cb7430228a279a7d866"><div class="ttname"><a href="a00158.html#ga212ef8f883878cb7430228a279a7d866">glm::mediump_int</a></div><div class="ttdeci">detail::mediump_int_t mediump_int</div><div class="ttdoc">Medium precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00231">type_int.hpp:231</a></div></div>
+<div class="ttc" id="a00158_html_ga73e8a694d7fc69143cf25161d18d1dcf"><div class="ttname"><a href="a00158.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::highp_uint</a></div><div class="ttdeci">detail::highp_uint_t highp_uint</div><div class="ttdoc">High precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00259">type_int.hpp:259</a></div></div>
+<div class="ttc" id="a00158_html_ga0b7e01c52b9e5bf3369761b79b5f4f8e"><div class="ttname"><a href="a00158.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::mediump_uint</a></div><div class="ttdeci">detail::mediump_uint_t mediump_uint</div><div class="ttdoc">Medium precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00252">type_int.hpp:252</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00208">type_int.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00881">fwd.hpp:881</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00114.html b/doc/api/a00114.html
index e5ed30a..71626e3 100644
--- a/doc/api/a00114.html
+++ b/doc/api/a00114.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: trigonometric.hpp File Reference</title>
+<title>0.9.8: type_mat.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,225 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">trigonometric.hpp File Reference</div> </div>
+<div class="title">type_mat.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00114_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
+<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
+<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
+<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
+<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
+<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
+<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
+<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
+<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
+<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
+<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
+<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
+<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
+<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
+<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
+<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
+<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
+<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
+<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
+<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
+<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
+<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
+<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
+<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
+<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
+<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
+<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
+<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
+<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
+<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
+<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
+<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
+<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
+<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
+<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
+<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
+<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
+<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
+<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
+<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
+<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
+<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
+<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
+<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
+<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
+<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
+<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
+<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
+<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
+<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
+<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
+<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
+<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
+<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
+<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
+<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
+<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
+<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
+<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
+<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
+<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
+<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
+<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
+<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
+<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
+<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
+<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
+<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
+<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
+<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
+<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
+<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
+<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
+<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
+<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
+<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
+<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
+<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
+<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
+<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
+<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
+<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
+<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
+<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
+<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
+<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
+<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
+<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
+<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
+<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
+<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
+<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
+<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
+<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
+<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
+<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
+<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType< T, P > const &m)</td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00114_source.html">trigonometric.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00114_source.html b/doc/api/a00114_source.html
index 93d6ac3..5866ce8 100644
--- a/doc/api/a00114_source.html
+++ b/doc/api/a00114_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: trigonometric.hpp Source File</title>
+<title>0.9.8: type_mat.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,19 +41,423 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">trigonometric.hpp</div> </div>
+<div class="title">type_mat.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00114.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00036.html">detail/func_trigonometric.hpp</a>"</span></div>
-<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_trigonometric.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">class</span>, precision> <span class="keyword">class </span>colType, <span class="keyword">template</span> <<span class="keyword">class</span>, precision> <span class="keyword">class </span>rowType></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">struct </span>outerProduct_trait{};</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> }<span class="comment">//namespace detail</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x2;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x3;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x4;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x2;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x3;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x4;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x2;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x3;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x4;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>matType></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL matType<T, P> <a class="code" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a>(matType<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85"> 39</a></span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47"> 46</a></span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0"> 53</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981"> 60</a></span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74"> 67</a></span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00158.html#gae6a747cfc33928652abcb1347712b231"> 74</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00158.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d"> 86</a></span> <span class="keyword">typedef</span> tmat2x3<float, lowp> <a class="code" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09"> 93</a></span> <span class="keyword">typedef</span> tmat2x3<float, mediump> <a class="code" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b"> 100</a></span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00158.html#gad64a0179b75508142a72917854034b9b"> 112</a></span> <span class="keyword">typedef</span> tmat2x4<float, lowp> <a class="code" href="a00158.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe"> 119</a></span> <span class="keyword">typedef</span> tmat2x4<float, mediump> <a class="code" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493"> 126</a></span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924"> 138</a></span> <span class="keyword">typedef</span> tmat3x2<float, lowp> <a class="code" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9"> 145</a></span> <span class="keyword">typedef</span> tmat3x2<float, mediump> <a class="code" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a"> 152</a></span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783"> 164</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b"> 171</a></span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd"> 178</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="a00158.html#gab7ca36023fa56d8006341a192ee09260"> 185</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec"> 192</a></span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd"> 199</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e"> 211</a></span> <span class="keyword">typedef</span> tmat3x4<float, lowp> <a class="code" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24"> 218</a></span> <span class="keyword">typedef</span> tmat3x4<float, mediump> <a class="code" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00158.html#ga117d8a040e738396a3d60368605623d2"> 225</a></span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00158.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93"> 237</a></span> <span class="keyword">typedef</span> tmat4x2<float, lowp> <a class="code" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d"> 244</a></span> <span class="keyword">typedef</span> tmat4x2<float, mediump> <a class="code" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00158.html#gaeea75c96b308be4114e0badf49f58075"> 251</a></span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00158.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f"> 263</a></span> <span class="keyword">typedef</span> tmat4x3<float, lowp> <a class="code" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb"> 270</a></span> <span class="keyword">typedef</span> tmat4x3<float, mediump> <a class="code" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f"> 277</a></span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0"> 290</a></span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a"> 297</a></span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0"> 304</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa"> 311</a></span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="a00158.html#ga535614d97234065ab44b2513667c8563"> 318</a></span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00158.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead"> 325</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">// Float definition</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">typedef</span> lowp_mat2x2 <a class="code" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">typedef</span> lowp_mat2x3 <a class="code" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">typedef</span> lowp_mat2x4 <a class="code" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keyword">typedef</span> lowp_mat3x2 <a class="code" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">typedef</span> lowp_mat3x3 <a class="code" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">typedef</span> lowp_mat3x4 <a class="code" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">typedef</span> lowp_mat4x2 <a class="code" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">typedef</span> lowp_mat4x3 <a class="code" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">typedef</span> lowp_mat4x4 <a class="code" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">typedef</span> mediump_mat2x2 <a class="code" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">typedef</span> mediump_mat2x3 <a class="code" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">typedef</span> mediump_mat2x4 <a class="code" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">typedef</span> mediump_mat3x2 <a class="code" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">typedef</span> mediump_mat3x3 <a class="code" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">typedef</span> mediump_mat3x4 <a class="code" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">typedef</span> mediump_mat4x2 <a class="code" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">typedef</span> mediump_mat4x3 <a class="code" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">typedef</span> mediump_mat4x4 <a class="code" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor">#else </span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">typedef</span> highp_mat2x2 <a class="code" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="a00157.html#gafb063d734266e92915d87f8943560471"> 364</a></span> <span class="keyword">typedef</span> highp_mat2x3 <a class="code" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac"> 369</a></span> <span class="keyword">typedef</span> highp_mat2x4 <a class="code" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4"> 374</a></span> <span class="keyword">typedef</span> highp_mat3x2 <a class="code" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1"> 379</a></span> <span class="keyword">typedef</span> highp_mat3x3 <a class="code" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf"> 384</a></span> <span class="keyword">typedef</span> highp_mat3x4 <a class="code" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f"> 389</a></span> <span class="keyword">typedef</span> highp_mat4x2 <a class="code" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd"> 394</a></span> <span class="keyword">typedef</span> highp_mat4x3 <a class="code" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81"> 399</a></span> <span class="keyword">typedef</span> highp_mat4x4 <a class="code" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450"> 406</a></span> <span class="keyword">typedef</span> mat2x2 <a class="code" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="a00157.html#ga6dd3ec98a548755676267e59142911f8"> 411</a></span> <span class="keyword">typedef</span> mat3x3 <a class="code" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="a00157.html#gade0eb47c01f79384a6f38017ede17446"> 416</a></span> <span class="keyword">typedef</span> mat4x4 <a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment">// Double definition</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="a00158.html#gae0a526a0143fc69d7b317c078d591654"> 428</a></span> <span class="keyword">typedef</span> tmat2x2<double, lowp> <a class="code" href="a00158.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a>;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="a00158.html#ga330077a4cb3707329120b5bddcd7db2d"> 434</a></span> <span class="keyword">typedef</span> tmat2x2<double, mediump> <a class="code" href="a00158.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="a00158.html#ga65ae7d3b23155712ed8cbd3300be4ec8"> 440</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00158.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="a00158.html#ga000c064e4eba15bf83f8e1e393a8e7fd"> 446</a></span> <span class="keyword">typedef</span> tmat2x2<double, lowp> <a class="code" href="a00158.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="a00158.html#ga78987759d40d7cb03ebe948fb1dcd879"> 452</a></span> <span class="keyword">typedef</span> tmat2x2<double, mediump> <a class="code" href="a00158.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="a00158.html#ga518f28c64881fafaaf14ec0d867a9bba"> 458</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00158.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="a00158.html#gaaf2d7cf98b74a43fc432725887685dc0"> 469</a></span> <span class="keyword">typedef</span> tmat2x3<double, lowp> <a class="code" href="a00158.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a>;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="a00158.html#ga2569a68be3f1cf56e7e5e0920fe5a246"> 475</a></span> <span class="keyword">typedef</span> tmat2x3<double, mediump> <a class="code" href="a00158.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00158.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6"> 481</a></span> <span class="keyword">typedef</span> tmat2x3<double, highp> <a class="code" href="a00158.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a>;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="a00158.html#ga8ac69e9ed1addf122f51396f73cdbbf3"> 492</a></span> <span class="keyword">typedef</span> tmat2x4<double, lowp> <a class="code" href="a00158.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="a00158.html#gaccf963b117beeadf8c5c057000762dd3"> 498</a></span> <span class="keyword">typedef</span> tmat2x4<double, mediump> <a class="code" href="a00158.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="a00158.html#gac1c87c16d6dcb7449bc3c779ccdc5c30"> 504</a></span> <span class="keyword">typedef</span> tmat2x4<double, highp> <a class="code" href="a00158.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a>;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="a00158.html#ga27ccd1bcb24920508a7b6a24bd9265ab"> 515</a></span> <span class="keyword">typedef</span> tmat3x2<double, lowp> <a class="code" href="a00158.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="a00158.html#ga6b81830ed1ce3862bcbbf41eccc3890b"> 521</a></span> <span class="keyword">typedef</span> tmat3x2<double, mediump> <a class="code" href="a00158.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a>;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="a00158.html#gab2d4fd5cd286baff8364a7a3f60c8a21"> 527</a></span> <span class="keyword">typedef</span> tmat3x2<double, highp> <a class="code" href="a00158.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="a00158.html#ga19b0c9580b447443cf3fe589bd661e03"> 538</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00158.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a>;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="a00158.html#ga8091edef9fdf54b1996ae5bd00f847e5"> 544</a></span> <span class="keyword">typedef</span> tmat3x3<double, mediump> <a class="code" href="a00158.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="a00158.html#ga605c7863807ac2e9c2db4cf13405f34d"> 550</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00158.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="a00158.html#gae37a4275ffa68d0c3527a345e76598c0"> 556</a></span> <span class="keyword">typedef</span> tmat3x3<double, lowp> <a class="code" href="a00158.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a>;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="a00158.html#ga5e5de055b7af150796e1c017de84cdb1"> 562</a></span> <span class="keyword">typedef</span> tmat3x3<double, mediump> <a class="code" href="a00158.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="a00158.html#ga2d7911a43241a5ce2472421255e5930f"> 568</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00158.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="a00158.html#ga813bff547772bcefebc026e5deba0fe3"> 579</a></span> <span class="keyword">typedef</span> tmat3x4<double, lowp> <a class="code" href="a00158.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div>
+<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="a00158.html#ga187d10ddab0492545b78ea1dd108f28d"> 585</a></span> <span class="keyword">typedef</span> tmat3x4<double, mediump> <a class="code" href="a00158.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a>;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="a00158.html#ga51bfd2f3f5a12464d5934323db9116e7"> 591</a></span> <span class="keyword">typedef</span> tmat3x4<double, highp> <a class="code" href="a00158.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="a00158.html#ga05c2d27aeca091e369fca027e72177e8"> 602</a></span> <span class="keyword">typedef</span> tmat4x2<double, lowp> <a class="code" href="a00158.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a>;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="a00158.html#gad4a5b294c54702b7c8e9ee32a451dea9"> 608</a></span> <span class="keyword">typedef</span> tmat4x2<double, mediump> <a class="code" href="a00158.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a>;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
+<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="a00158.html#ga5ee028f50629bf451973b3a910973357"> 614</a></span> <span class="keyword">typedef</span> tmat4x2<double, highp> <a class="code" href="a00158.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a>;</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"><a class="line" href="a00158.html#ga2b5b1b810f3b9988f49f985387e35e03"> 625</a></span> <span class="keyword">typedef</span> tmat4x3<double, lowp> <a class="code" href="a00158.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a>;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
+<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="a00158.html#ga27b55deeb16fda7262d64dc1fd1a56bc"> 631</a></span> <span class="keyword">typedef</span> tmat4x3<double, mediump> <a class="code" href="a00158.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a>;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div>
+<div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="a00158.html#gafe7eea5b2a20477b5634e340ea5ec28a"> 637</a></span> <span class="keyword">typedef</span> tmat4x3<double, highp> <a class="code" href="a00158.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a>;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="a00158.html#gaac3aee10bee5fa5206de8bf024a8b301"> 648</a></span> <span class="keyword">typedef</span> tmat4x4<double, lowp> <a class="code" href="a00158.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a>;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div>
+<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="a00158.html#ga27be34d618d20fbd70d4c62c21256b0c"> 654</a></span> <span class="keyword">typedef</span> tmat4x4<double, mediump> <a class="code" href="a00158.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a>;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="a00158.html#ga4607e33c40a3c03256e0bf9c586b456a"> 660</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00158.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a>;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div>
+<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="a00158.html#gaea9e20c3668305cf0de5334d217408d9"> 666</a></span> <span class="keyword">typedef</span> tmat4x4<double, lowp> <a class="code" href="a00158.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a>;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="a00158.html#ga857947b2eef2c9144c34b8e3031f2f12"> 672</a></span> <span class="keyword">typedef</span> tmat4x4<double, mediump> <a class="code" href="a00158.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div>
+<div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="a00158.html#ga83ab0b8b8b50cbf945237dc8f5322432"> 678</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00158.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a>;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> </div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="keyword">typedef</span> lowp_dmat2x2 <a class="code" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="keyword">typedef</span> lowp_dmat2x3 <a class="code" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="keyword">typedef</span> lowp_dmat2x4 <a class="code" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="keyword">typedef</span> lowp_dmat3x2 <a class="code" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="keyword">typedef</span> lowp_dmat3x3 <a class="code" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">typedef</span> lowp_dmat3x4 <a class="code" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="keyword">typedef</span> lowp_dmat4x2 <a class="code" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="keyword">typedef</span> lowp_dmat4x3 <a class="code" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="keyword">typedef</span> lowp_dmat4x4 <a class="code" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="keyword">typedef</span> mediump_dmat2x2 <a class="code" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="keyword">typedef</span> mediump_dmat2x3 <a class="code" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="keyword">typedef</span> mediump_dmat2x4 <a class="code" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">typedef</span> mediump_dmat3x2 <a class="code" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="keyword">typedef</span> mediump_dmat3x3 <a class="code" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="keyword">typedef</span> mediump_dmat3x4 <a class="code" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="keyword">typedef</span> mediump_dmat4x2 <a class="code" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">typedef</span> mediump_dmat4x3 <a class="code" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="keyword">typedef</span> mediump_dmat4x4 <a class="code" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="a00157.html#gac7f51e23c8802d867f564dfd146bdb44"> 707</a></span> <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00157.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="a00157.html#gae174ff65e148bb7dec4bf10a63cb46ff"> 712</a></span> <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00157.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="a00157.html#ga97b38ea24e9ebf58eac04a8d99dc3e27"> 717</a></span> <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00157.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a>;</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e"> 722</a></span> <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div>
+<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7"> 727</a></span> <span class="keyword">typedef</span> highp_dmat2x3 <a class="code" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div>
+<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738"> 732</a></span> <span class="keyword">typedef</span> highp_dmat2x4 <a class="code" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8"> 737</a></span> <span class="keyword">typedef</span> highp_dmat3x2 <a class="code" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div>
+<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8"> 742</a></span> <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> </div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091"> 747</a></span> <span class="keyword">typedef</span> highp_dmat3x4 <a class="code" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a"> 752</a></span> <span class="keyword">typedef</span> highp_dmat4x2 <a class="code" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div>
+<div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e"> 757</a></span> <span class="keyword">typedef</span> highp_dmat4x3 <a class="code" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e"> 762</a></span> <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00158_html_ga2d7911a43241a5ce2472421255e5930f"><div class="ttname"><a href="a00158.html#ga2d7911a43241a5ce2472421255e5930f">glm::highp_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, highp > highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00568">type_mat.hpp:568</a></div></div>
+<div class="ttc" id="a00158_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00158.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00318">type_mat.hpp:318</a></div></div>
+<div class="ttc" id="a00158_html_ga5ee028f50629bf451973b3a910973357"><div class="ttname"><a href="a00158.html#ga5ee028f50629bf451973b3a910973357">glm::highp_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, highp > highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00614">type_mat.hpp:614</a></div></div>
+<div class="ttc" id="a00158_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, lowp > lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00237">type_mat.hpp:237</a></div></div>
+<div class="ttc" id="a00158_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, highp > highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00277">type_mat.hpp:277</a></div></div>
+<div class="ttc" id="a00158_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00158.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, highp > highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00251">type_mat.hpp:251</a></div></div>
+<div class="ttc" id="a00158_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00311">type_mat.hpp:311</a></div></div>
+<div class="ttc" id="a00158_html_gaac3aee10bee5fa5206de8bf024a8b301"><div class="ttname"><a href="a00158.html#gaac3aee10bee5fa5206de8bf024a8b301">glm::lowp_dmat4</a></div><div class="ttdeci">tmat4x4< double, lowp > lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00648">type_mat.hpp:648</a></div></div>
+<div class="ttc" id="a00158_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00158.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00185">type_mat.hpp:185</a></div></div>
+<div class="ttc" id="a00158_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00046">type_mat.hpp:46</a></div></div>
+<div class="ttc" id="a00157_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00369">type_mat.hpp:369</a></div></div>
+<div class="ttc" id="a00158_html_ga000c064e4eba15bf83f8e1e393a8e7fd"><div class="ttname"><a href="a00158.html#ga000c064e4eba15bf83f8e1e393a8e7fd">glm::lowp_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, lowp > lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00446">type_mat.hpp:446</a></div></div>
+<div class="ttc" id="a00158_html_ga83ab0b8b8b50cbf945237dc8f5322432"><div class="ttname"><a href="a00158.html#ga83ab0b8b8b50cbf945237dc8f5322432">glm::highp_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, highp > highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00678">type_mat.hpp:678</a></div></div>
+<div class="ttc" id="a00158_html_ga27be34d618d20fbd70d4c62c21256b0c"><div class="ttname"><a href="a00158.html#ga27be34d618d20fbd70d4c62c21256b0c">glm::mediump_dmat4</a></div><div class="ttdeci">tmat4x4< double, mediump > mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00654">type_mat.hpp:654</a></div></div>
+<div class="ttc" id="a00157_html_gac7f51e23c8802d867f564dfd146bdb44"><div class="ttname"><a href="a00157.html#gac7f51e23c8802d867f564dfd146bdb44">glm::dmat2</a></div><div class="ttdeci">highp_dmat2x2 dmat2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00707">type_mat.hpp:707</a></div></div>
+<div class="ttc" id="a00157_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00359">type_mat.hpp:359</a></div></div>
+<div class="ttc" id="a00157_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00406">type_mat.hpp:406</a></div></div>
+<div class="ttc" id="a00158_html_ga330077a4cb3707329120b5bddcd7db2d"><div class="ttname"><a href="a00158.html#ga330077a4cb3707329120b5bddcd7db2d">glm::mediump_dmat2</a></div><div class="ttdeci">tmat2x2< double, mediump > mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00434">type_mat.hpp:434</a></div></div>
+<div class="ttc" id="a00158_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00039">type_mat.hpp:39</a></div></div>
+<div class="ttc" id="a00157_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00157.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00364">type_mat.hpp:364</a></div></div>
+<div class="ttc" id="a00157_html_ga6ddab280c735a2139133b4164b99a68a"><div class="ttname"><a href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">glm::dmat4x2</a></div><div class="ttdeci">highp_dmat4x2 dmat4x2</div><div class="ttdoc">4 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00752">type_mat.hpp:752</a></div></div>
+<div class="ttc" id="a00158_html_ga65ae7d3b23155712ed8cbd3300be4ec8"><div class="ttname"><a href="a00158.html#ga65ae7d3b23155712ed8cbd3300be4ec8">glm::highp_dmat2</a></div><div class="ttdeci">tmat2x2< double, highp > highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00440">type_mat.hpp:440</a></div></div>
+<div class="ttc" id="a00157_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00374">type_mat.hpp:374</a></div></div>
+<div class="ttc" id="a00157_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00384">type_mat.hpp:384</a></div></div>
+<div class="ttc" id="a00158_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00178">type_mat.hpp:178</a></div></div>
+<div class="ttc" id="a00157_html_gacc27b39853a2ecb538c8b3afc20c359e"><div class="ttname"><a href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">glm::dmat2x2</a></div><div class="ttdeci">highp_dmat2x2 dmat2x2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00722">type_mat.hpp:722</a></div></div>
+<div class="ttc" id="a00157_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00157.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00411">type_mat.hpp:411</a></div></div>
+<div class="ttc" id="a00158_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3< float, mediump > mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00270">type_mat.hpp:270</a></div></div>
+<div class="ttc" id="a00158_html_gae0a526a0143fc69d7b317c078d591654"><div class="ttname"><a href="a00158.html#gae0a526a0143fc69d7b317c078d591654">glm::lowp_dmat2</a></div><div class="ttdeci">tmat2x2< double, lowp > lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00428">type_mat.hpp:428</a></div></div>
+<div class="ttc" id="a00158_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00304">type_mat.hpp:304</a></div></div>
+<div class="ttc" id="a00158_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2< float, mediump > mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00244">type_mat.hpp:244</a></div></div>
+<div class="ttc" id="a00158_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00158.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, highp > highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00225">type_mat.hpp:225</a></div></div>
+<div class="ttc" id="a00158_html_ga27b55deeb16fda7262d64dc1fd1a56bc"><div class="ttname"><a href="a00158.html#ga27b55deeb16fda7262d64dc1fd1a56bc">glm::mediump_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, mediump > mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00631">type_mat.hpp:631</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_ga51bfd2f3f5a12464d5934323db9116e7"><div class="ttname"><a href="a00158.html#ga51bfd2f3f5a12464d5934323db9116e7">glm::highp_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, highp > highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00591">type_mat.hpp:591</a></div></div>
+<div class="ttc" id="a00158_html_ga2569a68be3f1cf56e7e5e0920fe5a246"><div class="ttname"><a href="a00158.html#ga2569a68be3f1cf56e7e5e0920fe5a246">glm::mediump_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, mediump > mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00475">type_mat.hpp:475</a></div></div>
+<div class="ttc" id="a00157_html_ga1cb3c561a32f0864733dfaf97c71f0c7"><div class="ttname"><a href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">glm::dmat2x3</a></div><div class="ttdeci">highp_dmat2x3 dmat2x3</div><div class="ttdoc">2 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00727">type_mat.hpp:727</a></div></div>
+<div class="ttc" id="a00150_html_gaa7e1d5586cd499126cec76e0f11871e3"><div class="ttname"><a href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">glm::inverse</a></div><div class="ttdeci">GLM_FUNC_DECL matType< T, P > inverse(matType< T, P > const &m)</div><div class="ttdoc">Return the inverse of a squared matrix. </div></div>
+<div class="ttc" id="a00158_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00158.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, lowp > lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00112">type_mat.hpp:112</a></div></div>
+<div class="ttc" id="a00157_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00416">type_mat.hpp:416</a></div></div>
+<div class="ttc" id="a00158_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00158.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00074">type_mat.hpp:74</a></div></div>
+<div class="ttc" id="a00158_html_ga187d10ddab0492545b78ea1dd108f28d"><div class="ttname"><a href="a00158.html#ga187d10ddab0492545b78ea1dd108f28d">glm::mediump_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, mediump > mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00585">type_mat.hpp:585</a></div></div>
+<div class="ttc" id="a00158_html_ga518f28c64881fafaaf14ec0d867a9bba"><div class="ttname"><a href="a00158.html#ga518f28c64881fafaaf14ec0d867a9bba">glm::highp_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, highp > highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00458">type_mat.hpp:458</a></div></div>
+<div class="ttc" id="a00158_html_ga2b5b1b810f3b9988f49f985387e35e03"><div class="ttname"><a href="a00158.html#ga2b5b1b810f3b9988f49f985387e35e03">glm::lowp_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, lowp > lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00625">type_mat.hpp:625</a></div></div>
+<div class="ttc" id="a00158_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2< float, mediump > mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00145">type_mat.hpp:145</a></div></div>
+<div class="ttc" id="a00157_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00399">type_mat.hpp:399</a></div></div>
+<div class="ttc" id="a00158_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, lowp > lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00211">type_mat.hpp:211</a></div></div>
+<div class="ttc" id="a00157_html_gaec22f44dddbdadfe5dfca68eb3457ea8"><div class="ttname"><a href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">glm::dmat3x2</a></div><div class="ttdeci">highp_dmat3x2 dmat3x2</div><div class="ttdoc">3 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00737">type_mat.hpp:737</a></div></div>
+<div class="ttc" id="a00158_html_ga19b0c9580b447443cf3fe589bd661e03"><div class="ttname"><a href="a00158.html#ga19b0c9580b447443cf3fe589bd661e03">glm::lowp_dmat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00538">type_mat.hpp:538</a></div></div>
+<div class="ttc" id="a00158_html_gaaf2d7cf98b74a43fc432725887685dc0"><div class="ttname"><a href="a00158.html#gaaf2d7cf98b74a43fc432725887685dc0">glm::lowp_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, lowp > lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00469">type_mat.hpp:469</a></div></div>
+<div class="ttc" id="a00158_html_ga8091edef9fdf54b1996ae5bd00f847e5"><div class="ttname"><a href="a00158.html#ga8091edef9fdf54b1996ae5bd00f847e5">glm::mediump_dmat3</a></div><div class="ttdeci">tmat3x3< double, mediump > mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00544">type_mat.hpp:544</a></div></div>
+<div class="ttc" id="a00158_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00290">type_mat.hpp:290</a></div></div>
+<div class="ttc" id="a00158_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4< float, mediump > mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00218">type_mat.hpp:218</a></div></div>
+<div class="ttc" id="a00158_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, highp > highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00152">type_mat.hpp:152</a></div></div>
+<div class="ttc" id="a00158_html_ga6b81830ed1ce3862bcbbf41eccc3890b"><div class="ttname"><a href="a00158.html#ga6b81830ed1ce3862bcbbf41eccc3890b">glm::mediump_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, mediump > mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00521">type_mat.hpp:521</a></div></div>
+<div class="ttc" id="a00158_html_ga4607e33c40a3c03256e0bf9c586b456a"><div class="ttname"><a href="a00158.html#ga4607e33c40a3c03256e0bf9c586b456a">glm::highp_dmat4</a></div><div class="ttdeci">tmat4x4< double, highp > highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00660">type_mat.hpp:660</a></div></div>
+<div class="ttc" id="a00158_html_ga8ac69e9ed1addf122f51396f73cdbbf3"><div class="ttname"><a href="a00158.html#ga8ac69e9ed1addf122f51396f73cdbbf3">glm::lowp_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, lowp > lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00492">type_mat.hpp:492</a></div></div>
+<div class="ttc" id="a00158_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00171">type_mat.hpp:171</a></div></div>
+<div class="ttc" id="a00158_html_gaccf963b117beeadf8c5c057000762dd3"><div class="ttname"><a href="a00158.html#gaccf963b117beeadf8c5c057000762dd3">glm::mediump_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, mediump > mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00498">type_mat.hpp:498</a></div></div>
+<div class="ttc" id="a00158_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00067">type_mat.hpp:67</a></div></div>
+<div class="ttc" id="a00158_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00060">type_mat.hpp:60</a></div></div>
+<div class="ttc" id="a00157_html_ga41c2da87ca627c1b2da5e895435a508e"><div class="ttname"><a href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">glm::dmat4x4</a></div><div class="ttdeci">highp_dmat4x4 dmat4x4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00762">type_mat.hpp:762</a></div></div>
+<div class="ttc" id="a00158_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, lowp > lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00086">type_mat.hpp:86</a></div></div>
+<div class="ttc" id="a00158_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00325">type_mat.hpp:325</a></div></div>
+<div class="ttc" id="a00157_html_gab6c8974496fc7c72dad09219118ba89e"><div class="ttname"><a href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">glm::dmat4x3</a></div><div class="ttdeci">highp_dmat4x3 dmat4x3</div><div class="ttdoc">4 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00757">type_mat.hpp:757</a></div></div>
+<div class="ttc" id="a00158_html_ga5e5de055b7af150796e1c017de84cdb1"><div class="ttname"><a href="a00158.html#ga5e5de055b7af150796e1c017de84cdb1">glm::mediump_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, mediump > mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00562">type_mat.hpp:562</a></div></div>
+<div class="ttc" id="a00157_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00389">type_mat.hpp:389</a></div></div>
+<div class="ttc" id="a00158_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00297">type_mat.hpp:297</a></div></div>
+<div class="ttc" id="a00158_html_ga05c2d27aeca091e369fca027e72177e8"><div class="ttname"><a href="a00158.html#ga05c2d27aeca091e369fca027e72177e8">glm::lowp_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, lowp > lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00602">type_mat.hpp:602</a></div></div>
+<div class="ttc" id="a00158_html_gad4a5b294c54702b7c8e9ee32a451dea9"><div class="ttname"><a href="a00158.html#gad4a5b294c54702b7c8e9ee32a451dea9">glm::mediump_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, mediump > mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00608">type_mat.hpp:608</a></div></div>
+<div class="ttc" id="a00158_html_ga857947b2eef2c9144c34b8e3031f2f12"><div class="ttname"><a href="a00158.html#ga857947b2eef2c9144c34b8e3031f2f12">glm::mediump_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, mediump > mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00672">type_mat.hpp:672</a></div></div>
+<div class="ttc" id="a00158_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3< float, mediump > mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00093">type_mat.hpp:93</a></div></div>
+<div class="ttc" id="a00158_html_ga78987759d40d7cb03ebe948fb1dcd879"><div class="ttname"><a href="a00158.html#ga78987759d40d7cb03ebe948fb1dcd879">glm::mediump_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, mediump > mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00452">type_mat.hpp:452</a></div></div>
+<div class="ttc" id="a00158_html_gafe7eea5b2a20477b5634e340ea5ec28a"><div class="ttname"><a href="a00158.html#gafe7eea5b2a20477b5634e340ea5ec28a">glm::highp_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, highp > highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00637">type_mat.hpp:637</a></div></div>
+<div class="ttc" id="a00157_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00379">type_mat.hpp:379</a></div></div>
+<div class="ttc" id="a00158_html_ga605c7863807ac2e9c2db4cf13405f34d"><div class="ttname"><a href="a00158.html#ga605c7863807ac2e9c2db4cf13405f34d">glm::highp_dmat3</a></div><div class="ttdeci">tmat3x3< double, highp > highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00550">type_mat.hpp:550</a></div></div>
+<div class="ttc" id="a00158_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, highp > highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00126">type_mat.hpp:126</a></div></div>
+<div class="ttc" id="a00158_html_gaea9e20c3668305cf0de5334d217408d9"><div class="ttname"><a href="a00158.html#gaea9e20c3668305cf0de5334d217408d9">glm::lowp_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, lowp > lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00666">type_mat.hpp:666</a></div></div>
+<div class="ttc" id="a00158_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00199">type_mat.hpp:199</a></div></div>
+<div class="ttc" id="a00158_html_gae37a4275ffa68d0c3527a345e76598c0"><div class="ttname"><a href="a00158.html#gae37a4275ffa68d0c3527a345e76598c0">glm::lowp_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, lowp > lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00556">type_mat.hpp:556</a></div></div>
+<div class="ttc" id="a00158_html_ga813bff547772bcefebc026e5deba0fe3"><div class="ttname"><a href="a00158.html#ga813bff547772bcefebc026e5deba0fe3">glm::lowp_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, lowp > lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00579">type_mat.hpp:579</a></div></div>
+<div class="ttc" id="a00158_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00192">type_mat.hpp:192</a></div></div>
+<div class="ttc" id="a00158_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00164">type_mat.hpp:164</a></div></div>
+<div class="ttc" id="a00158_html_ga27ccd1bcb24920508a7b6a24bd9265ab"><div class="ttname"><a href="a00158.html#ga27ccd1bcb24920508a7b6a24bd9265ab">glm::lowp_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, lowp > lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00515">type_mat.hpp:515</a></div></div>
+<div class="ttc" id="a00157_html_gac44263f56ff3cbf0a9cc4e2405d5ecb8"><div class="ttname"><a href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">glm::dmat3x3</a></div><div class="ttdeci">highp_dmat3x3 dmat3x3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00742">type_mat.hpp:742</a></div></div>
+<div class="ttc" id="a00158_html_gab2d4fd5cd286baff8364a7a3f60c8a21"><div class="ttname"><a href="a00158.html#gab2d4fd5cd286baff8364a7a3f60c8a21">glm::highp_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, highp > highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00527">type_mat.hpp:527</a></div></div>
+<div class="ttc" id="a00158_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00053">type_mat.hpp:53</a></div></div>
+<div class="ttc" id="a00158_html_gac1c87c16d6dcb7449bc3c779ccdc5c30"><div class="ttname"><a href="a00158.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">glm::highp_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, highp > highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00504">type_mat.hpp:504</a></div></div>
+<div class="ttc" id="a00158_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, lowp > lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00263">type_mat.hpp:263</a></div></div>
+<div class="ttc" id="a00157_html_ga38d9bfca882ec542b1928cf77b5c2091"><div class="ttname"><a href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">glm::dmat3x4</a></div><div class="ttdeci">highp_dmat3x4 dmat3x4</div><div class="ttdoc">3 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00747">type_mat.hpp:747</a></div></div>
+<div class="ttc" id="a00157_html_gaddd230c88fbd6ec33242329be3a1b738"><div class="ttname"><a href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">glm::dmat2x4</a></div><div class="ttdeci">highp_dmat2x4 dmat2x4</div><div class="ttdoc">2 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00732">type_mat.hpp:732</a></div></div>
+<div class="ttc" id="a00157_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00394">type_mat.hpp:394</a></div></div>
+<div class="ttc" id="a00158_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, highp > highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00100">type_mat.hpp:100</a></div></div>
+<div class="ttc" id="a00158_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4< float, mediump > mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00119">type_mat.hpp:119</a></div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_ga97b38ea24e9ebf58eac04a8d99dc3e27"><div class="ttname"><a href="a00157.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">glm::dmat4</a></div><div class="ttdeci">highp_dmat4x4 dmat4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00717">type_mat.hpp:717</a></div></div>
+<div class="ttc" id="a00158_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, lowp > lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00138">type_mat.hpp:138</a></div></div>
+<div class="ttc" id="a00158_html_gaf98afd25f7e3e8f1d73bca020d0d8ea6"><div class="ttname"><a href="a00158.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">glm::highp_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, highp > highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00481">type_mat.hpp:481</a></div></div>
+<div class="ttc" id="a00157_html_gae174ff65e148bb7dec4bf10a63cb46ff"><div class="ttname"><a href="a00157.html#gae174ff65e148bb7dec4bf10a63cb46ff">glm::dmat3</a></div><div class="ttdeci">highp_dmat3x3 dmat3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00114_source.html#l00712">type_mat.hpp:712</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00115.html b/doc/api/a00115.html
index bc126d2..1d339c3 100644
--- a/doc/api/a00115.html
+++ b/doc/api/a00115.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_aligned.hpp File Reference</title>
+<title>0.9.8: type_mat2x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,454 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_aligned.hpp File Reference</div> </div>
+<div class="title">type_mat2x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00115_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
-<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
-<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
-<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
-<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
-<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
-<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
-<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
-<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
-<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
-<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
-<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
-<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
-<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
-<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
-<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
-<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
-<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
-<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
-<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
-<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
-<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
-<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
-<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
-<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
-<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
-<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
-<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
-<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
-<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
-<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
-<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
-<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
-<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
-<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
-<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
-<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
-<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
-<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
-<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
-<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
-<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
-<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
-<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
-<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
-<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
-<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
-<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
-<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
-<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
-<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
-<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
-<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
-<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
-<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
-<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
-<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
-<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
-<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
-<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
-<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
-<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
-<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
-<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
-<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
-<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
-<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
-<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
-<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
-<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
-<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
-<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
-<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
-<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
-<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
-<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
-<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
-<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
-<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
-<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
-<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
-<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
-<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
-<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
-<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
-<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
-<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
-<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
-<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
-<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
-<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
-<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
-<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
-<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
-<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
-<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
-<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
-<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
-<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
-<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
-<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
-<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
-<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
-<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
-<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
-<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
-<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
-<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
-<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
-<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
-<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
-<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
-<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
-<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
-<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
-<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
-<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
-<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
-<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
-<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
-<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
-<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
-<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
-<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
-<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
-<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
-<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
-<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
-<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
-<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
-<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
-<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
-<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
-<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
-<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
-<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
-<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
-<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
-<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
-<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
-<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
-<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
-<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
-<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
-<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
-<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
-<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
-<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
-<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
-<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
-<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
-<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
-<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
-<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
-<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
-<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
-<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
-<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
-<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
-<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
-<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
-<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
-<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
-<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
-<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
-<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
-<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
-<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
-<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
-<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
-<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
-<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
-<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
-<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
-<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
-<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
-<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
-<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
-<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
-<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
-<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
-<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
-<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
-<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
-<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
-<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
-<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
-<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
-<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
-<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
-<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
-<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
-<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
-<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
-<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
-<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
-<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
-<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
-<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
-<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
-<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
-<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
-<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
-<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
-<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
-<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
-<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
-<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
-<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
-<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00238.html">GLM_GTX_type_aligned</a></p>
-<dl class="section date"><dt>Date</dt><dd>2014-11-23 / 2014-12-23 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00115_source.html">type_aligned.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00115_source.html">type_mat2x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00115_source.html b/doc/api/a00115_source.html
index 358ff36..3ec6500 100644
--- a/doc/api/a00115_source.html
+++ b/doc/api/a00115_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_aligned.hpp Source File</title>
+<title>0.9.8: type_mat2x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,707 +41,199 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_aligned.hpp</div> </div>
+<div class="title">type_mat2x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00115.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/type_precision.hpp"</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">struct </span>tmat2x2</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tmat2x2<T, P> type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat2x2<T, P> transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> col_type value[2];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL tmat2x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat2x2(tmat2x2<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> template <precision Q></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x2(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL explicit tmat2x2(T scalar);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> T const & x1, T const & y1,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T const & x2, T const & y2);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> col_type const & v1,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> col_type const & v2);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> template <typename U, typename V, typename M, typename N></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> U const & x1, V const & y1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> M const & x2, N const & y2);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_type_aligned extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Signed int vector types </span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>, aligned_lowp_int8, 1);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>, aligned_lowp_int16, 2);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>, aligned_lowp_int32, 4);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> template <typename U, typename V></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL tmat2x2(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> tvec2<U, P> const & v1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tvec2<V, P> const & v2);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2<U, Q> const & m);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>, aligned_lowp_int64, 8);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>, aligned_lowp_int8_t, 1);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>, aligned_lowp_int16_t, 2);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>, aligned_lowp_int32_t, 4);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>, aligned_lowp_int64_t, 8);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>, aligned_lowp_i8, 1);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<T, P> const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> template <typename U></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> const & m);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> template <typename U></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> template <typename U></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> const & m);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> template <typename U></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> template <typename U></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> const & m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> template <typename U></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename U></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> const & m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> template <typename U></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename U></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> const & m);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>, aligned_lowp_i16, 2);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>, aligned_lowp_i32, 4);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL tmat2x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL tmat2x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> };</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>, aligned_lowp_i64, 8);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> template <typename T, precision P></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>, aligned_mediump_int8, 1);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>, aligned_mediump_int16, 2);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> template <typename T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> template <typename T, precision P></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T scalar);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>, aligned_mediump_int32, 4);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>, aligned_mediump_int64, 8);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> template <typename T, precision P></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(T scalar, tmat2x2<T, P> const & m);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> template <typename T, precision P></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T scalar);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>, aligned_mediump_int8_t, 1);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>, aligned_mediump_int16_t, 2);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>, aligned_mediump_int32_t, 4);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(T scalar, tmat2x2<T, P> const & m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename T, precision P></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(T scalar, tmat2x2<T, P> const & m);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>, aligned_mediump_int64_t, 8);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>, aligned_mediump_i8, 1);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator*(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename T, precision P></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator*(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>, aligned_mediump_i16, 2);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>, aligned_mediump_i32, 4);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>, aligned_mediump_i64, 8);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> template <typename T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> template <typename T, precision P></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(T scalar, tmat2x2<T, P> const & m);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>, aligned_highp_int8, 1);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>, aligned_highp_int16, 2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator/(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> template <typename T, precision P></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>, aligned_highp_int32, 4);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>, aligned_highp_int64, 8);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> template <typename T, precision P></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> template <typename T, precision P></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> } <span class="comment">//namespace glm</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>, aligned_highp_int8_t, 1);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>, aligned_highp_int16_t, 2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>, aligned_highp_int32_t, 4);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>, aligned_highp_int64_t, 8);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>, aligned_highp_i8, 1);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>, aligned_highp_i16, 2);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>, aligned_highp_i32, 4);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>, aligned_highp_i64, 8);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int8, aligned_int8, 1);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int16, aligned_int16, 2);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int32, aligned_int32, 4);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(int64, aligned_int64, 8);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>, aligned_int8_t, 1);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>, aligned_int16_t, 2);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>, aligned_int32_t, 4);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>, aligned_int64_t, 8);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>, aligned_i8, 1);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>, aligned_i16, 2);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>, aligned_i32, 4);</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>, aligned_i64, 8);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(ivec1, aligned_ivec1, 4);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>, aligned_ivec2, 8);</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>, aligned_ivec3, 16);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>, aligned_ivec4, 16);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>, aligned_i8vec1, 1);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>, aligned_i8vec2, 2);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>, aligned_i8vec3, 4);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>, aligned_i8vec4, 4);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>, aligned_i16vec1, 2);</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>, aligned_i16vec2, 4);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>, aligned_i16vec3, 8);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>, aligned_i16vec4, 8);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>, aligned_i32vec1, 4);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>, aligned_i32vec2, 8);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>, aligned_i32vec3, 16);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>, aligned_i32vec4, 16);</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>, aligned_i64vec1, 8);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>, aligned_i64vec2, 16);</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>, aligned_i64vec3, 32);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>, aligned_i64vec4, 32);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Unsigned int vector types</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>, aligned_lowp_uint8, 1);</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>, aligned_lowp_uint16, 2);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>, aligned_lowp_uint32, 4);</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>, aligned_lowp_uint64, 8);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>, aligned_lowp_uint8_t, 1);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>, aligned_lowp_uint16_t, 2);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>, aligned_lowp_uint32_t, 4);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>, aligned_lowp_uint64_t, 8);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>, aligned_lowp_u8, 1);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>, aligned_lowp_u16, 2);</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>, aligned_lowp_u32, 4);</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>, aligned_lowp_u64, 8);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>, aligned_mediump_uint8, 1);</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>, aligned_mediump_uint16, 2);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>, aligned_mediump_uint32, 4);</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>, aligned_mediump_uint64, 8);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>, aligned_mediump_uint8_t, 1);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>, aligned_mediump_uint16_t, 2);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>, aligned_mediump_uint32_t, 4);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>, aligned_mediump_uint64_t, 8);</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>, aligned_mediump_u8, 1);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>, aligned_mediump_u16, 2);</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>, aligned_mediump_u32, 4);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>, aligned_mediump_u64, 8);</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>, aligned_highp_uint8, 1);</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>, aligned_highp_uint16, 2);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>, aligned_highp_uint32, 4);</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>, aligned_highp_uint64, 8);</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>, aligned_highp_uint8_t, 1);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>, aligned_highp_uint16_t, 2);</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>, aligned_highp_uint32_t, 4);</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>, aligned_highp_uint64_t, 8);</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>, aligned_highp_u8, 1);</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>, aligned_highp_u16, 2);</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>, aligned_highp_u32, 4);</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>, aligned_highp_u64, 8);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint8, aligned_uint8, 1);</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint16, aligned_uint16, 2);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint32, aligned_uint32, 4);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uint64, aligned_uint64, 8);</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>, aligned_uint8_t, 1);</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>, aligned_uint16_t, 2);</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>, aligned_uint32_t, 4);</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>, aligned_uint64_t, 8);</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>, aligned_u8, 1);</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>, aligned_u16, 2);</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>, aligned_u32, 4);</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>, aligned_u64, 8);</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(uvec1, aligned_uvec1, 4);</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>, aligned_uvec2, 8);</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>, aligned_uvec3, 16);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>, aligned_uvec4, 16);</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>, aligned_u8vec1, 1);</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>, aligned_u8vec2, 2);</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>, aligned_u8vec3, 4);</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>, aligned_u8vec4, 4);</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>, aligned_u16vec1, 2);</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>, aligned_u16vec2, 4);</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>, aligned_u16vec3, 8);</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>, aligned_u16vec4, 8);</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>, aligned_u32vec1, 4);</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>, aligned_u32vec2, 8);</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>, aligned_u32vec3, 16);</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>, aligned_u32vec4, 16);</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>, aligned_u64vec1, 8);</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>, aligned_u64vec2, 16);</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>, aligned_u64vec3, 32);</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>, aligned_u64vec4, 32);</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_float32, 4);</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_float64, 8);</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>, aligned_float32_t, 4);</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>, aligned_float64_t, 8);</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float32, aligned_f32, 4);</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(float64, aligned_f64, 8);</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> </div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(vec1, aligned_vec1, 4);</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>, aligned_vec2, 8);</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>, aligned_vec3, 16);</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>, aligned_vec4, 16);</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>, aligned_fvec1, 4);</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>, aligned_fvec2, 8);</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>, aligned_fvec3, 16);</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>, aligned_fvec4, 16);</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>, aligned_f32vec1, 4);</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>, aligned_f32vec2, 8);</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>, aligned_f32vec3, 16);</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>, aligned_f32vec4, 16);</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dvec1, aligned_dvec1, 8);</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>, aligned_dvec2, 16);</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>, aligned_dvec3, 32);</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>, aligned_dvec4, 32);</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> </div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>, aligned_f64vec1, 8);</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>, aligned_f64vec2, 16);</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>, aligned_f64vec3, 32);</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>, aligned_f64vec4, 32);</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> </div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="comment">//typedef detail::tmat1<f32> mat1;</span></div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>, aligned_mat2, 16);</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>, aligned_mat3, 16);</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>, aligned_mat4, 16);</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="comment">//typedef detail::tmat1x1<f32> mat1;</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>, aligned_mat2x2, 16);</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>, aligned_mat3x3, 16);</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>, aligned_mat4x4, 16);</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> </div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="comment">//typedef detail::tmat1x1<f32> fmat1;</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2, 16);</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> </div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3, 16);</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4, 16);</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> </div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> </div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="comment">//typedef f32 fmat1x1;</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> </div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>, aligned_fmat2x2, 16);</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>, aligned_fmat2x3, 16);</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> </div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>, aligned_fmat2x4, 16);</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>, aligned_fmat3x2, 16);</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> </div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>, aligned_fmat3x3, 16);</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>, aligned_fmat3x4, 16);</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> </div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>, aligned_fmat4x2, 16);</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>, aligned_fmat4x3, 16);</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> </div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>, aligned_fmat4x4, 16);</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> </div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment">//typedef detail::tmat1x1<f32, defaultp> f32mat1;</span></div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> </div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2, 16);</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3, 16);</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4, 16);</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> </div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> </div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment">//typedef f32 f32mat1x1;</span></div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> </div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>, aligned_f32mat2x2, 16);</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> </div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>, aligned_f32mat2x3, 16);</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>, aligned_f32mat2x4, 16);</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>, aligned_f32mat3x2, 16);</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>, aligned_f32mat3x3, 16);</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> </div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>, aligned_f32mat3x4, 16);</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>, aligned_f32mat4x2, 16);</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> </div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>, aligned_f32mat4x3, 16);</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> </div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>, aligned_f32mat4x4, 16);</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> </div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="comment">//typedef detail::tmat1x1<f64, defaultp> f64mat1;</span></div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2, 32);</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3, 32);</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4, 32);</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> </div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment">//typedef f64 f64mat1x1;</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> </div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>, aligned_f64mat2x2, 32);</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>, aligned_f64mat2x3, 32);</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>, aligned_f64mat2x4, 32);</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>, aligned_f64mat3x2, 32);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> </div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>, aligned_f64mat3x3, 32);</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> </div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>, aligned_f64mat3x4, 32);</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> </div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>, aligned_f64mat4x2, 32);</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>, aligned_f64mat4x3, 32);</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> </div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>, aligned_f64mat4x4, 32);</div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> </div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> </div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(quat, aligned_quat, 16);</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> </div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(fquat, aligned_fquat, 16);</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> </div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(dquat, aligned_dquat, 32);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> </div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>, aligned_f32quat, 16);</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <a class="code" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a>(<a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>, aligned_f64quat, 32);</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> </div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> </div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="preprocessor">#include "type_aligned.inl"</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00163_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00163.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00449">type_vec.hpp:449</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00163_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00417">type_vec.hpp:417</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00238_html_ga95cc03b8b475993fa50e05e38e203303"><div class="ttname"><a href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">glm::GLM_ALIGNED_TYPEDEF</a></div><div class="ttdeci">GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)</div><div class="ttdoc">Double-precision floating-point aligned quaternion. </div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00163_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00476">type_vec.hpp:476</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00163_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00427">type_vec.hpp:427</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00385">type_mat.hpp:385</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00163_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00405">type_mat.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00163_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00422">type_vec.hpp:422</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00163_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00444">type_vec.hpp:444</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#include "type_mat2x2.inl"</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00116.html b/doc/api/a00116.html
index a2b0345..2d148c5 100644
--- a/doc/api/a00116.html
+++ b/doc/api/a00116.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_float.hpp File Reference</title>
+<title>0.9.8: type_mat2x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,39 +45,16 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_float.hpp File Reference</div> </div>
+<div class="title">type_mat2x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00116_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
-<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
-<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
-<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
-<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
-<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00116_source.html">type_mat2x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00116_source.html b/doc/api/a00116_source.html
index 1391f9f..5676b29 100644
--- a/doc/api/a00116_source.html
+++ b/doc/api/a00116_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_float.hpp Source File</title>
+<title>0.9.8: type_mat2x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,62 +46,177 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_float.hpp</div> </div>
+<div class="title">type_mat2x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00116.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat2x3</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat2x3<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat3x2<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[2];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat2x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat2x3(tmat2x3<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> lowp_float_t;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> mediump_float_t;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> highp_float_t;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x3(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat2x3(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x0, T y0, T z0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x1, T y1, T z1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> col_type const & v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v1);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> X2 x2, Y2 y2, Z2 z2);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1"> 56</a></span> <span class="keyword">typedef</span> lowp_float_t <a class="code" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> template <typename U, typename V></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tmat2x3(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tvec3<U, P> const & v1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> tvec3<V, P> const & v2);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98"> 63</a></span> <span class="keyword">typedef</span> mediump_float_t <a class="code" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="a00164.html#ga6e95694987ba35af6f736638be39626a"> 70</a></span> <span class="keyword">typedef</span> highp_float_t <a class="code" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3<U, Q> const & m);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> mediump_float float_t;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> highp_float float_t;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> mediump_float float_t;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> lowp_float float_t;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for floating-point types"</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1"> 84</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a>;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00181.html#gab5596d48586414c91ccb270962dc14d3"> 85</a></span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// check type sizes</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a>) == 4, <span class="stringliteral">"float32 size isn't 4 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a>) == 8, <span class="stringliteral">"float64 size isn't 8 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga358d69e11b1c0f6c7c469e0d39ab7fd1"><div class="ttname"><a href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">glm::lowp_float</a></div><div class="ttdeci">lowp_float_t lowp_float</div><div class="ttdoc">Low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00056">type_float.hpp:56</a></div></div>
-<div class="ttc" id="a00181_html_gad3c127f8bf8d7d4e738037c257abb5b1"><div class="ttname"><a href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">glm::float32</a></div><div class="ttdeci">float float32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00084">type_float.hpp:84</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00164_html_ga280c68f537f4b1e03a00b23e62573b98"><div class="ttname"><a href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">glm::mediump_float</a></div><div class="ttdeci">mediump_float_t mediump_float</div><div class="ttdoc">Medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00063">type_float.hpp:63</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00181_html_gab5596d48586414c91ccb270962dc14d3"><div class="ttname"><a href="a00181.html#gab5596d48586414c91ccb270962dc14d3">glm::float64</a></div><div class="ttdeci">double float64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00085">type_float.hpp:85</a></div></div>
-<div class="ttc" id="a00164_html_ga6e95694987ba35af6f736638be39626a"><div class="ttname"><a href="a00164.html#ga6e95694987ba35af6f736638be39626a">glm::highp_float</a></div><div class="ttdeci">highp_float_t highp_float</div><div class="ttdoc">High precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00116_source.html#l00070">type_float.hpp:70</a></div></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> template <typename U></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<U, P> const & m);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> template <typename U></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tmat2x3<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> template <typename U></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat2x3<T, P> & operator+=(tmat2x3<U, P> const & m);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template <typename U></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> template <typename U></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-=(tmat2x3<U, P> const & m);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> template <typename U></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL tmat2x3<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat2x3<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat2x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat2x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> template <typename T, precision P></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> template <typename T, precision P></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> template <typename T, precision P></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> template <typename T, precision P></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> template <typename T, precision P></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> template <typename T, precision P></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(T scalar, tmat2x3<T, P> const & m);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename T, precision P></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator*(tmat2x3<T, P> const & m, typename tmat2x3<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL typename tmat2x3<T, P>::row_type operator*(typename tmat2x3<T, P>::col_type const & v, tmat2x3<T, P> const & m);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename T, precision P></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> template <typename T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat2x3<T, P> operator/(T scalar, tmat2x3<T, P> const & m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> template <typename T, precision P></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> template <typename T, precision P></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#include "type_mat2x3.inl"</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00117.html b/doc/api/a00117.html
index 71e0850..e3d9fb6 100644
--- a/doc/api/a00117.html
+++ b/doc/api/a00117.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_gentype.hpp File Reference</title>
+<title>0.9.8: type_mat2x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_gentype.hpp File Reference</div> </div>
+<div class="title">type_mat2x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00117_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-10-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00117_source.html">type_gentype.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00117_source.html">type_mat2x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00117_source.html b/doc/api/a00117_source.html
index ce00b87..2b52cab 100644
--- a/doc/api/a00117_source.html
+++ b/doc/api/a00117_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_gentype.hpp Source File</title>
+<title>0.9.8: type_mat2x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,197 +46,179 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_gentype.hpp</div> </div>
+<div class="title">type_mat2x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00117.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat2x4</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat2x4<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat4x2<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[2];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat2x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat2x4(tmat2x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">enum</span> profile</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> nice,</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> fast,</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> simd</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> };</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x4(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat2x4(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x1, T y1, T z1, T w1);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> col_type const & v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v1);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> std::size_t sizeType;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typename</span> VALTYPE, </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>TYPE</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> ></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">struct </span>genType</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">enum</span> ctor{null};</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> template <</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> typename X2, typename Y2, typename Z2, typename W2></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> X2 x2, Y2 y2, Z2 z2, W2 w2);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> template <typename U, typename V></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL tmat2x4(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tvec4<U, P> const & v1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> tvec4<V, P> const & v2);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> VALTYPE value_type;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> VALTYPE & value_reference;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">typedef</span> VALTYPE * value_pointer;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">typedef</span> VALTYPE <span class="keyword">const</span> * value_const_pointer;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> TYPE<bool> bool_type;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">typedef</span> sizeType size_type;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> is_vector();</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> is_matrix();</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> TYPE<VALTYPE> type;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">typedef</span> TYPE<VALTYPE> * pointer;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> * const_pointer;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> * <span class="keyword">const</span> const_pointer_const;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> TYPE<VALTYPE> * <span class="keyword">const</span> pointer_const;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> TYPE<VALTYPE> & reference;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> & const_reference;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> TYPE<VALTYPE> <span class="keyword">const</span> & param_type;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4<U, Q> const & m);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Address (Implementation details)</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> value_const_pointer value_address()<span class="keyword"> const</span>{<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> value_pointer value_address(){<span class="keywordflow">return</span> value_pointer(<span class="keyword">this</span>);}</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">//protected:</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// enum kind</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// {</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// GEN_TYPE,</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// VEC_TYPE,</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// MAT_TYPE</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// };</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// typedef typename TYPE::kind kind;</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typename</span> VALTYPE, </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span> <<span class="keyword">typename</span>> <span class="keyword">class </span>TYPE</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> ></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> genType<VALTYPE, TYPE>::is_vector()</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice></span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> class base</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment"> {</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> public:</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> // Traits</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"></span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> typedef sizeType size_type;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> typedef valTypeT value_type;</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"></span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> typedef base<value_type, colT, rowT> class_type;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"></span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> typedef base<bool, colT, rowT> bool_type;</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> typedef base<value_type, rowT, 1> col_type;</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> typedef base<value_type, colT, 1> row_type;</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> typedef base<value_type, rowT, colT> transpose_type;</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"></span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> static size_type col_size();</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment"> static size_type row_size();</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment"> static size_type value_size();</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment"> static bool is_scalar();</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> static bool is_vector();</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> static bool is_matrix();</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment"></span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment"> private:</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment"> // Data </span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment"> col_type value[colT]; </span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"></span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment"> public:</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"> // Constructors</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment"> base();</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"> base(class_type const & m);</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment"></span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment"> explicit base(T const & x);</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"> explicit base(value_type const * const x);</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> explicit base(col_type const * const x);</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"> // Conversions</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> template <typename vU, uint cU, uint rU, profile pU></span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"> explicit base(base<vU, cU, rU, pU> const & m);</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment"></span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> // Accesses</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment"> col_type& operator[](size_type i);</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> col_type const & operator[](size_type i) const;</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment"></span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment"> // Unary updatable operators</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment"> class_type& operator= (class_type const & x);</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment"> class_type& operator+= (T const & x);</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment"> class_type& operator+= (class_type const & x);</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment"> class_type& operator-= (T const & x);</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> class_type& operator-= (class_type const & x);</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"> class_type& operator*= (T const & x);</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"> class_type& operator*= (class_type const & x);</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"> class_type& operator/= (T const & x);</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> class_type& operator/= (class_type const & x);</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> class_type& operator++ ();</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> class_type& operator-- ();</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"> };</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">*/</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">//template <typename T></span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">//struct traits</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">//{</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// static const bool is_signed = false;</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// static const bool is_float = false;</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// static const bool is_vector = false;</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// static const bool is_matrix = false;</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// static const bool is_genType = false;</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// static const bool is_genIType = false;</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// static const bool is_genUType = false;</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">//};</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">//template <></span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">//struct traits<half></span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">//{</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">//};</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">//template <></span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">//struct traits<float></span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">//{</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">//};</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">//template <></span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">//struct traits<double></span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">//{</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// static const bool is_float = true;</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// static const bool is_genType = true;</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">//};</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">//template <typename genType></span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">//struct desc</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">//{</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// typedef genType type;</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// typedef genType * pointer;</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// typedef genType const* const_pointer;</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// typedef genType const *const const_pointer_const;</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// typedef genType *const pointer_const;</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// typedef genType & reference;</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// typedef genType const& const_reference;</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// typedef genType const& param_type;</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// typedef typename genType::value_type value_type;</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// typedef typename genType::size_type size_type;</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">// static const typename size_type value_size;</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">//};</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">//template <typename genType></span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment">//const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">//#include "type_gentype.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> template <typename U></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<U, P> const & m);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> template <typename U></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat2x4<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template <typename U></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tmat2x4<T, P> & operator+=(tmat2x4<U, P> const & m);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> template <typename U></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> template <typename U></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-=(tmat2x4<U, P> const & m);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat2x4<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> template <typename U></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL tmat2x4<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tmat2x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL tmat2x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> template <typename T, precision P></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> template <typename T, precision P></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename T, precision P></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> template <typename T, precision P></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> template <typename T, precision P></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> template <typename T, precision P></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> template <typename T, precision P></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> template <typename T, precision P></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(T scalar, tmat2x4<T, P> const & m);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> template <typename T, precision P></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator*(tmat2x4<T, P> const & m, typename tmat2x4<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> template <typename T, precision P></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL typename tmat2x4<T, P>::row_type operator*(typename tmat2x4<T, P>::col_type const & v, tmat2x4<T, P> const & m);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> template <typename T, precision P></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> template <typename T, precision P></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat2x2<T, P> const & m2);</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> template <typename T, precision P></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> template <typename T, precision P></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> template <typename T, precision P></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tmat2x4<T, P> operator/(T scalar, tmat2x4<T, P> const & m);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> template <typename T, precision P></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> template <typename T, precision P></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#include "type_mat2x4.inl"</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00118.html b/doc/api/a00118.html
index b8d5885..b20072d 100644
--- a/doc/api/a00118.html
+++ b/doc/api/a00118.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_half.hpp File Reference</title>
+<title>0.9.8: type_mat3x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_half.hpp File Reference</div> </div>
+<div class="title">type_mat3x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00118_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-17 / 2011-09-20 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00118_source.html">type_half.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00118_source.html">type_mat3x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00118_source.html b/doc/api/a00118_source.html
index 6d9f673..6ad8609 100644
--- a/doc/api/a00118_source.html
+++ b/doc/api/a00118_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_half.hpp Source File</title>
+<title>0.9.8: type_mat3x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,28 +46,185 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_half.hpp</div> </div>
+<div class="title">type_mat3x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00118.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat3x2</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat3x2<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat2x3<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[3];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat3x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat3x2(tmat3x2<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> hdata;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL <span class="keywordtype">float</span> toFloat32(hdata value);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL hdata toFloat16(<span class="keywordtype">float</span> <span class="keyword">const</span> & value);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x2(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat3x2(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x0, T y0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x1, T y1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T x2, T y2);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> col_type const & v2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// -- Conversions --</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "type_half.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> template<</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> typename X1, typename Y1,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> typename X2, typename Y2,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> typename X3, typename Y3></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> X3 x3, Y3 y3);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> template <typename V1, typename V2, typename V3></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL tmat3x2(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec2<V1, P> const & v1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec2<V2, P> const & v2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec2<V3, P> const & v3);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2<U, Q> const & m);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> template <typename U></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<U, P> const & m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> template <typename U></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat3x2<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename U></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat3x2<T, P> & operator+=(tmat3x2<U, P> const & m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> template <typename U></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename U></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-=(tmat3x2<U, P> const & m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> template <typename U></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tmat3x2<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat3x2<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tmat3x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat3x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> template <typename T, precision P></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename T, precision P></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename T, precision P></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> template <typename T, precision P></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> template <typename T, precision P></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> template <typename T, precision P></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename T, precision P></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(T scalar, tmat3x2<T, P> const & m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename T, precision P></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator*(tmat3x2<T, P> const & m, typename tmat3x2<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <typename T, precision P></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL typename tmat3x2<T, P>::row_type operator*(typename tmat3x2<T, P>::col_type const & v, tmat3x2<T, P> const & m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename T, precision P></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> template <typename T, precision P></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> template <typename T, precision P></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> template <typename T, precision P></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> template <typename T, precision P></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat3x2<T, P> operator/(T scalar, tmat3x2<T, P> const & m);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#include "type_mat3x2.inl"</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00119.html b/doc/api/a00119.html
index 16c37c7..e9913ca 100644
--- a/doc/api/a00119.html
+++ b/doc/api/a00119.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_int.hpp File Reference</title>
+<title>0.9.8: type_mat3x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,59 +45,16 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_int.hpp File Reference</div> </div>
+<div class="title">type_mat3x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00119_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
-<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
-<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
-<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
-<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
-<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
-<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
-<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
-<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
-<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
-<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
-<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
-<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
-<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
-<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
-<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2013-03-30 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00119_source.html">type_mat3x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00119_source.html b/doc/api/a00119_source.html
index 0c1ea7c..bb6b531 100644
--- a/doc/api/a00119_source.html
+++ b/doc/api/a00119_source.html
@@ -1,343 +1,252 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_int.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">type_int.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00119.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#if GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># include <type_traits></span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include <cstdint></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"># if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a> <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a> <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a> <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a> <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a> <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a> <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a> <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> sint64;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">typedef</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_VC</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> __int64 sint64;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># elif GLM_COMPILER & GLM_COMPILER_GCC</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> __extension__ <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> __extension__ <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># else//unknown compiler</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sint64;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># endif//GLM_COMPILER</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">char</span> <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">short</span> <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">typedef</span> sint64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">typedef</span> uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#endif//</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> lowp_int_t;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> mediump_int_t;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">typedef</span> <span class="keywordtype">signed</span> <span class="keywordtype">int</span> highp_int_t;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lowp_uint_t;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mediump_uint_t;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> highp_uint_t;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># if GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">using</span> std::make_signed;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">using</span> std::make_unsigned;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># else//GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">struct </span>make_signed</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> {};</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">struct </span>make_signed<char></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> };</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">struct </span>make_signed<short></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>make_signed<int></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> };</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">struct </span>make_signed<long></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> };</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">struct </span>make_signed<long long></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">struct </span>make_signed<unsigned char></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> {</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">typedef</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> };</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">struct </span>make_signed<unsigned short></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">typedef</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> };</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">struct </span>make_signed<unsigned int></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">typedef</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">struct </span>make_signed<unsigned long></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> {</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> };</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">struct </span>make_signed<unsigned long long></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> };</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">struct </span>make_unsigned</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> {};</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">struct </span>make_unsigned<char></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> };</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">struct </span>make_unsigned<short></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">struct </span>make_unsigned<int></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> };</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">struct </span>make_unsigned<long></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> };</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">struct </span>make_unsigned<long long></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> };</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">struct </span>make_unsigned<unsigned char></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> type;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> };</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">struct </span>make_unsigned<unsigned short></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> type;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> };</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">struct </span>make_unsigned<unsigned int></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> {</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> };</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">struct </span>make_unsigned<unsigned long></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> };</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">struct </span>make_unsigned<unsigned long long></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> {</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> type;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> };</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"># endif//GLM_HAS_MAKE_SIGNED</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0"> 226</a></span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a>;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="a00181.html#ga302041c186d0d028bea31b711fe16759"> 227</a></span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f"> 228</a></span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a>;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e"> 229</a></span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865"> 231</a></span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a>;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d"> 232</a></span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d"> 233</a></span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a>;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="a00181.html#gab630f76c26b50298187f7889104d4b9c"> 234</a></span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a>;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e"> 244</a></span> <span class="keyword">typedef</span> detail::lowp_int_t <a class="code" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a>;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
-<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00164.html#ga212ef8f883878cb7430228a279a7d866"> 251</a></span> <span class="keyword">typedef</span> detail::mediump_int_t <a class="code" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a>;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc"> 258</a></span> <span class="keyword">typedef</span> detail::highp_int_t <a class="code" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97"> 265</a></span> <span class="keyword">typedef</span> detail::lowp_uint_t <a class="code" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a>;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e"> 272</a></span> <span class="keyword">typedef</span> detail::mediump_uint_t <a class="code" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a>;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf"> 279</a></span> <span class="keyword">typedef</span> detail::highp_uint_t <a class="code" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a>;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">typedef</span> mediump_int int_t;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">typedef</span> highp_int int_t;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">typedef</span> mediump_int int_t;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">typedef</span> lowp_int int_t;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for signed interger types"</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor">#if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">typedef</span> mediump_uint uint_t;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">typedef</span> highp_uint uint_t;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">typedef</span> mediump_uint uint_t;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">#elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">typedef</span> lowp_uint uint_t;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor"># error "GLM error: multiple default precision requested for unsigned interger types"</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14"> 308</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment">// check type sizes</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor">#ifndef GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a>) == 1, <span class="stringliteral">"int8 size isn't 1 byte on this platform"</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a>) == 2, <span class="stringliteral">"int16 size isn't 2 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a>) == 4, <span class="stringliteral">"int32 size isn't 4 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a>) == 8, <span class="stringliteral">"int64 size isn't 8 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a>) == 1, <span class="stringliteral">"uint8 size isn't 1 byte on this platform"</span>);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a>) == 2, <span class="stringliteral">"uint16 size isn't 2 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a>) == 4, <span class="stringliteral">"uint32 size isn't 4 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> GLM_STATIC_ASSERT(<span class="keyword">sizeof</span>(<a class="code" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a>) == 8, <span class="stringliteral">"uint64 size isn't 8 bytes on this platform"</span>);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="preprocessor">#endif//GLM_STATIC_ASSERT_NULL</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_ga8df669f4e7698dfe0c0354d92578d74f"><div class="ttname"><a href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">glm::int32</a></div><div class="ttdeci">detail::int32 int32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00228">type_int.hpp:228</a></div></div>
-<div class="ttc" id="a00181_html_ga36475e31b1992cfde54c1a6f5a148865"><div class="ttname"><a href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">glm::uint8</a></div><div class="ttdeci">detail::uint8 uint8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00231">type_int.hpp:231</a></div></div>
-<div class="ttc" id="a00181_html_ga41c6189f6485c2825d60fdc835b3a2b0"><div class="ttname"><a href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">glm::int8</a></div><div class="ttdeci">detail::int8 int8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00226">type_int.hpp:226</a></div></div>
-<div class="ttc" id="a00181_html_ga302041c186d0d028bea31b711fe16759"><div class="ttname"><a href="a00181.html#ga302041c186d0d028bea31b711fe16759">glm::int16</a></div><div class="ttdeci">detail::int16 int16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00227">type_int.hpp:227</a></div></div>
-<div class="ttc" id="a00181_html_ga13471cbbe74e4303a57f3743d007b74d"><div class="ttname"><a href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00232">type_int.hpp:232</a></div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00164_html_ga73e8a694d7fc69143cf25161d18d1dcf"><div class="ttname"><a href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">glm::highp_uint</a></div><div class="ttdeci">detail::highp_uint_t highp_uint</div><div class="ttdoc">High precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00279">type_int.hpp:279</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00164_html_gaaabe7eb044941ebf308b53a447d692dc"><div class="ttname"><a href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">glm::highp_int</a></div><div class="ttdeci">detail::highp_int_t highp_int</div><div class="ttdoc">High precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00258">type_int.hpp:258</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga212ef8f883878cb7430228a279a7d866"><div class="ttname"><a href="a00164.html#ga212ef8f883878cb7430228a279a7d866">glm::mediump_int</a></div><div class="ttdeci">detail::mediump_int_t mediump_int</div><div class="ttdoc">Medium precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00251">type_int.hpp:251</a></div></div>
-<div class="ttc" id="a00164_html_ga25ebc60727fc8b4a1167665f9ecdca97"><div class="ttname"><a href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">glm::lowp_uint</a></div><div class="ttdeci">detail::lowp_uint_t lowp_uint</div><div class="ttdoc">Low precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00265">type_int.hpp:265</a></div></div>
-<div class="ttc" id="a00164_html_gad0fa1e32e8b3552ed63556eca51c620e"><div class="ttname"><a href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">glm::lowp_int</a></div><div class="ttdeci">detail::lowp_int_t lowp_int</div><div class="ttdoc">Low precision signed integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00244">type_int.hpp:244</a></div></div>
-<div class="ttc" id="a00164_html_ga0b7e01c52b9e5bf3369761b79b5f4f8e"><div class="ttname"><a href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">glm::mediump_uint</a></div><div class="ttdeci">detail::mediump_uint_t mediump_uint</div><div class="ttdoc">Medium precision unsigned integer. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00272">type_int.hpp:272</a></div></div>
-<div class="ttc" id="a00181_html_ga5fa3ddcab56c789bc272ff5651faa12d"><div class="ttname"><a href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00233">type_int.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00181_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00181.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00234">type_int.hpp:234</a></div></div>
-<div class="ttc" id="a00181_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00229">type_int.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: type_mat3x3.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">type_mat3x3.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="a00119.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">struct </span>tmat3x3</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tmat3x3<T, P> type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat3x3<T, P> transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> col_type value[3];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL tmat3x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat3x3(tmat3x3<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> template <precision Q></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x3(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL explicit tmat3x3(T scalar);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> T x0, T y0, T z0,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x1, T y1, T z1,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x2, T y2, T z2);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> col_type const & v0,</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v1,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v2);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> template<</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> typename X3, typename Y3, typename Z3></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> X1 x1, Y1 y1, Z1 z1,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> X2 x2, Y2 y2, Z2 z2,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> X3 x3, Y3 y3, Z3 z3);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> template <typename V1, typename V2, typename V3></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> GLM_FUNC_DECL tmat3x3(</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> tvec3<V1, P> const & v1,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec3<V2, P> const & v2,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec3<V3, P> const & v3);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3<U, Q> const & m);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template <typename U></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<U, P> const & m);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> template <typename U></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat3x3<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> template <typename U></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL tmat3x3<T, P> & operator+=(tmat3x3<U, P> const & m);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat3x3<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> template <typename U></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL tmat3x3<T, P> & operator-=(tmat3x3<U, P> const & m);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename U></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat3x3<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <typename U></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat3x3<T, P> & operator*=(tmat3x3<U, P> const & m);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> template <typename U></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tmat3x3<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> template <typename U></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL tmat3x3<T, P> & operator/=(tmat3x3<U, P> const & m);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat3x3<T, P> & operator++();</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL tmat3x3<T, P> & operator--();</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tmat3x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tmat3x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename T, precision P></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> template <typename T, precision P></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename T, precision P></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> template <typename T, precision P></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(T scalar, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> template <typename T, precision P></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> template <typename T, precision P></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename T, precision P></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(T scalar, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename T, precision P></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <typename T, precision P></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename T, precision P></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(T scalar, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> template <typename T, precision P></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator*(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> template <typename T, precision P></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator*(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> template <typename T, precision P></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> template <typename T, precision P></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> template <typename T, precision P></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> template <typename T, precision P></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> template <typename T, precision P></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(T scalar, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> template <typename T, precision P></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> template <typename T, precision P></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL typename tmat3x3<T, P>::row_type operator/(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> template <typename T, precision P></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> template <typename T, precision P></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> template <typename T, precision P></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#include "type_mat3x3.inl"</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/a00120.html b/doc/api/a00120.html
index 667f81e..b85df2e 100644
--- a/doc/api/a00120.html
+++ b/doc/api/a00120.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat.hpp File Reference</title>
+<title>0.9.8: type_mat3x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,221 +45,16 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_mat.hpp File Reference</div> </div>
+<div class="title">type_mat3x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00120_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
-<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
-<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
-<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
-<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
-<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
-<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
-<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
-<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
-<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
-<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
-<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
-<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
-<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
-<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
-<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
-<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
-<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
-<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
-<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
-<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
-<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
-<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
-<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
-<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
-<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
-<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
-<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
-<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
-<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
-<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
-<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
-<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
-<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
-<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
-<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
-<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
-<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
-<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
-<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
-<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
-<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
-<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
-<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
-<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
-<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
-<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
-<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
-<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
-<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
-<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
-<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
-<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
-<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
-<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
-<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
-<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
-<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
-<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
-<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
-<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
-<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
-<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
-<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
-<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
-<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
-<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
-<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
-<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
-<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
-<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
-<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
-<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
-<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
-<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
-<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
-<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
-<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
-<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
-<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
-<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
-<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
-<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
-<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
-<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
-<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
-<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
-<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
-<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
-<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
-<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
-<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
-<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
-<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
-<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
-<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
-<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-01-26 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00120_source.html">type_mat3x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00120_source.html b/doc/api/a00120_source.html
index 995f267..2b9a784 100644
--- a/doc/api/a00120_source.html
+++ b/doc/api/a00120_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat.hpp Source File</title>
+<title>0.9.8: type_mat3x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,414 +46,184 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat.hpp</div> </div>
+<div class="title">type_mat3x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00120.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat3x4</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat3x4<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat4x3<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[3];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat3x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">class</span>, precision> <span class="keyword">class </span>colType, <span class="keyword">template</span> <<span class="keyword">class</span>, precision> <span class="keyword">class </span>rowType></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>outerProduct_trait{};</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec2;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec3;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec4;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x2;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x3;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat2x4;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x2;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x3;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat3x4;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x2;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tmat4x4;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x4(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat3x4(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x0, T y0, T z0, T w0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x1, T y1, T z1, T w1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T x2, T y2, T z2, T w2);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> col_type const & v2);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> template<</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> typename X3, typename Y3, typename Z3, typename W3></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> X1 x1, Y1 y1, Z1 z1, W1 w1,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> X2 x2, Y2 y2, Z2 z2, W2 w2,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> X3 x3, Y3 y3, Z3 z3, W3 w3);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85"> 65</a></span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a>;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47"> 72</a></span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a>;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0"> 79</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981"> 86</a></span> <span class="keyword">typedef</span> tmat2x2<float, lowp> <a class="code" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a>;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74"> 93</a></span> <span class="keyword">typedef</span> tmat2x2<float, mediump> <a class="code" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a>;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00164.html#gae6a747cfc33928652abcb1347712b231"> 100</a></span> <span class="keyword">typedef</span> tmat2x2<float, highp> <a class="code" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a>;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d"> 112</a></span> <span class="keyword">typedef</span> tmat2x3<float, lowp> <a class="code" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a>;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09"> 119</a></span> <span class="keyword">typedef</span> tmat2x3<float, mediump> <a class="code" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b"> 126</a></span> <span class="keyword">typedef</span> tmat2x3<float, highp> <a class="code" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="a00164.html#gad64a0179b75508142a72917854034b9b"> 138</a></span> <span class="keyword">typedef</span> tmat2x4<float, lowp> <a class="code" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a>;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe"> 145</a></span> <span class="keyword">typedef</span> tmat2x4<float, mediump> <a class="code" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493"> 152</a></span> <span class="keyword">typedef</span> tmat2x4<float, highp> <a class="code" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a>;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924"> 164</a></span> <span class="keyword">typedef</span> tmat3x2<float, lowp> <a class="code" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9"> 171</a></span> <span class="keyword">typedef</span> tmat3x2<float, mediump> <a class="code" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a>;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a"> 178</a></span> <span class="keyword">typedef</span> tmat3x2<float, highp> <a class="code" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a>;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783"> 190</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a>;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b"> 197</a></span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a>;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd"> 204</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a>;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="a00164.html#gab7ca36023fa56d8006341a192ee09260"> 211</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a>;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec"> 218</a></span> <span class="keyword">typedef</span> tmat3x3<float, mediump> <a class="code" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a>;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd"> 225</a></span> <span class="keyword">typedef</span> tmat3x3<float, highp> <a class="code" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a>;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e"> 237</a></span> <span class="keyword">typedef</span> tmat3x4<float, lowp> <a class="code" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a>;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24"> 244</a></span> <span class="keyword">typedef</span> tmat3x4<float, mediump> <a class="code" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a>;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
-<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="a00164.html#ga117d8a040e738396a3d60368605623d2"> 251</a></span> <span class="keyword">typedef</span> tmat3x4<float, highp> <a class="code" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a>;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93"> 263</a></span> <span class="keyword">typedef</span> tmat4x2<float, lowp> <a class="code" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d"> 270</a></span> <span class="keyword">typedef</span> tmat4x2<float, mediump> <a class="code" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a>;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="a00164.html#gaeea75c96b308be4114e0badf49f58075"> 277</a></span> <span class="keyword">typedef</span> tmat4x2<float, highp> <a class="code" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a>;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f"> 289</a></span> <span class="keyword">typedef</span> tmat4x3<float, lowp> <a class="code" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a>;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb"> 296</a></span> <span class="keyword">typedef</span> tmat4x3<float, mediump> <a class="code" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f"> 303</a></span> <span class="keyword">typedef</span> tmat4x3<float, highp> <a class="code" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a>;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0"> 316</a></span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a>;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a"> 323</a></span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a>;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0"> 330</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a>;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa"> 337</a></span> <span class="keyword">typedef</span> tmat4x4<float, lowp> <a class="code" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a>;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="a00164.html#ga535614d97234065ab44b2513667c8563"> 344</a></span> <span class="keyword">typedef</span> tmat4x4<float, mediump> <a class="code" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a>;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead"> 351</a></span> <span class="keyword">typedef</span> tmat4x4<float, highp> <a class="code" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment">// Float definition</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">typedef</span> lowp_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="keyword">typedef</span> lowp_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">typedef</span> lowp_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">typedef</span> lowp_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">typedef</span> lowp_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">typedef</span> lowp_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">typedef</span> lowp_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">typedef</span> lowp_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">typedef</span> lowp_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">typedef</span> mediump_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">typedef</span> mediump_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">typedef</span> mediump_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">typedef</span> mediump_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">typedef</span> mediump_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">typedef</span> mediump_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">typedef</span> mediump_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">typedef</span> mediump_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">typedef</span> mediump_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#else </span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">typedef</span> highp_mat2x2 <a class="code" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="a00163.html#gafb063d734266e92915d87f8943560471"> 390</a></span> <span class="keyword">typedef</span> highp_mat2x3 <a class="code" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac"> 395</a></span> <span class="keyword">typedef</span> highp_mat2x4 <a class="code" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4"> 400</a></span> <span class="keyword">typedef</span> highp_mat3x2 <a class="code" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a>;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1"> 405</a></span> <span class="keyword">typedef</span> highp_mat3x3 <a class="code" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a>;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf"> 410</a></span> <span class="keyword">typedef</span> highp_mat3x4 <a class="code" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f"> 415</a></span> <span class="keyword">typedef</span> highp_mat4x2 <a class="code" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a>;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd"> 420</a></span> <span class="keyword">typedef</span> highp_mat4x3 <a class="code" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a>;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81"> 425</a></span> <span class="keyword">typedef</span> highp_mat4x4 <a class="code" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a>;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450"> 432</a></span> <span class="keyword">typedef</span> mat2x2 <a class="code" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a>;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="a00163.html#ga6dd3ec98a548755676267e59142911f8"> 437</a></span> <span class="keyword">typedef</span> mat3x3 <a class="code" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a>;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
-<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="a00163.html#gade0eb47c01f79384a6f38017ede17446"> 442</a></span> <span class="keyword">typedef</span> mat4x4 <a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a>;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="comment">// Double definition</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00164.html#gae0a526a0143fc69d7b317c078d591654"> 454</a></span> <span class="keyword">typedef</span> tmat2x2<double, lowp> <a class="code" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
-<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d"> 460</a></span> <span class="keyword">typedef</span> tmat2x2<double, mediump> <a class="code" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8"> 466</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
-<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd"> 472</a></span> <span class="keyword">typedef</span> tmat2x2<double, lowp> <a class="code" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a>;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div>
-<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879"> 478</a></span> <span class="keyword">typedef</span> tmat2x2<double, mediump> <a class="code" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a>;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
-<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba"> 484</a></span> <span class="keyword">typedef</span> tmat2x2<double, highp> <a class="code" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a>;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0"> 495</a></span> <span class="keyword">typedef</span> tmat2x3<double, lowp> <a class="code" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a>;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246"> 501</a></span> <span class="keyword">typedef</span> tmat2x3<double, mediump> <a class="code" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a>;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
-<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6"> 507</a></span> <span class="keyword">typedef</span> tmat2x3<double, highp> <a class="code" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a>;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
-<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3"> 518</a></span> <span class="keyword">typedef</span> tmat2x4<double, lowp> <a class="code" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a>;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
-<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3"> 524</a></span> <span class="keyword">typedef</span> tmat2x4<double, mediump> <a class="code" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a>;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30"> 530</a></span> <span class="keyword">typedef</span> tmat2x4<double, highp> <a class="code" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a>;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
-<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab"> 541</a></span> <span class="keyword">typedef</span> tmat3x2<double, lowp> <a class="code" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a>;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
-<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b"> 547</a></span> <span class="keyword">typedef</span> tmat3x2<double, mediump> <a class="code" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a>;</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
-<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21"> 553</a></span> <span class="keyword">typedef</span> tmat3x2<double, highp> <a class="code" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a>;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03"> 564</a></span> <span class="keyword">typedef</span> tmat3x3<float, lowp> <a class="code" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
-<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5"> 570</a></span> <span class="keyword">typedef</span> tmat3x3<double, mediump> <a class="code" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a>;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
-<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d"> 576</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a>;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div>
-<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0"> 582</a></span> <span class="keyword">typedef</span> tmat3x3<double, lowp> <a class="code" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a>;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
-<div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1"> 588</a></span> <span class="keyword">typedef</span> tmat3x3<double, mediump> <a class="code" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a>;</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div>
-<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f"> 594</a></span> <span class="keyword">typedef</span> tmat3x3<double, highp> <a class="code" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a>;</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
-<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3"> 605</a></span> <span class="keyword">typedef</span> tmat3x4<double, lowp> <a class="code" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a>;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div>
-<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d"> 611</a></span> <span class="keyword">typedef</span> tmat3x4<double, mediump> <a class="code" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a>;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7"> 617</a></span> <span class="keyword">typedef</span> tmat3x4<double, highp> <a class="code" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a>;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
-<div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8"> 628</a></span> <span class="keyword">typedef</span> tmat4x2<double, lowp> <a class="code" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a>;</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9"> 634</a></span> <span class="keyword">typedef</span> tmat4x2<double, mediump> <a class="code" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a>;</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
-<div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="a00164.html#ga5ee028f50629bf451973b3a910973357"> 640</a></span> <span class="keyword">typedef</span> tmat4x2<double, highp> <a class="code" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a>;</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
-<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03"> 651</a></span> <span class="keyword">typedef</span> tmat4x3<double, lowp> <a class="code" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a>;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
-<div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc"> 657</a></span> <span class="keyword">typedef</span> tmat4x3<double, mediump> <a class="code" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a>;</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div>
-<div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a"> 663</a></span> <span class="keyword">typedef</span> tmat4x3<double, highp> <a class="code" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a>;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div>
-<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301"> 674</a></span> <span class="keyword">typedef</span> tmat4x4<double, lowp> <a class="code" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a>;</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
-<div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c"> 680</a></span> <span class="keyword">typedef</span> tmat4x4<double, mediump> <a class="code" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a>;</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
-<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a"> 686</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a>;</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9"> 692</a></span> <span class="keyword">typedef</span> tmat4x4<double, lowp> <a class="code" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a>;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
-<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12"> 698</a></span> <span class="keyword">typedef</span> tmat4x4<double, mediump> <a class="code" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a>;</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432"> 704</a></span> <span class="keyword">typedef</span> tmat4x4<double, highp> <a class="code" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a>;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="keyword">typedef</span> lowp_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">typedef</span> lowp_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="keyword">typedef</span> lowp_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">typedef</span> lowp_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="keyword">typedef</span> lowp_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="keyword">typedef</span> lowp_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="keyword">typedef</span> lowp_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keyword">typedef</span> lowp_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keyword">typedef</span> lowp_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="keyword">typedef</span> mediump_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="keyword">typedef</span> mediump_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="keyword">typedef</span> mediump_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="keyword">typedef</span> mediump_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="keyword">typedef</span> mediump_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="keyword">typedef</span> mediump_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="keyword">typedef</span> mediump_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="keyword">typedef</span> mediump_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">typedef</span> mediump_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div>
-<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44"> 733</a></span> <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a>;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div>
-<div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff"> 738</a></span> <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a>;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div>
-<div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27"> 743</a></span> <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a>;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div>
-<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e"> 748</a></span> <span class="keyword">typedef</span> highp_dmat2x2 <a class="code" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a>;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> </div>
-<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7"> 753</a></span> <span class="keyword">typedef</span> highp_dmat2x3 <a class="code" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div>
-<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738"> 758</a></span> <span class="keyword">typedef</span> highp_dmat2x4 <a class="code" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a>;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
-<div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8"> 763</a></span> <span class="keyword">typedef</span> highp_dmat3x2 <a class="code" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a>;</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div>
-<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8"> 768</a></span> <span class="keyword">typedef</span> highp_dmat3x3 <a class="code" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a>;</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div>
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091"> 773</a></span> <span class="keyword">typedef</span> highp_dmat3x4 <a class="code" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a>;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> </div>
-<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a"> 778</a></span> <span class="keyword">typedef</span> highp_dmat4x2 <a class="code" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div>
-<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e"> 783</a></span> <span class="keyword">typedef</span> highp_dmat4x3 <a class="code" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a>;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e"> 788</a></span> <span class="keyword">typedef</span> highp_dmat4x4 <a class="code" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a>;</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> </div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_ga046e59c57aaa185a8b0b012164ce707f"><div class="ttname"><a href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">glm::highp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, highp > highp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00303">type_mat.hpp:303</a></div></div>
-<div class="ttc" id="a00164_html_ga6b00cd7956ac2ee3d4f3ab3b549b564a"><div class="ttname"><a href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">glm::highp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, highp > highp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00178">type_mat.hpp:178</a></div></div>
-<div class="ttc" id="a00164_html_gaea9e20c3668305cf0de5334d217408d9"><div class="ttname"><a href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">glm::lowp_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, lowp > lowp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00692">type_mat.hpp:692</a></div></div>
-<div class="ttc" id="a00163_html_ga38d9bfca882ec542b1928cf77b5c2091"><div class="ttname"><a href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">glm::dmat3x4</a></div><div class="ttdeci">highp_dmat3x4 dmat3x4</div><div class="ttdoc">3 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00773">type_mat.hpp:773</a></div></div>
-<div class="ttc" id="a00164_html_ga78987759d40d7cb03ebe948fb1dcd879"><div class="ttname"><a href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">glm::mediump_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, mediump > mediump_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00478">type_mat.hpp:478</a></div></div>
-<div class="ttc" id="a00164_html_ga57b1e6c49a1432cefa518f13a56c5d47"><div class="ttname"><a href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">glm::mediump_mat2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00072">type_mat.hpp:72</a></div></div>
-<div class="ttc" id="a00164_html_gaa2542e884ac7d05ada8ebb078b721924"><div class="ttname"><a href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">glm::lowp_mat3x2</a></div><div class="ttdeci">tmat3x2< float, lowp > lowp_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00164">type_mat.hpp:164</a></div></div>
-<div class="ttc" id="a00163_html_ga7876e0c3e3fcc3e2f4c0462c152e87cf"><div class="ttname"><a href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">glm::mat3x4</a></div><div class="ttdeci">highp_mat3x4 mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00410">type_mat.hpp:410</a></div></div>
-<div class="ttc" id="a00164_html_ga7e95e348c99ef3d56b87ede14bc90bfe"><div class="ttname"><a href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">glm::mediump_mat2x4</a></div><div class="ttdeci">tmat2x4< float, mediump > mediump_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00145">type_mat.hpp:145</a></div></div>
-<div class="ttc" id="a00163_html_ga6e30cfba068ebc3c71fe1f8b3110e450"><div class="ttname"><a href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">glm::mat2</a></div><div class="ttdeci">mat2x2 mat2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00432">type_mat.hpp:432</a></div></div>
-<div class="ttc" id="a00164_html_gae8fe30d421bc141fa84ad414b803947d"><div class="ttname"><a href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">glm::lowp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, lowp > lowp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00112">type_mat.hpp:112</a></div></div>
-<div class="ttc" id="a00163_html_ga4d2ac1a80c36fb5a1d15914035f792ac"><div class="ttname"><a href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">glm::mat2x4</a></div><div class="ttdeci">highp_mat2x4 mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00395">type_mat.hpp:395</a></div></div>
-<div class="ttc" id="a00164_html_ga8091edef9fdf54b1996ae5bd00f847e5"><div class="ttname"><a href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">glm::mediump_dmat3</a></div><div class="ttdeci">tmat3x3< double, mediump > mediump_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00570">type_mat.hpp:570</a></div></div>
-<div class="ttc" id="a00164_html_ga5ee028f50629bf451973b3a910973357"><div class="ttname"><a href="a00164.html#ga5ee028f50629bf451973b3a910973357">glm::highp_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, highp > highp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00640">type_mat.hpp:640</a></div></div>
-<div class="ttc" id="a00164_html_gac6d04a9590cb7ab62cbe29203dbb9b93"><div class="ttname"><a href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">glm::lowp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, lowp > lowp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00263">type_mat.hpp:263</a></div></div>
-<div class="ttc" id="a00164_html_gafff11cbd0abc762e8a340870a31d5bfa"><div class="ttname"><a href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">glm::lowp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00337">type_mat.hpp:337</a></div></div>
-<div class="ttc" id="a00164_html_ga27b55deeb16fda7262d64dc1fd1a56bc"><div class="ttname"><a href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">glm::mediump_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, mediump > mediump_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00657">type_mat.hpp:657</a></div></div>
-<div class="ttc" id="a00163_html_gafb063d734266e92915d87f8943560471"><div class="ttname"><a href="a00163.html#gafb063d734266e92915d87f8943560471">glm::mat2x3</a></div><div class="ttdeci">highp_mat2x3 mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00390">type_mat.hpp:390</a></div></div>
-<div class="ttc" id="a00163_html_ga3839ca29d011a80ff3ede7f22ba602a4"><div class="ttname"><a href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">glm::mat3x2</a></div><div class="ttdeci">highp_mat3x2 mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00400">type_mat.hpp:400</a></div></div>
-<div class="ttc" id="a00164_html_ga65ae7d3b23155712ed8cbd3300be4ec8"><div class="ttname"><a href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">glm::highp_dmat2</a></div><div class="ttdeci">tmat2x2< double, highp > highp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00466">type_mat.hpp:466</a></div></div>
-<div class="ttc" id="a00164_html_gafb3dbbc82f8b166867fd21c76eb8db4f"><div class="ttname"><a href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">glm::lowp_mat4x3</a></div><div class="ttdeci">tmat4x3< float, lowp > lowp_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00289">type_mat.hpp:289</a></div></div>
-<div class="ttc" id="a00164_html_ga29d313adfc82fd4179d29a9fd98b1b5b"><div class="ttname"><a href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">glm::mediump_mat3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00197">type_mat.hpp:197</a></div></div>
-<div class="ttc" id="a00164_html_ga223de5d0549b215566dfb977d4bb45bd"><div class="ttname"><a href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">glm::highp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00225">type_mat.hpp:225</a></div></div>
-<div class="ttc" id="a00164_html_ga51bfd2f3f5a12464d5934323db9116e7"><div class="ttname"><a href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">glm::highp_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, highp > highp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00617">type_mat.hpp:617</a></div></div>
-<div class="ttc" id="a00163_html_gac7f51e23c8802d867f564dfd146bdb44"><div class="ttname"><a href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">glm::dmat2</a></div><div class="ttdeci">highp_dmat2x2 dmat2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00733">type_mat.hpp:733</a></div></div>
-<div class="ttc" id="a00163_html_ga6dd3ec98a548755676267e59142911f8"><div class="ttname"><a href="a00163.html#ga6dd3ec98a548755676267e59142911f8">glm::mat3</a></div><div class="ttdeci">mat3x3 mat3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00437">type_mat.hpp:437</a></div></div>
-<div class="ttc" id="a00163_html_ga0c84b211a5730357b63c6d2e4fb696d5"><div class="ttname"><a href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">glm::mat2x2</a></div><div class="ttdeci">highp_mat2x2 mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00385">type_mat.hpp:385</a></div></div>
-<div class="ttc" id="a00164_html_gad64a0179b75508142a72917854034b9b"><div class="ttname"><a href="a00164.html#gad64a0179b75508142a72917854034b9b">glm::lowp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, lowp > lowp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00138">type_mat.hpp:138</a></div></div>
-<div class="ttc" id="a00164_html_gae37a4275ffa68d0c3527a345e76598c0"><div class="ttname"><a href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">glm::lowp_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, lowp > lowp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00582">type_mat.hpp:582</a></div></div>
-<div class="ttc" id="a00164_html_ga8c17198123baf6bfb59582ec42a3ca09"><div class="ttname"><a href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">glm::mediump_mat2x3</a></div><div class="ttdeci">tmat2x3< float, mediump > mediump_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00119">type_mat.hpp:119</a></div></div>
-<div class="ttc" id="a00164_html_ga9dfd75b5b17b89ccbecbdd6201efc74b"><div class="ttname"><a href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">glm::highp_mat2x3</a></div><div class="ttdeci">tmat2x3< float, highp > highp_mat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00126">type_mat.hpp:126</a></div></div>
-<div class="ttc" id="a00164_html_ga187d10ddab0492545b78ea1dd108f28d"><div class="ttname"><a href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">glm::mediump_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, mediump > mediump_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00611">type_mat.hpp:611</a></div></div>
-<div class="ttc" id="a00164_html_ga6a66118df7e2398a36ca4a8e98ce6783"><div class="ttname"><a href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">glm::lowp_mat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00190">type_mat.hpp:190</a></div></div>
-<div class="ttc" id="a00164_html_ga2b5b1b810f3b9988f49f985387e35e03"><div class="ttname"><a href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">glm::lowp_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, lowp > lowp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00651">type_mat.hpp:651</a></div></div>
-<div class="ttc" id="a00164_html_ga27ccd1bcb24920508a7b6a24bd9265ab"><div class="ttname"><a href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">glm::lowp_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, lowp > lowp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00541">type_mat.hpp:541</a></div></div>
-<div class="ttc" id="a00164_html_ga27be34d618d20fbd70d4c62c21256b0c"><div class="ttname"><a href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">glm::mediump_dmat4</a></div><div class="ttdeci">tmat4x4< double, mediump > mediump_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00680">type_mat.hpp:680</a></div></div>
-<div class="ttc" id="a00164_html_ga19b0c9580b447443cf3fe589bd661e03"><div class="ttname"><a href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">glm::lowp_dmat3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00564">type_mat.hpp:564</a></div></div>
-<div class="ttc" id="a00164_html_gac7afc5b81d320dbd7bd6a6f07d587e24"><div class="ttname"><a href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">glm::mediump_mat3x4</a></div><div class="ttdeci">tmat3x4< float, mediump > mediump_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00244">type_mat.hpp:244</a></div></div>
-<div class="ttc" id="a00164_html_ga1b77963ca2812ac2653624fa0f81ba74"><div class="ttname"><a href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">glm::mediump_mat2x2</a></div><div class="ttdeci">tmat2x2< float, mediump > mediump_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00093">type_mat.hpp:93</a></div></div>
-<div class="ttc" id="a00164_html_gabace1eeb2fac7d73a7faaecf33f352d0"><div class="ttname"><a href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">glm::highp_mat4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00330">type_mat.hpp:330</a></div></div>
-<div class="ttc" id="a00164_html_ga8ac69e9ed1addf122f51396f73cdbbf3"><div class="ttname"><a href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">glm::lowp_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, lowp > lowp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00518">type_mat.hpp:518</a></div></div>
-<div class="ttc" id="a00163_html_gacd9ff3b943b3d8bda4f4b388320420fd"><div class="ttname"><a href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">glm::mat4x3</a></div><div class="ttdeci">highp_mat4x3 mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00420">type_mat.hpp:420</a></div></div>
-<div class="ttc" id="a00163_html_ga089315d5a0c20ac6eaa17a854bbd2e81"><div class="ttname"><a href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">glm::mat4x4</a></div><div class="ttdeci">highp_mat4x4 mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00425">type_mat.hpp:425</a></div></div>
-<div class="ttc" id="a00163_html_ga1b3f6a5cbc17362141f9781262ed838f"><div class="ttname"><a href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">glm::mat4x2</a></div><div class="ttdeci">highp_mat4x2 mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00415">type_mat.hpp:415</a></div></div>
-<div class="ttc" id="a00164_html_gab2d4fd5cd286baff8364a7a3f60c8a21"><div class="ttname"><a href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">glm::highp_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, highp > highp_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00553">type_mat.hpp:553</a></div></div>
-<div class="ttc" id="a00164_html_ga813bff547772bcefebc026e5deba0fe3"><div class="ttname"><a href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">glm::lowp_dmat3x4</a></div><div class="ttdeci">tmat3x4< double, lowp > lowp_dmat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00605">type_mat.hpp:605</a></div></div>
-<div class="ttc" id="a00164_html_ga857947b2eef2c9144c34b8e3031f2f12"><div class="ttname"><a href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">glm::mediump_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, mediump > mediump_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00698">type_mat.hpp:698</a></div></div>
-<div class="ttc" id="a00164_html_ga03fe2f9a84c61cc0f08b324a27d9b493"><div class="ttname"><a href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">glm::highp_mat2x4</a></div><div class="ttdeci">tmat2x4< float, highp > highp_mat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00152">type_mat.hpp:152</a></div></div>
-<div class="ttc" id="a00164_html_ga2f02cb49e386f65817c10ead9bbe7dec"><div class="ttname"><a href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">glm::mediump_mat3x3</a></div><div class="ttdeci">tmat3x3< float, mediump > mediump_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00218">type_mat.hpp:218</a></div></div>
-<div class="ttc" id="a00163_html_gaec22f44dddbdadfe5dfca68eb3457ea8"><div class="ttname"><a href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">glm::dmat3x2</a></div><div class="ttdeci">highp_dmat3x2 dmat3x2</div><div class="ttdoc">3 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00763">type_mat.hpp:763</a></div></div>
-<div class="ttc" id="a00164_html_ga518f28c64881fafaaf14ec0d867a9bba"><div class="ttname"><a href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">glm::highp_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, highp > highp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00484">type_mat.hpp:484</a></div></div>
-<div class="ttc" id="a00163_html_ga97b38ea24e9ebf58eac04a8d99dc3e27"><div class="ttname"><a href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">glm::dmat4</a></div><div class="ttdeci">highp_dmat4x4 dmat4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00743">type_mat.hpp:743</a></div></div>
-<div class="ttc" id="a00163_html_ga41c2da87ca627c1b2da5e895435a508e"><div class="ttname"><a href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">glm::dmat4x4</a></div><div class="ttdeci">highp_dmat4x4 dmat4x4</div><div class="ttdoc">4 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00788">type_mat.hpp:788</a></div></div>
-<div class="ttc" id="a00163_html_ga378921b6a07bcdad946858b340f69ab1"><div class="ttname"><a href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">glm::mat3x3</a></div><div class="ttdeci">highp_mat3x3 mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00405">type_mat.hpp:405</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_ga1cb3c561a32f0864733dfaf97c71f0c7"><div class="ttname"><a href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">glm::dmat2x3</a></div><div class="ttdeci">highp_dmat2x3 dmat2x3</div><div class="ttdoc">2 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00753">type_mat.hpp:753</a></div></div>
-<div class="ttc" id="a00164_html_gab7ca36023fa56d8006341a192ee09260"><div class="ttname"><a href="a00164.html#gab7ca36023fa56d8006341a192ee09260">glm::lowp_mat3x3</a></div><div class="ttdeci">tmat3x3< float, lowp > lowp_mat3x3</div><div class="ttdoc">3 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00211">type_mat.hpp:211</a></div></div>
-<div class="ttc" id="a00164_html_gaccf963b117beeadf8c5c057000762dd3"><div class="ttname"><a href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">glm::mediump_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, mediump > mediump_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00524">type_mat.hpp:524</a></div></div>
-<div class="ttc" id="a00164_html_ga22194c68bc3d798bb68a22f635558c8d"><div class="ttname"><a href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">glm::mediump_mat4x2</a></div><div class="ttdeci">tmat4x2< float, mediump > mediump_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00270">type_mat.hpp:270</a></div></div>
-<div class="ttc" id="a00164_html_gaaf2d7cf98b74a43fc432725887685dc0"><div class="ttname"><a href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">glm::lowp_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, lowp > lowp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00495">type_mat.hpp:495</a></div></div>
-<div class="ttc" id="a00164_html_ga5e5de055b7af150796e1c017de84cdb1"><div class="ttname"><a href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">glm::mediump_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, mediump > mediump_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00588">type_mat.hpp:588</a></div></div>
-<div class="ttc" id="a00164_html_ga83ab0b8b8b50cbf945237dc8f5322432"><div class="ttname"><a href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">glm::highp_dmat4x4</a></div><div class="ttdeci">tmat4x4< double, highp > highp_dmat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00704">type_mat.hpp:704</a></div></div>
-<div class="ttc" id="a00164_html_gabb754302a1ff8736ec7814d860c9a3c0"><div class="ttname"><a href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">glm::lowp_mat4</a></div><div class="ttdeci">tmat4x4< float, lowp > lowp_mat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00316">type_mat.hpp:316</a></div></div>
-<div class="ttc" id="a00163_html_ga6ddab280c735a2139133b4164b99a68a"><div class="ttname"><a href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">glm::dmat4x2</a></div><div class="ttdeci">highp_dmat4x2 dmat4x2</div><div class="ttdoc">4 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00778">type_mat.hpp:778</a></div></div>
-<div class="ttc" id="a00164_html_ga2938621d14e70bc3dc576b4fc1547a7e"><div class="ttname"><a href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">glm::lowp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, lowp > lowp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00237">type_mat.hpp:237</a></div></div>
-<div class="ttc" id="a00164_html_gab1a0d4d8fd3bb85f6616dac9dbef2981"><div class="ttname"><a href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">glm::lowp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00086">type_mat.hpp:86</a></div></div>
-<div class="ttc" id="a00164_html_gaa72822d91f0dceb4dcaaec550cbfeead"><div class="ttname"><a href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">glm::highp_mat4x4</a></div><div class="ttdeci">tmat4x4< float, highp > highp_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00351">type_mat.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_ga11c1eb1d307846d5bee7d7c0d8c386f0"><div class="ttname"><a href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">glm::highp_mat2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00079">type_mat.hpp:79</a></div></div>
-<div class="ttc" id="a00164_html_gae6a747cfc33928652abcb1347712b231"><div class="ttname"><a href="a00164.html#gae6a747cfc33928652abcb1347712b231">glm::highp_mat2x2</a></div><div class="ttdeci">tmat2x2< float, highp > highp_mat2x2</div><div class="ttdoc">2 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00100">type_mat.hpp:100</a></div></div>
-<div class="ttc" id="a00163_html_gaddd230c88fbd6ec33242329be3a1b738"><div class="ttname"><a href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">glm::dmat2x4</a></div><div class="ttdeci">highp_dmat2x4 dmat2x4</div><div class="ttdoc">2 * 4 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00758">type_mat.hpp:758</a></div></div>
-<div class="ttc" id="a00164_html_ga6259813853e4253f80c2a08672e9fb6a"><div class="ttname"><a href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">glm::mediump_mat4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00323">type_mat.hpp:323</a></div></div>
-<div class="ttc" id="a00164_html_ga05c2d27aeca091e369fca027e72177e8"><div class="ttname"><a href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">glm::lowp_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, lowp > lowp_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00628">type_mat.hpp:628</a></div></div>
-<div class="ttc" id="a00164_html_gaac1bde847d053902c27bad811b76e9fd"><div class="ttname"><a href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">glm::highp_mat3</a></div><div class="ttdeci">tmat3x3< float, highp > highp_mat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00204">type_mat.hpp:204</a></div></div>
-<div class="ttc" id="a00164_html_gad4a5b294c54702b7c8e9ee32a451dea9"><div class="ttname"><a href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">glm::mediump_dmat4x2</a></div><div class="ttdeci">tmat4x2< double, mediump > mediump_dmat4x2</div><div class="ttdoc">4 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00634">type_mat.hpp:634</a></div></div>
-<div class="ttc" id="a00164_html_ga2569a68be3f1cf56e7e5e0920fe5a246"><div class="ttname"><a href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">glm::mediump_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, mediump > mediump_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00501">type_mat.hpp:501</a></div></div>
-<div class="ttc" id="a00164_html_gaf98afd25f7e3e8f1d73bca020d0d8ea6"><div class="ttname"><a href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">glm::highp_dmat2x3</a></div><div class="ttdeci">tmat2x3< double, highp > highp_dmat2x3</div><div class="ttdoc">2 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00507">type_mat.hpp:507</a></div></div>
-<div class="ttc" id="a00164_html_gac1c87c16d6dcb7449bc3c779ccdc5c30"><div class="ttname"><a href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">glm::highp_dmat2x4</a></div><div class="ttdeci">tmat2x4< double, highp > highp_dmat2x4</div><div class="ttdoc">2 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00530">type_mat.hpp:530</a></div></div>
-<div class="ttc" id="a00163_html_gab6c8974496fc7c72dad09219118ba89e"><div class="ttname"><a href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">glm::dmat4x3</a></div><div class="ttdeci">highp_dmat4x3 dmat4x3</div><div class="ttdoc">4 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00783">type_mat.hpp:783</a></div></div>
-<div class="ttc" id="a00164_html_ga4607e33c40a3c03256e0bf9c586b456a"><div class="ttname"><a href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">glm::highp_dmat4</a></div><div class="ttdeci">tmat4x4< double, highp > highp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00686">type_mat.hpp:686</a></div></div>
-<div class="ttc" id="a00164_html_ga38a01cba69e3db9b1a1056b362519acb"><div class="ttname"><a href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">glm::mediump_mat4x3</a></div><div class="ttdeci">tmat4x3< float, mediump > mediump_mat4x3</div><div class="ttdoc">4 columns of 3 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00296">type_mat.hpp:296</a></div></div>
-<div class="ttc" id="a00164_html_gafe7eea5b2a20477b5634e340ea5ec28a"><div class="ttname"><a href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">glm::highp_dmat4x3</a></div><div class="ttdeci">tmat4x3< double, highp > highp_dmat4x3</div><div class="ttdoc">4 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00663">type_mat.hpp:663</a></div></div>
-<div class="ttc" id="a00164_html_gae0a526a0143fc69d7b317c078d591654"><div class="ttname"><a href="a00164.html#gae0a526a0143fc69d7b317c078d591654">glm::lowp_dmat2</a></div><div class="ttdeci">tmat2x2< double, lowp > lowp_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00454">type_mat.hpp:454</a></div></div>
-<div class="ttc" id="a00163_html_gac44263f56ff3cbf0a9cc4e2405d5ecb8"><div class="ttname"><a href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">glm::dmat3x3</a></div><div class="ttdeci">highp_dmat3x3 dmat3x3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00768">type_mat.hpp:768</a></div></div>
-<div class="ttc" id="a00164_html_ga6b81830ed1ce3862bcbbf41eccc3890b"><div class="ttname"><a href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">glm::mediump_dmat3x2</a></div><div class="ttdeci">tmat3x2< double, mediump > mediump_dmat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00547">type_mat.hpp:547</a></div></div>
-<div class="ttc" id="a00164_html_ga117d8a040e738396a3d60368605623d2"><div class="ttname"><a href="a00164.html#ga117d8a040e738396a3d60368605623d2">glm::highp_mat3x4</a></div><div class="ttdeci">tmat3x4< float, highp > highp_mat3x4</div><div class="ttdoc">3 columns of 4 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00251">type_mat.hpp:251</a></div></div>
-<div class="ttc" id="a00164_html_ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><div class="ttname"><a href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">glm::lowp_mat2</a></div><div class="ttdeci">tmat2x2< float, lowp > lowp_mat2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00065">type_mat.hpp:65</a></div></div>
-<div class="ttc" id="a00164_html_ga9fa569295a9bd6ce0825ccb832c8aac9"><div class="ttname"><a href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">glm::mediump_mat3x2</a></div><div class="ttdeci">tmat3x2< float, mediump > mediump_mat3x2</div><div class="ttdoc">3 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00171">type_mat.hpp:171</a></div></div>
-<div class="ttc" id="a00163_html_gacc27b39853a2ecb538c8b3afc20c359e"><div class="ttname"><a href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">glm::dmat2x2</a></div><div class="ttdeci">highp_dmat2x2 dmat2x2</div><div class="ttdoc">2 * 2 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00748">type_mat.hpp:748</a></div></div>
-<div class="ttc" id="a00163_html_gade0eb47c01f79384a6f38017ede17446"><div class="ttname"><a href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a></div><div class="ttdeci">mat4x4 mat4</div><div class="ttdoc">4 columns of 4 components matrix of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00442">type_mat.hpp:442</a></div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga000c064e4eba15bf83f8e1e393a8e7fd"><div class="ttname"><a href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">glm::lowp_dmat2x2</a></div><div class="ttdeci">tmat2x2< double, lowp > lowp_dmat2x2</div><div class="ttdoc">2 columns of 2 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00472">type_mat.hpp:472</a></div></div>
-<div class="ttc" id="a00164_html_ga605c7863807ac2e9c2db4cf13405f34d"><div class="ttname"><a href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">glm::highp_dmat3</a></div><div class="ttdeci">tmat3x3< double, highp > highp_dmat3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00576">type_mat.hpp:576</a></div></div>
-<div class="ttc" id="a00164_html_gaeea75c96b308be4114e0badf49f58075"><div class="ttname"><a href="a00164.html#gaeea75c96b308be4114e0badf49f58075">glm::highp_mat4x2</a></div><div class="ttdeci">tmat4x2< float, highp > highp_mat4x2</div><div class="ttdoc">4 columns of 2 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00277">type_mat.hpp:277</a></div></div>
-<div class="ttc" id="a00164_html_ga2d7911a43241a5ce2472421255e5930f"><div class="ttname"><a href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">glm::highp_dmat3x3</a></div><div class="ttdeci">tmat3x3< double, highp > highp_dmat3x3</div><div class="ttdoc">3 columns of 3 components matrix of high precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00594">type_mat.hpp:594</a></div></div>
-<div class="ttc" id="a00164_html_gaac3aee10bee5fa5206de8bf024a8b301"><div class="ttname"><a href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">glm::lowp_dmat4</a></div><div class="ttdeci">tmat4x4< double, lowp > lowp_dmat4</div><div class="ttdoc">4 columns of 4 components matrix of low precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00674">type_mat.hpp:674</a></div></div>
-<div class="ttc" id="a00164_html_ga330077a4cb3707329120b5bddcd7db2d"><div class="ttname"><a href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">glm::mediump_dmat2</a></div><div class="ttdeci">tmat2x2< double, mediump > mediump_dmat2</div><div class="ttdoc">2 columns of 2 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00460">type_mat.hpp:460</a></div></div>
-<div class="ttc" id="a00163_html_gae174ff65e148bb7dec4bf10a63cb46ff"><div class="ttname"><a href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">glm::dmat3</a></div><div class="ttdeci">highp_dmat3x3 dmat3</div><div class="ttdoc">3 * 3 matrix of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00738">type_mat.hpp:738</a></div></div>
-<div class="ttc" id="a00164_html_ga535614d97234065ab44b2513667c8563"><div class="ttname"><a href="a00164.html#ga535614d97234065ab44b2513667c8563">glm::mediump_mat4x4</a></div><div class="ttdeci">tmat4x4< float, mediump > mediump_mat4x4</div><div class="ttdoc">4 columns of 4 components matrix of medium precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00120_source.html#l00344">type_mat.hpp:344</a></div></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> template <typename V1, typename V2, typename V3></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL tmat3x4(</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> tvec4<V1, P> const & v1,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> tvec4<V2, P> const & v2,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> tvec4<V3, P> const & v3);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4<U, Q> const & m);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> template <typename U></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<U, P> const & m);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> template <typename U></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat3x4<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename U></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat3x4<T, P> & operator+=(tmat3x4<U, P> const & m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> template <typename U></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tmat3x4<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename U></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat3x4<T, P> & operator-=(tmat3x4<U, P> const & m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> template <typename U></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tmat3x4<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat3x4<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL tmat3x4<T, P> & operator++();</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat3x4<T, P> & operator--();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tmat3x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat3x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> template <typename T, precision P></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename T, precision P></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename T, precision P></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> template <typename T, precision P></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> template <typename T, precision P></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> template <typename T, precision P></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename T, precision P></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(T scalar, tmat3x4<T, P> const & m);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename T, precision P></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator*(tmat3x4<T, P> const & m, typename tmat3x4<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <typename T, precision P></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator*(typename tmat3x4<T, P>::col_type const & v, tmat3x4<T, P> const & m);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename T, precision P></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> template <typename T, precision P></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat2x3<T, P> const & m2);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> template <typename T, precision P></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat3x3<T, P> const & m2);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> template <typename T, precision P></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> template <typename T, precision P></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat3x4<T, P> operator/(T scalar, tmat3x4<T, P> const & m);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#include "type_mat3x4.inl"</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00121.html b/doc/api/a00121.html
index 88faf02..7f716fb 100644
--- a/doc/api/a00121.html
+++ b/doc/api/a00121.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x2.hpp File Reference</title>
+<title>0.9.8: type_mat4x2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x2.hpp File Reference</div> </div>
+<div class="title">type_mat4x2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00121_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00121_source.html">type_mat2x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00121_source.html">type_mat4x2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00121_source.html b/doc/api/a00121_source.html
index 54de1c9..0e09dbe 100644
--- a/doc/api/a00121_source.html
+++ b/doc/api/a00121_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x2.hpp Source File</title>
+<title>0.9.8: type_mat4x2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,211 +46,189 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x2.hpp</div> </div>
+<div class="title">type_mat4x2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00121.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">type_vec2.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat4x2</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat4x2<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat2x4<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[4];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat4x2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>tmat2x2</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tmat2x2<T, P> type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat2x2<T, P> transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">friend</span> tvec2<U, Q> operator/(tmat2x2<U, Q> <span class="keyword">const</span> & m, tvec2<U, Q> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">friend</span> tvec2<U, Q> operator/(tvec2<U, Q> <span class="keyword">const</span> & v, tmat2x2<U, Q> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> col_type value[2];</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x2(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat4x2(T scalar);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T x0, T y0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T x1, T y1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T x2, T y2,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> T x3, T y3);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v0,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> col_type const & v1,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> col_type const & v2,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> col_type const & v3);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> template <</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> typename X1, typename Y1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> typename X2, typename Y2,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> typename X3, typename Y3,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> typename X4, typename Y4></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> X1 x1, Y1 y1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> X2 x2, Y2 y2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> X3 x3, Y3 y3,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> X4 x4, Y4 y4);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> template <typename V1, typename V2, typename V3, typename V4></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL tmat4x2(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec2<V1, P> const & v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tvec2<V2, P> const & v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec2<V3, P> const & v3,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec2<V4, P> const & v4);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Matrix conversions --</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL tmat2x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat2x2(tmat2x2<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> template <precision Q></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL explicit tmat2x2(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL explicit tmat2x2(T const & x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T const & x1, T const & y1,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> T const & x2, T const & y2);</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> col_type const & v1,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> col_type const & v2);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2<U, Q> const & m);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// -- Accesses --</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> template <typename U, typename V, typename M, typename N></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> U const & x1, V const & y1,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> M const & x2, N const & y2);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> template <typename U, typename V></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat2x2(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> tvec2<U, P> const & v1,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> tvec2<V, P> const & v2);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2<U, Q> const & m);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<U, P> const & m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> template <typename U></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL tmat4x2<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename U></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat4x2<T, P> & operator+=(tmat4x2<U, P> const & m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <typename U></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> template <typename U></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-=(tmat4x2<U, P> const & m);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> template <typename U></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL tmat4x2<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> template <typename U></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat4x2<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tmat4x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat4x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> };</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> template <typename T, precision P></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T scalar);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat2x2<T, P> & operator=(tmat2x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tmat2x2<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat2x2<T, P> & operator+=(tmat2x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-=(tmat2x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tmat2x2<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat2x2<T, P> & operator*=(tmat2x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat2x2<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat2x2<T, P> & operator/=(tmat2x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename T, precision P></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(T scalar, tmat4x2<T, P> const & m);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename T, precision P></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> const & m, typename tmat4x2<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator*(typename tmat4x2<T, P>::col_type const & v, tmat4x2<T, P> const & m);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat2x2<T, P> & operator++ ();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat2x2<T, P> & operator-- ();</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat2x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tmat2x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> };</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> template <typename T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tmat2x2<T, P> <span class="keyword">const</span> operator-(tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(T <span class="keyword">const</span> & s, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(T <span class="keyword">const</span> & s, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(T <span class="keyword">const</span> & s, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2<T, P>::col_type operator*(tmat2x2<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat2x2<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2<T, P>::row_type operator*(<span class="keyword">typename</span> tmat2x2<T, P>::col_type <span class="keyword">const</span> & v, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(T <span class="keyword">const</span> & s, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat2x2<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x2<T, P>::row_type operator/(<span class="keyword">typename</span> tmat2x2<T, P>::col_type <span class="keyword">const</span> & v, tmat2x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x2<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> } <span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor">#include "type_mat2x2.inl"</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> template <typename T, precision P></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T scalar);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat4x2<T, P> operator/(T scalar, tmat4x2<T, P> const & m);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> template <typename T, precision P></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> template <typename T, precision P></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "type_mat4x2.inl"</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00122.html b/doc/api/a00122.html
index 766a08d..1e66573 100644
--- a/doc/api/a00122.html
+++ b/doc/api/a00122.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x3.hpp File Reference</title>
+<title>0.9.8: type_mat4x3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x3.hpp File Reference</div> </div>
+<div class="title">type_mat4x3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00122_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-10-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00122_source.html">type_mat2x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00122_source.html">type_mat4x3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00122_source.html b/doc/api/a00122_source.html
index 1d31b1f..16e205b 100644
--- a/doc/api/a00122_source.html
+++ b/doc/api/a00122_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x3.hpp Source File</title>
+<title>0.9.8: type_mat4x3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,189 +46,189 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x3.hpp</div> </div>
+<div class="title">type_mat4x3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00122.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">type_vec3.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">struct </span>tmat4x3</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat4x3<T, P> type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> tmat3x4<T, P> transpose_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> col_type value[4];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat4x3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> template <precision Q></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat2x3</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat2x3<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat3x2<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[2];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat2x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat2x3(tmat2x3<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat2x3(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat2x3(T const & s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0, T const & z0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1, T const & z1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> col_type const & v0,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> col_type const & v1);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x3(ctor);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL explicit tmat4x3(T const & x);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T const & x0, T const & y0, T const & z0,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T const & x1, T const & y1, T const & z1,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T const & x2, T const & y2, T const & z2,</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> T const & x3, T const & y3, T const & z3);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v0,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> col_type const & v1,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> col_type const & v2,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> col_type const & v3);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> template <</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> typename X1, typename Y1, typename Z1,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> typename X2, typename Y2, typename Z2,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> typename X3, typename Y3, typename Z3,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> typename X4, typename Y4, typename Z4></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> X1 const & x1, Y1 const & y1, Z1 const & z1,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> X2 const & x2, Y2 const & y2, Z2 const & z2,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> X3 const & x3, Y3 const & y3, Z3 const & z3,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> X4 const & x4, Y4 const & y4, Z4 const & z4);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> template <typename V1, typename V2, typename V3, typename V4></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL tmat4x3(</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec3<V1, P> const & v1,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tvec3<V2, P> const & v2,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec3<V3, P> const & v3,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> tvec3<V4, P> const & v4);</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3<U, Q> const & m);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x4<T, P> const & x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x4<T, P> const & x);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> X1 const & x1, Y1 const & y1, Z1 const & z1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> X2 const & x2, Y2 const & y2, Z2 const & z2);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> template <typename U, typename V></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tmat2x3(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> tvec3<U, P> const & v1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> tvec3<V, P> const & v2);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<T, P> const & m) GLM_DEFAULT;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3<U, Q> const & m);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> template <typename U></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<U, P> const & m);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> template <typename U></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL tmat4x3<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename U></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat4x3<T, P> & operator+=(tmat4x3<U, P> const & m);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <typename U></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL tmat4x3<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> template <typename U></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tmat4x3<T, P> & operator-=(tmat4x3<U, P> const & m);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> template <typename U></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL tmat4x3<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> template <typename U></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL tmat4x3<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tmat4x3<T, P> & operator++();</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tmat4x3<T, P> & operator--();</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tmat4x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat4x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> };</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> template <typename T, precision P></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL tmat2x3<T, P> & operator=(tmat2x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat2x3<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat2x3<T, P> & operator+=(tmat2x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-=(tmat2x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat2x3<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat2x3<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat2x3<T, P> & operator++ ();</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat2x3<T, P> & operator-- ();</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat2x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat2x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> };</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename T, precision P></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(T const & s, tmat4x3<T, P> const & m);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename T, precision P></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL typename tmat4x3<T, P>::col_type operator*(tmat4x3<T, P> const & m, typename tmat4x3<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL typename tmat4x3<T, P>::row_type operator*(typename tmat4x3<T, P>::col_type const & v, tmat4x3<T, P> const & m);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat2x3<T, P> <span class="keyword">const</span> operator-(tmat2x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> template <typename T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> template <typename T, precision P></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat4x3<T, P> operator/(tmat4x3<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat4x3<T, P> operator/(T const & s, tmat4x3<T, P> const & m);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// -- Boolean operators --</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> template <typename T, precision P></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(T <span class="keyword">const</span> & s, tmat2x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3<T, P>::col_type operator*(tmat2x3<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat2x3<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x3<T, P>::row_type operator*(<span class="keyword">typename</span> tmat2x3<T, P>::col_type <span class="keyword">const</span> & v, tmat2x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tmat2x3<T, P> operator/(tmat2x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tmat2x3<T, P> operator/(T <span class="keyword">const</span> & s, tmat2x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x3<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#include "type_mat2x3.inl"</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> template <typename T, precision P></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x3<T, P> const & m1, tmat4x3<T, P> const & m2);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor">#include "type_mat4x3.inl"</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00123.html b/doc/api/a00123.html
index f7ca1da..c19a85c 100644
--- a/doc/api/a00123.html
+++ b/doc/api/a00123.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x4.hpp File Reference</title>
+<title>0.9.8: type_mat4x4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x4.hpp File Reference</div> </div>
+<div class="title">type_mat4x4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00123_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00123_source.html">type_mat2x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00123_source.html">type_mat4x4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00123_source.html b/doc/api/a00123_source.html
index bf38f36..7cd565d 100644
--- a/doc/api/a00123_source.html
+++ b/doc/api/a00123_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat2x4.hpp Source File</title>
+<title>0.9.8: type_mat4x4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,191 +46,206 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat2x4.hpp</div> </div>
+<div class="title">type_mat4x4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00123.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat2x4</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec2<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat2x4<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat4x2<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 2;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">type_vec4.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="a00114.html">type_mat.hpp</a>"</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">struct </span>tmat4x4</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> {</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> tmat4x4<T, P> type;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> tmat4x4<T, P> transpose_type;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> col_type value[4];</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> template <precision Q></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> GLM_FUNC_DECL explicit tmat4x4(ctor);</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> GLM_FUNC_DECL explicit tmat4x4(T const & x);</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> T const & x0, T const & y0, T const & z0, T const & w0,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> T const & x1, T const & y1, T const & z1, T const & w1,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> T const & x2, T const & y2, T const & z2, T const & w2,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> T const & x3, T const & y3, T const & z3, T const & w3);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> col_type const & v0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> col_type const & v1,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> col_type const & v2,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> col_type const & v3);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// -- Conversions --</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> template <</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> typename X1, typename Y1, typename Z1, typename W1,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> typename X2, typename Y2, typename Z2, typename W2,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> typename X3, typename Y3, typename Z3, typename W3,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> typename X4, typename Y4, typename Z4, typename W4></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[2];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat2x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat2x4(tmat2x4<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat2x4(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat2x4(T const & s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0, T const & z0, T const & w0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1, T const & z1, T const & w1);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> col_type const & v0,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> col_type const & v1);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> template <</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> typename X2, typename Y2, typename Z2, typename W2></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> template <typename V1, typename V2, typename V3, typename V4></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL tmat4x4(</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> tvec4<V1, P> const & v1,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> tvec4<V2, P> const & v2,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> tvec4<V3, P> const & v3,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> tvec4<V4, P> const & v4);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4<U, Q> const & m);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x2<T, P> const & x);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x3<T, P> const & x);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x3<T, P> const & x);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x2<T, P> const & x);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x4<T, P> const & x);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x2<T, P> const & x);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x4<T, P> const & x);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// -- Accesses --</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> typedef length_t length_type;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() const;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL col_type const & operator[](length_type i) const;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> template <typename U, typename V></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL tmat2x4(</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> tvec4<U, P> const & v1,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> tvec4<V, P> const & v2);</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4<U, Q> const & m);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<T, P> const & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename U></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P> const & m);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> template <typename U></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename U></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P> const & m);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> template <typename U></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P> const & m);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> template <typename U></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> template <typename U></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P> const & m);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> template <typename U></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> template <typename U></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P> const & m);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat4x4<T, P> & operator++();</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tmat4x4<T, P> & operator--();</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL tmat4x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL tmat4x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> };</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> template <typename T, precision P></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename T, precision P></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat2x4<T, P> & operator=(tmat2x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat2x4<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tmat2x4<T, P> & operator+=(tmat2x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-=(tmat2x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat2x4<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tmat2x4<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename T, precision P></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename T, precision P></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(T const & s, tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename T, precision P></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename T, precision P></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> template <typename T, precision P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(T const & s, tmat4x4<T, P> const & m);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat2x4<T, P> & operator++ ();</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat2x4<T, P> & operator-- ();</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat2x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tmat2x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> };</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename T, precision P></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> template <typename T, precision P></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m, T const & s);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tmat2x4<T, P> <span class="keyword">const</span> operator-(tmat2x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(T <span class="keyword">const</span> & s, tmat2x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4<T, P>::col_type operator*(tmat2x4<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat2x4<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat2x4<T, P>::row_type operator*(<span class="keyword">typename</span> tmat2x4<T, P>::col_type <span class="keyword">const</span> & v, tmat2x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat2x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tmat2x4<T, P> operator/(tmat2x4<T, P> <span class="keyword">const</span> & m, T s);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL tmat2x4<T, P> operator/(T s, tmat2x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat2x4<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#include "type_mat2x4.inl"</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> template <typename T, precision P></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(T const & s, tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> template <typename T, precision P></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> template <typename T, precision P></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator*(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> template <typename T, precision P></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat2x4<T, P> const & m2);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename T, precision P></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat3x4<T, P> const & m2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> template <typename T, precision P></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> template <typename T, precision P></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m, T const & s);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> template <typename T, precision P></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(T const & s, tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> template <typename T, precision P></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> template <typename T, precision P></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL typename tmat4x4<T, P>::row_type operator/(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m);</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> template <typename T, precision P></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> template <typename T, precision P></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> template <typename T, precision P></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x4<T, P> const & m1, tmat4x4<T, P> const & m2);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor">#include "type_mat4x4.inl"</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00114_html"><div class="ttname"><a href="a00114.html">type_mat.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00124.html b/doc/api/a00124.html
index e92ab28..304e3f3 100644
--- a/doc/api/a00124.html
+++ b/doc/api/a00124.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x2.hpp File Reference</title>
+<title>0.9.8: type_precision.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,25 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x2.hpp File Reference</div> </div>
+<div class="title">type_precision.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00124_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00177.html">GLM_GTC_type_precision</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00124_source.html">type_mat3x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00124_source.html">type_precision.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00124_source.html b/doc/api/a00124_source.html
index 82d37c4..b312800 100644
--- a/doc/api/a00124_source.html
+++ b/doc/api/a00124_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x2.hpp Source File</title>
+<title>0.9.8: type_precision.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,201 +41,646 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x2.hpp</div> </div>
+<div class="title">type_precision.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00124.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat3x2</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat3x2<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat2x3<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_type_precision extension included")</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Signed int vector types </span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[3];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat3x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat3x2(tmat3x2<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat3x2(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat3x2(T const & s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T const & x2, T const & y2);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> col_type const & v0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> col_type const & v1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> col_type const & v2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> template<</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> typename X1, typename Y1,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> typename X2, typename Y2,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> typename X3, typename Y3></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> X1 const & x1, Y1 const & y1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> X2 const & x2, Y2 const & y2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> X3 const & x3, Y3 const & y3);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename V1, typename V2, typename V3></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat3x2(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> tvec2<V1, P> const & v1,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> tvec2<V2, P> const & v2,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> tvec2<V3, P> const & v3);</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2<U, Q> const & m);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat3x2<T, P> & operator=(tmat3x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tmat3x2<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x2<T, P> & operator+=(tmat3x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-=(tmat3x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat3x2<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat3x2<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tmat3x2<T, P> & operator++ ();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat3x2<T, P> & operator-- ();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat3x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat3x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat3x2<T, P> <span class="keyword">const</span> operator-(tmat3x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(T <span class="keyword">const</span> & s, tmat3x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2<T, P>::col_type operator*(tmat3x2<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat3x2<T, P>::row_type <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x2<T, P>::row_type operator*(<span class="keyword">typename</span> tmat3x2<T, P>::col_type <span class="keyword">const</span> & v, tmat3x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> GLM_FUNC_DECL tmat3x2<T, P> operator/(tmat3x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tmat3x2<T, P> operator/(T <span class="keyword">const</span> & s, tmat3x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x2<T, P> <span class="keyword">const</span> & m1, tmat3x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#include "type_mat3x2.inl"</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">typedef</span> detail::int8 int8;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">typedef</span> detail::int16 int16;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">typedef</span> detail::int32 int32;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">typedef</span> detail::int64 int64;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">using</span> <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">typedef</span> tvec1<i8, defaultp> <a class="code" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">typedef</span> tvec2<i8, defaultp> <a class="code" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">typedef</span> tvec3<i8, defaultp> <a class="code" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">typedef</span> tvec4<i8, defaultp> <a class="code" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">typedef</span> tvec1<i16, defaultp> <a class="code" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">typedef</span> tvec2<i16, defaultp> <a class="code" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">typedef</span> tvec3<i16, defaultp> <a class="code" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">typedef</span> tvec4<i16, defaultp> <a class="code" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keyword">typedef</span> tvec1<i32, defaultp> <a class="code" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">typedef</span> tvec2<i32, defaultp> <a class="code" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">typedef</span> tvec3<i32, defaultp> <a class="code" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">typedef</span> tvec4<i32, defaultp> <a class="code" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">typedef</span> tvec1<i64, defaultp> <a class="code" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword">typedef</span> tvec2<i64, defaultp> <a class="code" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">typedef</span> tvec3<i64, defaultp> <a class="code" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">typedef</span> tvec4<i64, defaultp> <a class="code" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// Unsigned int vector types</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">typedef</span> detail::uint8 uint8;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">typedef</span> detail::uint16 uint16;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">typedef</span> detail::uint32 uint32;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">typedef</span> detail::uint64 uint64;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="keyword">using</span> <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">typedef</span> tvec1<u8, defaultp> <a class="code" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">typedef</span> tvec2<u8, defaultp> <a class="code" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keyword">typedef</span> tvec3<u8, defaultp> <a class="code" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keyword">typedef</span> tvec4<u8, defaultp> <a class="code" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="keyword">typedef</span> tvec1<u16, defaultp> <a class="code" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="keyword">typedef</span> tvec2<u16, defaultp> <a class="code" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">typedef</span> tvec3<u16, defaultp> <a class="code" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="keyword">typedef</span> tvec4<u16, defaultp> <a class="code" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="keyword">typedef</span> tvec1<u32, defaultp> <a class="code" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">typedef</span> tvec2<u32, defaultp> <a class="code" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="keyword">typedef</span> tvec3<u32, defaultp> <a class="code" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keyword">typedef</span> tvec4<u32, defaultp> <a class="code" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">typedef</span> tvec1<u64, defaultp> <a class="code" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="keyword">typedef</span> tvec2<u64, defaultp> <a class="code" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keyword">typedef</span> tvec3<u64, defaultp> <a class="code" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="keyword">typedef</span> tvec4<u64, defaultp> <a class="code" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// Float vector types</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keyword">typedef</span> detail::float32 float32;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">typedef</span> detail::float64 float64;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">typedef</span> detail::float32 <a class="code" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">typedef</span> detail::float64 <a class="code" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="keyword">typedef</span> float32 <a class="code" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="keyword">typedef</span> float64 <a class="code" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">typedef</span> tvec1<float, defaultp> <a class="code" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">typedef</span> tvec2<float, defaultp> <a class="code" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keyword">typedef</span> tvec3<float, defaultp> <a class="code" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="keyword">typedef</span> tvec4<float, defaultp> <a class="code" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keyword">typedef</span> tvec1<f32, defaultp> <a class="code" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keyword">typedef</span> tvec2<f32, defaultp> <a class="code" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> <span class="keyword">typedef</span> tvec3<f32, defaultp> <a class="code" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">typedef</span> tvec4<f32, defaultp> <a class="code" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keyword">typedef</span> tvec1<f64, defaultp> <a class="code" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword">typedef</span> tvec2<f64, defaultp> <a class="code" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keyword">typedef</span> tvec3<f64, defaultp> <a class="code" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">typedef</span> tvec4<f64, defaultp> <a class="code" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="comment">// Float matrix types </span></div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="comment">//typedef detail::tmat1x1<f32> fmat1;</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="comment">//typedef f32 fmat1x1;</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">typedef</span> tmat2x3<f32, defaultp> <a class="code" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keyword">typedef</span> tmat2x4<f32, defaultp> <a class="code" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="keyword">typedef</span> tmat3x2<f32, defaultp> <a class="code" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keyword">typedef</span> tmat3x4<f32, defaultp> <a class="code" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="keyword">typedef</span> tmat4x2<f32, defaultp> <a class="code" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="keyword">typedef</span> tmat4x3<f32, defaultp> <a class="code" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="comment">//typedef detail::tmat1x1<f32, defaultp> f32mat1;</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> </div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="comment">//typedef f32 f32mat1x1;</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="keyword">typedef</span> tmat2x3<f32, defaultp> <a class="code" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="keyword">typedef</span> tmat2x4<f32, defaultp> <a class="code" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="keyword">typedef</span> tmat3x2<f32, defaultp> <a class="code" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="keyword">typedef</span> tmat3x4<f32, defaultp> <a class="code" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="keyword">typedef</span> tmat4x2<f32, defaultp> <a class="code" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="keyword">typedef</span> tmat4x3<f32, defaultp> <a class="code" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> </div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="comment">//typedef detail::tmat1x1<f64, defaultp> f64mat1;</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> </div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="keyword">typedef</span> tmat2x2<f64, defaultp> <a class="code" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="keyword">typedef</span> tmat3x3<f64, defaultp> <a class="code" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="keyword">typedef</span> tmat4x4<f64, defaultp> <a class="code" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> </div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="comment">//typedef f64 f64mat1x1;</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> </div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="keyword">typedef</span> tmat2x2<f64, defaultp> <a class="code" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> </div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="keyword">typedef</span> tmat2x3<f64, defaultp> <a class="code" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="keyword">typedef</span> tmat2x4<f64, defaultp> <a class="code" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="keyword">typedef</span> tmat3x2<f64, defaultp> <a class="code" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">typedef</span> tmat3x3<f64, defaultp> <a class="code" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="keyword">typedef</span> tmat3x4<f64, defaultp> <a class="code" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> </div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="keyword">typedef</span> tmat4x2<f64, defaultp> <a class="code" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> </div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="keyword">typedef</span> tmat4x3<f64, defaultp> <a class="code" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> </div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="keyword">typedef</span> tmat4x4<f64, defaultp> <a class="code" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> </div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> </div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment">// Quaternion types</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="keyword">typedef</span> tquat<f32, defaultp> <a class="code" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> </div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="keyword">typedef</span> tquat<f64, defaultp> <a class="code" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> </div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="preprocessor">#include "type_precision.inl"</span></div>
+<div class="ttc" id="a00177_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00116">fwd.hpp:116</a></div></div>
+<div class="ttc" id="a00177_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00177.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02457">fwd.hpp:2457</a></div></div>
+<div class="ttc" id="a00177_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00444">fwd.hpp:444</a></div></div>
+<div class="ttc" id="a00177_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02397">fwd.hpp:2397</a></div></div>
+<div class="ttc" id="a00177_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00177.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02421">fwd.hpp:2421</a></div></div>
+<div class="ttc" id="a00177_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00177.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00703">fwd.hpp:703</a></div></div>
+<div class="ttc" id="a00177_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00177.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02515">fwd.hpp:2515</a></div></div>
+<div class="ttc" id="a00177_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01132">fwd.hpp:1132</a></div></div>
+<div class="ttc" id="a00177_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00148">fwd.hpp:148</a></div></div>
+<div class="ttc" id="a00177_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00180">fwd.hpp:180</a></div></div>
+<div class="ttc" id="a00177_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00837">fwd.hpp:837</a></div></div>
+<div class="ttc" id="a00177_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00164">fwd.hpp:164</a></div></div>
+<div class="ttc" id="a00177_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00833">fwd.hpp:833</a></div></div>
+<div class="ttc" id="a00177_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00177.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00809">fwd.hpp:809</a></div></div>
+<div class="ttc" id="a00177_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00829">fwd.hpp:829</a></div></div>
+<div class="ttc" id="a00177_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00188">fwd.hpp:188</a></div></div>
+<div class="ttc" id="a00177_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00228">fwd.hpp:228</a></div></div>
+<div class="ttc" id="a00177_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00177.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00686">fwd.hpp:686</a></div></div>
+<div class="ttc" id="a00177_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01140">fwd.hpp:1140</a></div></div>
+<div class="ttc" id="a00177_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00707">fwd.hpp:707</a></div></div>
+<div class="ttc" id="a00177_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00981">fwd.hpp:981</a></div></div>
+<div class="ttc" id="a00177_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02429">fwd.hpp:2429</a></div></div>
+<div class="ttc" id="a00177_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00192">fwd.hpp:192</a></div></div>
+<div class="ttc" id="a00177_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01065">fwd.hpp:1065</a></div></div>
+<div class="ttc" id="a00177_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00177.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00849">fwd.hpp:849</a></div></div>
+<div class="ttc" id="a00177_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01509">fwd.hpp:1509</a></div></div>
+<div class="ttc" id="a00177_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02503">fwd.hpp:2503</a></div></div>
+<div class="ttc" id="a00177_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00177.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01303">fwd.hpp:1303</a></div></div>
+<div class="ttc" id="a00177_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00100">fwd.hpp:100</a></div></div>
+<div class="ttc" id="a00177_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00177.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00104">fwd.hpp:104</a></div></div>
+<div class="ttc" id="a00177_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00456">fwd.hpp:456</a></div></div>
+<div class="ttc" id="a00177_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00289">fwd.hpp:289</a></div></div>
+<div class="ttc" id="a00177_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02531">fwd.hpp:2531</a></div></div>
+<div class="ttc" id="a00177_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00177.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02383">fwd.hpp:2383</a></div></div>
+<div class="ttc" id="a00177_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00140">fwd.hpp:140</a></div></div>
+<div class="ttc" id="a00177_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00877">fwd.hpp:877</a></div></div>
+<div class="ttc" id="a00177_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00124">fwd.hpp:124</a></div></div>
+<div class="ttc" id="a00177_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00805">fwd.hpp:805</a></div></div>
+<div class="ttc" id="a00177_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00236">fwd.hpp:236</a></div></div>
+<div class="ttc" id="a00177_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00755">fwd.hpp:755</a></div></div>
+<div class="ttc" id="a00177_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00787">fwd.hpp:787</a></div></div>
+<div class="ttc" id="a00177_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02347">fwd.hpp:2347</a></div></div>
+<div class="ttc" id="a00177_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02437">fwd.hpp:2437</a></div></div>
+<div class="ttc" id="a00177_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00841">fwd.hpp:841</a></div></div>
+<div class="ttc" id="a00177_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00845">fwd.hpp:845</a></div></div>
+<div class="ttc" id="a00177_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00177.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00902">fwd.hpp:902</a></div></div>
+<div class="ttc" id="a00177_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02551">fwd.hpp:2551</a></div></div>
+<div class="ttc" id="a00177_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00196">fwd.hpp:196</a></div></div>
+<div class="ttc" id="a00177_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00177.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02523">fwd.hpp:2523</a></div></div>
+<div class="ttc" id="a00177_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01061">fwd.hpp:1061</a></div></div>
+<div class="ttc" id="a00177_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00448">fwd.hpp:448</a></div></div>
+<div class="ttc" id="a00177_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02449">fwd.hpp:2449</a></div></div>
+<div class="ttc" id="a00177_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
+<div class="ttc" id="a00177_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00168">fwd.hpp:168</a></div></div>
+<div class="ttc" id="a00177_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00268">fwd.hpp:268</a></div></div>
+<div class="ttc" id="a00177_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00177.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00767">fwd.hpp:767</a></div></div>
+<div class="ttc" id="a00177_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02371">fwd.hpp:2371</a></div></div>
+<div class="ttc" id="a00177_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00898">fwd.hpp:898</a></div></div>
+<div class="ttc" id="a00177_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02339">fwd.hpp:2339</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00177_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01136">fwd.hpp:1136</a></div></div>
+<div class="ttc" id="a00177_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02413">fwd.hpp:2413</a></div></div>
+<div class="ttc" id="a00177_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02563">fwd.hpp:2563</a></div></div>
+<div class="ttc" id="a00177_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00156">fwd.hpp:156</a></div></div>
+<div class="ttc" id="a00177_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00232">fwd.hpp:232</a></div></div>
+<div class="ttc" id="a00177_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02425">fwd.hpp:2425</a></div></div>
+<div class="ttc" id="a00177_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00821">fwd.hpp:821</a></div></div>
+<div class="ttc" id="a00177_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00177.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02543">fwd.hpp:2543</a></div></div>
+<div class="ttc" id="a00177_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02539">fwd.hpp:2539</a></div></div>
+<div class="ttc" id="a00177_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02375">fwd.hpp:2375</a></div></div>
+<div class="ttc" id="a00177_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01497">fwd.hpp:1497</a></div></div>
+<div class="ttc" id="a00177_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00817">fwd.hpp:817</a></div></div>
+<div class="ttc" id="a00177_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00177.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01291">fwd.hpp:1291</a></div></div>
+<div class="ttc" id="a00177_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00144">fwd.hpp:144</a></div></div>
+<div class="ttc" id="a00177_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00177.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02511">fwd.hpp:2511</a></div></div>
+<div class="ttc" id="a00177_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00108">fwd.hpp:108</a></div></div>
+<div class="ttc" id="a00177_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
+<div class="ttc" id="a00177_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00523">fwd.hpp:523</a></div></div>
+<div class="ttc" id="a00177_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00745">fwd.hpp:745</a></div></div>
+<div class="ttc" id="a00177_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00977">fwd.hpp:977</a></div></div>
+<div class="ttc" id="a00177_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00177.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00452">fwd.hpp:452</a></div></div>
+<div class="ttc" id="a00177_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02401">fwd.hpp:2401</a></div></div>
+<div class="ttc" id="a00177_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00177.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00720">fwd.hpp:720</a></div></div>
+<div class="ttc" id="a00177_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00694">fwd.hpp:694</a></div></div>
+<div class="ttc" id="a00177_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02331">fwd.hpp:2331</a></div></div>
+<div class="ttc" id="a00177_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02387">fwd.hpp:2387</a></div></div>
+<div class="ttc" id="a00177_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02409">fwd.hpp:2409</a></div></div>
+<div class="ttc" id="a00177_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
+<div class="ttc" id="a00177_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00285">fwd.hpp:285</a></div></div>
+<div class="ttc" id="a00177_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02343">fwd.hpp:2343</a></div></div>
+<div class="ttc" id="a00177_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00690">fwd.hpp:690</a></div></div>
+<div class="ttc" id="a00177_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00136">fwd.hpp:136</a></div></div>
+<div class="ttc" id="a00177_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00177.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
+<div class="ttc" id="a00177_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00208">fwd.hpp:208</a></div></div>
+<div class="ttc" id="a00177_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00894">fwd.hpp:894</a></div></div>
+<div class="ttc" id="a00177_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00795">fwd.hpp:795</a></div></div>
+<div class="ttc" id="a00177_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02555">fwd.hpp:2555</a></div></div>
+<div class="ttc" id="a00177_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02519">fwd.hpp:2519</a></div></div>
+<div class="ttc" id="a00177_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00128">fwd.hpp:128</a></div></div>
+<div class="ttc" id="a00177_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00741">fwd.hpp:741</a></div></div>
+<div class="ttc" id="a00177_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00177.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01057">fwd.hpp:1057</a></div></div>
+<div class="ttc" id="a00177_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00779">fwd.hpp:779</a></div></div>
+<div class="ttc" id="a00177_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01053">fwd.hpp:1053</a></div></div>
+<div class="ttc" id="a00177_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02567">fwd.hpp:2567</a></div></div>
+<div class="ttc" id="a00177_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00724">fwd.hpp:724</a></div></div>
+<div class="ttc" id="a00177_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00240">fwd.hpp:240</a></div></div>
+<div class="ttc" id="a00177_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00184">fwd.hpp:184</a></div></div>
+<div class="ttc" id="a00177_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01295">fwd.hpp:1295</a></div></div>
+<div class="ttc" id="a00177_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00204">fwd.hpp:204</a></div></div>
+<div class="ttc" id="a00177_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02417">fwd.hpp:2417</a></div></div>
+<div class="ttc" id="a00177_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01144">fwd.hpp:1144</a></div></div>
+<div class="ttc" id="a00177_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00172">fwd.hpp:172</a></div></div>
+<div class="ttc" id="a00177_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00276">fwd.hpp:276</a></div></div>
+<div class="ttc" id="a00177_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02379">fwd.hpp:2379</a></div></div>
+<div class="ttc" id="a00177_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00791">fwd.hpp:791</a></div></div>
+<div class="ttc" id="a00177_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00825">fwd.hpp:825</a></div></div>
+<div class="ttc" id="a00177_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00763">fwd.hpp:763</a></div></div>
+<div class="ttc" id="a00177_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00889">fwd.hpp:889</a></div></div>
+<div class="ttc" id="a00177_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00368">fwd.hpp:368</a></div></div>
+<div class="ttc" id="a00177_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00177.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02441">fwd.hpp:2441</a></div></div>
+<div class="ttc" id="a00177_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00177.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02547">fwd.hpp:2547</a></div></div>
+<div class="ttc" id="a00177_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02351">fwd.hpp:2351</a></div></div>
+<div class="ttc" id="a00177_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00177.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00771">fwd.hpp:771</a></div></div>
+<div class="ttc" id="a00177_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02363">fwd.hpp:2363</a></div></div>
+<div class="ttc" id="a00177_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00527">fwd.hpp:527</a></div></div>
+<div class="ttc" id="a00177_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01501">fwd.hpp:1501</a></div></div>
+<div class="ttc" id="a00177_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00372">fwd.hpp:372</a></div></div>
+<div class="ttc" id="a00177_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00176">fwd.hpp:176</a></div></div>
+<div class="ttc" id="a00177_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02445">fwd.hpp:2445</a></div></div>
+<div class="ttc" id="a00177_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00364">fwd.hpp:364</a></div></div>
+<div class="ttc" id="a00177_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00177.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00535">fwd.hpp:535</a></div></div>
+<div class="ttc" id="a00177_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00132">fwd.hpp:132</a></div></div>
+<div class="ttc" id="a00177_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02405">fwd.hpp:2405</a></div></div>
+<div class="ttc" id="a00177_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02327">fwd.hpp:2327</a></div></div>
+<div class="ttc" id="a00177_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00220">fwd.hpp:220</a></div></div>
+<div class="ttc" id="a00177_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00160">fwd.hpp:160</a></div></div>
+<div class="ttc" id="a00177_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00799">fwd.hpp:799</a></div></div>
+<div class="ttc" id="a00177_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01299">fwd.hpp:1299</a></div></div>
+<div class="ttc" id="a00177_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02359">fwd.hpp:2359</a></div></div>
+<div class="ttc" id="a00177_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00376">fwd.hpp:376</a></div></div>
+<div class="ttc" id="a00177_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02335">fwd.hpp:2335</a></div></div>
+<div class="ttc" id="a00177_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00737">fwd.hpp:737</a></div></div>
+<div class="ttc" id="a00177_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00813">fwd.hpp:813</a></div></div>
+<div class="ttc" id="a00177_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02367">fwd.hpp:2367</a></div></div>
+<div class="ttc" id="a00177_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00775">fwd.hpp:775</a></div></div>
+<div class="ttc" id="a00177_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00885">fwd.hpp:885</a></div></div>
+<div class="ttc" id="a00177_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00783">fwd.hpp:783</a></div></div>
+<div class="ttc" id="a00177_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00177.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00531">fwd.hpp:531</a></div></div>
+<div class="ttc" id="a00177_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00177.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02433">fwd.hpp:2433</a></div></div>
+<div class="ttc" id="a00177_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00177.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00985">fwd.hpp:985</a></div></div>
+<div class="ttc" id="a00177_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00224">fwd.hpp:224</a></div></div>
+<div class="ttc" id="a00177_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00682">fwd.hpp:682</a></div></div>
+<div class="ttc" id="a00177_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00759">fwd.hpp:759</a></div></div>
+<div class="ttc" id="a00177_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00177.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
+<div class="ttc" id="a00177_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00112">fwd.hpp:112</a></div></div>
+<div class="ttc" id="a00177_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00120">fwd.hpp:120</a></div></div>
+<div class="ttc" id="a00177_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00152">fwd.hpp:152</a></div></div>
+<div class="ttc" id="a00177_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00272">fwd.hpp:272</a></div></div>
+<div class="ttc" id="a00177_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00280">fwd.hpp:280</a></div></div>
+<div class="ttc" id="a00177_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00293">fwd.hpp:293</a></div></div>
+<div class="ttc" id="a00177_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00728">fwd.hpp:728</a></div></div>
+<div class="ttc" id="a00177_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00200">fwd.hpp:200</a></div></div>
+<div class="ttc" id="a00177_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00881">fwd.hpp:881</a></div></div>
+<div class="ttc" id="a00177_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02461">fwd.hpp:2461</a></div></div>
+<div class="ttc" id="a00177_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02559">fwd.hpp:2559</a></div></div>
+<div class="ttc" id="a00177_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02507">fwd.hpp:2507</a></div></div>
+<div class="ttc" id="a00177_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00177.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
+<div class="ttc" id="a00177_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02527">fwd.hpp:2527</a></div></div>
+<div class="ttc" id="a00177_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02535">fwd.hpp:2535</a></div></div>
+<div class="ttc" id="a00177_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00216">fwd.hpp:216</a></div></div>
+<div class="ttc" id="a00177_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02355">fwd.hpp:2355</a></div></div>
+<div class="ttc" id="a00177_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00973">fwd.hpp:973</a></div></div>
+<div class="ttc" id="a00177_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01505">fwd.hpp:1505</a></div></div>
+<div class="ttc" id="a00177_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00212">fwd.hpp:212</a></div></div>
+<div class="ttc" id="a00177_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02453">fwd.hpp:2453</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00125.html b/doc/api/a00125.html
index 5583ae7..a03dbdc 100644
--- a/doc/api/a00125.html
+++ b/doc/api/a00125.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x3.hpp File Reference</title>
+<title>0.9.8: type_ptr.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,82 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_mat3x3.hpp File Reference</div> </div>
+<div class="title">type_ptr.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00125_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
+<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
+<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &vec)</td></tr>
+<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00178.html">GLM_GTC_type_ptr</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+gtc_half_float (dependence) </dd>
+<dd>
+<a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00125_source.html">type_mat3x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00125_source.html">type_ptr.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00125_source.html b/doc/api/a00125_source.html
index a07108a..c0de66b 100644
--- a/doc/api/a00125_source.html
+++ b/doc/api/a00125_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x3.hpp Source File</title>
+<title>0.9.8: type_ptr.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,223 +41,112 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x3.hpp</div> </div>
+<div class="title">type_ptr.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00125.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>tmat3x3</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tmat3x3<T, P> type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat3x3<T, P> transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <cstring></span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">friend</span> tvec3<U, Q> operator/(tmat3x3<U, Q> <span class="keyword">const</span> & m, tvec3<U, Q> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">friend</span> tvec3<U, Q> operator/(tvec3<U, Q> <span class="keyword">const</span> & v, tmat3x3<U, Q> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> col_type value[3];</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL tmat3x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat3x3(tmat3x3<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> template <precision Q></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL explicit tmat3x3(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL explicit tmat3x3(T const & s);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T const & x0, T const & y0, T const & z0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> T const & x1, T const & y1, T const & z1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> T const & x2, T const & y2, T const & z2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> col_type const & v0,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> col_type const & v1,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> col_type const & v2);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_type_ptr extension included")</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span><<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(genType <span class="keyword">const</span> & vec);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL tvec4<T, defaultp> <a class="code" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template<</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> typename X3, typename Y3, typename Z3></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> X1 const & x1, Y1 const & y1, Z1 const & z1,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> X2 const & x2, Y2 const & y2, Z2 const & z2,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> X3 const & x3, Y3 const & y3, Z3 const & z3);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename V1, typename V2, typename V3></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat3x3(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> tvec3<V1, P> const & v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> tvec3<V2, P> const & v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> tvec3<V3, P> const & v3);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3<U, Q> const & m);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x3<T, P> & operator=(tmat3x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat3x3<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tmat3x3<T, P> & operator+=(tmat3x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat3x3<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat3x3<T, P> & operator-=(tmat3x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tmat3x3<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tmat3x3<T, P> & operator*=(tmat3x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat3x3<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tmat3x3<T, P> & operator/=(tmat3x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat3x3<T, P> & operator++();</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat3x3<T, P> & operator--();</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tmat3x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tmat3x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> };</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tmat3x3<T, P> <span class="keyword">const</span> operator-(tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(T <span class="keyword">const</span> & s, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(T <span class="keyword">const</span> & s, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(T <span class="keyword">const</span> & s, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3<T, P>::col_type operator*(tmat3x3<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat3x3<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3<T, P>::row_type operator*(<span class="keyword">typename</span> tmat3x3<T, P>::col_type <span class="keyword">const</span> & v, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(T <span class="keyword">const</span> & s, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat3x3<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x3<T, P>::row_type operator/(<span class="keyword">typename</span> tmat3x3<T, P>::col_type <span class="keyword">const</span> & v, tmat3x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x3<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor">#include "type_mat3x3.inl"</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL tmat2x3<T, defaultp> <a class="code" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat2x4<T, defaultp> <a class="code" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL tmat3x2<T, defaultp> <a class="code" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL tmat3x4<T, defaultp> <a class="code" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tmat4x2<T, defaultp> <a class="code" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL tmat4x3<T, defaultp> <a class="code" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tquat<T, defaultp> <a class="code" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#include "type_ptr.inl"</span></div>
+<div class="ttc" id="a00178_html_gaf605a5f5e2ff594e8d404b2855b09541"><div class="ttname"><a href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">glm::make_mat4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga86f4bc63570db86346db2e567fb760f6"><div class="ttname"><a href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">glm::make_vec3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > make_vec3(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gac083edd180ab4d4b817acc60c516209b"><div class="ttname"><a href="a00178.html#gac083edd180ab4d4b817acc60c516209b">glm::make_mat3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, defaultp > make_mat3x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga967a5b934e67ff9a6d1d0d27a377a264"><div class="ttname"><a href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">glm::make_mat4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2< T, defaultp > make_mat4x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gaadafb6600af2633e4c98cc64c72f5269"><div class="ttname"><a href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">glm::make_quat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, defaultp > make_quat(T const *const ptr)</div><div class="ttdoc">Build a quaternion from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga152345176b8951c15711f6ed4f6fc237"><div class="ttname"><a href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">glm::make_vec4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, defaultp > make_vec4(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga6dfb2ac10859b0cc8e3893ea84fa95b5"><div class="ttname"><a href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">glm::make_mat2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, defaultp > make_mat2x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gac2bc10c519ffc8db9e24f325f23787ea"><div class="ttname"><a href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">glm::make_mat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga52a16e333fef7e33ca740779482a8693"><div class="ttname"><a href="a00178.html#ga52a16e333fef7e33ca740779482a8693">glm::make_mat2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00178_html_ga37988c6dd941f617cdfab86d54375fc1"><div class="ttname"><a href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">glm::make_mat2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3< T, defaultp > make_mat2x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gadb29e510762e1042069cb28bf24ae990"><div class="ttname"><a href="a00178.html#gadb29e510762e1042069cb28bf24ae990">glm::make_mat2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga3cbe7adf857c867cee77eae4617abadd"><div class="ttname"><a href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">glm::make_mat3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga5f7393c30970c5949be13ceb525093a6"><div class="ttname"><a href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">glm::make_vec2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > make_vec2(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gabe1e5066608a66da7a94f802b57b4eed"><div class="ttname"><a href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">glm::make_mat3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2< T, defaultp > make_mat3x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga4d42daced532b33cc672280e48670a51"><div class="ttname"><a href="a00178.html#ga4d42daced532b33cc672280e48670a51">glm::make_mat4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3< T, defaultp > make_mat4x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_ga2c6e6d457cb932e1ce683e4f690a6f60"><div class="ttname"><a href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">glm::make_mat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
+<div class="ttc" id="a00178_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00126.html b/doc/api/a00126.html
index 8fbce27..45617d6 100644
--- a/doc/api/a00126.html
+++ b/doc/api/a00126.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x4.hpp File Reference</title>
+<title>0.9.8: type_trait.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,21 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x4.hpp File Reference</div> </div>
+<div class="title">type_trait.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00126_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-05 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00235.html">GLM_GTX_type_trait</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00126_source.html">type_mat3x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00126_source.html">type_trait.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00126_source.html b/doc/api/a00126_source.html
index 3687710..952d517 100644
--- a/doc/api/a00126_source.html
+++ b/doc/api/a00126_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat3x4.hpp Source File</title>
+<title>0.9.8: type_trait.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,201 +41,253 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat3x4.hpp</div> </div>
+<div class="title">type_trait.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00126.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/type_vec2.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/type_vec3.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/type_vec4.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/type_mat2x2.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../detail/type_mat2x3.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../detail/type_mat2x4.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "../detail/type_mat3x2.hpp"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "../detail/type_mat3x3.hpp"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "../detail/type_mat3x4.hpp"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "../detail/type_mat4x2.hpp"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "../detail/type_mat4x3.hpp"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "../detail/type_mat4x4.hpp"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "../gtx/dual_quaternion.hpp"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_type_trait extension included")</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat3x4</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec3<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat3x4<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat4x3<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 3;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[3];</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>genType, <span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">struct </span>type</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">static</span> length_t <span class="keyword">const</span> components = 0;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> length_t <span class="keyword">const</span> cols = 0;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">static</span> length_t <span class="keyword">const</span> rows = 0;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> };</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">struct </span>type<tvec1, T, P></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> components = 1</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat3x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat3x4(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat3x4(T const & s);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0, T const & z0, T const & w0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1, T const & z1, T const & w1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T const & x2, T const & y2, T const & z2, T const & w2);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> col_type const & v0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> col_type const & v1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> col_type const & v2);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> template<</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> typename X3, typename Y3, typename Z3, typename W3></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> template <typename V1, typename V2, typename V3></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL tmat3x4(</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> tvec4<V1, P> const & v1,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> tvec4<V2, P> const & v2,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> tvec4<V3, P> const & v3);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">struct </span>type<tvec2, T, P></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> components = 2</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> };</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> };</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">struct </span>type<tvec3, T, P></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> components = 3</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> };</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">struct </span>type<tvec4, T, P></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> components = 4</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> };</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4<U, Q> const & m);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">struct </span>type<tmat2x2, T, P></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> components = 2,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> cols = 2,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> rows = 2</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> };</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tmat3x4<T, P> & operator=(tmat3x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tmat3x4<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x4<T, P> & operator+=(tmat3x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat3x4<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tmat3x4<T, P> & operator-=(tmat3x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tmat3x4<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tmat3x4<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tmat3x4<T, P> & operator++();</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat3x4<T, P> & operator--();</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tmat3x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat3x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> };</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat3x4<T, P> <span class="keyword">const</span> operator-(tmat3x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">struct </span>type<tmat2x3, T, P></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> components = 2,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> cols = 2,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> rows = 3</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> };</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">struct </span>type<tmat2x4, T, P></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> components = 2,</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> cols = 2,</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> rows = 4</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> };</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">struct </span>type<tmat3x2, T, P></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> components = 3,</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> cols = 3,</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> rows = 2</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> };</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> };</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">struct </span>type<tmat3x3, T, P></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> {</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> components = 3,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> cols = 3,</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> rows = 3</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> };</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> };</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(T <span class="keyword">const</span> & s, tmat3x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4<T, P>::col_type operator*(tmat3x4<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat3x4<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat3x4<T, P>::row_type operator*(<span class="keyword">typename</span> tmat3x4<T, P>::col_type <span class="keyword">const</span> & v, tmat3x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat2x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat3x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tmat3x4<T, P> operator/(T <span class="keyword">const</span> & s, tmat3x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat3x4<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">struct </span>type<tmat3x4, T, P></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> components = 3,</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> cols = 3,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> rows = 4</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> };</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> };</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">struct </span>type<tmat4x2, T, P></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> {</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> components = 4,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> cols = 4,</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> rows = 2</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> };</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">struct </span>type<tmat4x3, T, P></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> {</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> components = 4,</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> cols = 4,</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> rows = 3</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> };</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> };</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#include "type_mat3x4.inl"</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">struct </span>type<tmat4x4, T, P></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> components = 4,</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> cols = 4,</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> rows = 4</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> };</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> };</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">struct </span>type<tquat, T, P></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> components = 4</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> };</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> };</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">struct </span>type<tdualquat, T, P></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_vec = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_mat = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> is_quat = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">enum</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> components = 8</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> };</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> };</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor">#include "type_trait.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00127.html b/doc/api/a00127.html
index 40f4f05..997816c 100644
--- a/doc/api/a00127.html
+++ b/doc/api/a00127.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x2.hpp File Reference</title>
+<title>0.9.8: type_vec.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -45,23 +45,142 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_mat4x2.hpp File Reference</div> </div>
+<div class="title">type_vec.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00127_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
+<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
+<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
+<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
+<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
+<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
+<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
+<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
+<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
+<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
+<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
+<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
+<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
+<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
+<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
+<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
+<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
+<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
+<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
+<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
+<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
+<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
+<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
+<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
+<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
+<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
+<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
+<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
+<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
+<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
+<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
+<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
+<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
+<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
+<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
+<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
+<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
+<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
+<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
+<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
+<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
+<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
+<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
+<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
+<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
+<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
+<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
+<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
+<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
+<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
+<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
+<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
+<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
+<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
+<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
+<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
+<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
+<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
+<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
+<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
+<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-10-01 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00127_source.html">type_mat4x2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00127_source.html b/doc/api/a00127_source.html
index d2d6007..46fbfe7 100644
--- a/doc/api/a00127_source.html
+++ b/doc/api/a00127_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x2.hpp Source File</title>
+<title>0.9.8: type_vec.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,201 +46,384 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x2.hpp</div> </div>
+<div class="title">type_vec.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00127.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">type_vec2.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat4x2</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec2<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat4x2<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat2x4<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 2;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[4];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat4x2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat4x2(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat4x2(T const & x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T const & x2, T const & y2,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T const & x3, T const & y3);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> col_type const & v0,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> col_type const & v1,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> col_type const & v2,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> col_type const & v3);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> template <</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> typename X1, typename Y1,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> typename X2, typename Y2,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> typename X3, typename Y3,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> typename X4, typename Y4></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> X1 const & x1, Y1 const & y1,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> X2 const & x2, Y2 const & y2,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> X3 const & x3, Y3 const & y3,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> X4 const & x4, Y4 const & y4);</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename V1, typename V2, typename V3, typename V4></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat4x2(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> tvec2<V1, P> const & v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> tvec2<V2, P> const & v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> tvec2<V3, P> const & v3,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tvec2<V4, P> const & v4);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Matrix conversions --</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00085.html">precision.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00113.html">type_int.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> </div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a>{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">namespace </span>detail</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> {</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">template</span><std::<span class="keywordtype">size_t</span> N> <span class="keyword">struct </span>aligned {};</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(1) aligned<1>{};</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(2) aligned<2>{};</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(4) aligned<4>{};</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(8) aligned<8>{};</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(16) aligned<16>{};</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(32) aligned<32>{};</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">template</span><> GLM_ALIGNED_STRUCT(64) aligned<64>{};</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> size, <span class="keywordtype">bool</span> aligned></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">struct </span>storage</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>type {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> uint8 data[size];</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> } type;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> };</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, std::<span class="keywordtype">size_t</span> size></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">struct </span>storage<T, size, true></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">struct </span>type : aligned<size></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> uint8 data[size];</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> };</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> };</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># if GLM_ARCH & GLM_ARCH_SSE2_BIT</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">struct </span>storage<float, 16, true></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> glm_vec4 type;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">struct </span>storage<int, 16, true></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> glm_ivec4 type;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> };</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">struct </span>storage<unsigned int, 16, true></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> glm_uvec4 type;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"># else</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> typedef union __declspec(align(16)) glm_128</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> unsigned __int8 data[16];</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> } glm_128;</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> template <></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> struct storage<float, 16, true></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> };</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> template <></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> struct storage<int, 16, true></span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> };</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> template <></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> struct storage<unsigned int, 16, true></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> typedef glm_128 type;</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> };</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># if (GLM_ARCH & GLM_ARCH_AVX_BIT)</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">struct </span>storage<double, 32, true></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typedef</span> glm_dvec4 type;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"># if (GLM_ARCH & GLM_ARCH_AVX2_BIT)</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">struct </span>storage<int64, 32, true></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> glm_i64vec4 type;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> };</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">template</span> <></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">struct </span>storage<uint64, 32, true></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> glm_u64vec4 type;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }<span class="comment">//namespace detail</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2<U, Q> const & m);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec1;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec2;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec3;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_vec1_t;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_vec1_t;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_vec1_t;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">typedef</span> tvec1<double, highp> highp_dvec1_t;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> tvec1<double, mediump> mediump_dvec1_t;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">typedef</span> tvec1<double, lowp> lowp_dvec1_t;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> tvec1<int, highp> highp_ivec1_t;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">typedef</span> tvec1<int, mediump> mediump_ivec1_t;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> tvec1<int, lowp> lowp_ivec1_t;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">typedef</span> tvec1<uint, highp> highp_uvec1_t;</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> tvec1<uint, mediump> mediump_uvec1_t;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">typedef</span> tvec1<uint, lowp> lowp_uvec1_t;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">typedef</span> tvec1<bool, highp> highp_bvec1_t;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">typedef</span> tvec1<bool, mediump> mediump_bvec1_t;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">typedef</span> tvec1<bool, lowp> lowp_bvec1_t;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat4x2<T, P> & operator=(tmat4x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tmat4x2<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x2<T, P> & operator+=(tmat4x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-=(tmat4x2<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat4x2<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat4x2<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tmat4x2<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat4x2<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> };</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat4x2<T, P> <span class="keyword">const</span> operator-(tmat4x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(T <span class="keyword">const</span> & s, tmat4x2<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997"> 135</a></span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7"> 142</a></span> <span class="keyword">typedef</span> tvec2<float, mediump> <a class="code" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="a00158.html#ga51e835b2aa735782f0174328acffa521"> 149</a></span> <span class="keyword">typedef</span> tvec2<float, lowp> <a class="code" href="a00158.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="a00158.html#ga435eb408e8dfa4f7185368109d432c14"> 156</a></span> <span class="keyword">typedef</span> tvec2<double, highp> <a class="code" href="a00158.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="a00158.html#ga388fd99d9ffc7190a4732c35b0c7bfc9"> 163</a></span> <span class="keyword">typedef</span> tvec2<double, mediump> <a class="code" href="a00158.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="a00158.html#ga96eb13864627c7c832b5af36aa73bda6"> 170</a></span> <span class="keyword">typedef</span> tvec2<double, lowp> <a class="code" href="a00158.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="a00158.html#gaa015a3707413de20c03948308dba2f2e"> 177</a></span> <span class="keyword">typedef</span> tvec2<int, highp> <a class="code" href="a00158.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="a00158.html#ga199cc7c4cfa7c7cadad0c74d2f059aef"> 184</a></span> <span class="keyword">typedef</span> tvec2<int, mediump> <a class="code" href="a00158.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat4x2<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x2<T, P>::row_type operator*(<span class="keyword">typename</span> tmat4x2<T, P>::col_type <span class="keyword">const</span> & v, tmat4x2<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL tmat4x2<T, P> operator/(T <span class="keyword">const</span> & s, tmat4x2<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="a00158.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"> 191</a></span> <span class="keyword">typedef</span> tvec2<int, lowp> <a class="code" href="a00158.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="a00158.html#gaa0eed70387a998c3eca2f4e45f3efaad"> 198</a></span> <span class="keyword">typedef</span> tvec2<uint, highp> <a class="code" href="a00158.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="a00158.html#ga392c0761c8bef616801e0d81a6867ed7"> 205</a></span> <span class="keyword">typedef</span> tvec2<uint, mediump> <a class="code" href="a00158.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x2<T, P> <span class="keyword">const</span> & m1, tmat4x2<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#include "type_mat4x2.inl"</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor">#endif</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="a00158.html#ga6bfb90b936bbbc67e438bb9ac6910309"> 212</a></span> <span class="keyword">typedef</span> tvec2<uint, lowp> <a class="code" href="a00158.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="a00158.html#ga829f39950549881a08c534946c0487e1"> 219</a></span> <span class="keyword">typedef</span> tvec2<bool, highp> <a class="code" href="a00158.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="a00158.html#gae1f4f68346474246eb4a9952af49e72b"> 226</a></span> <span class="keyword">typedef</span> tvec2<bool, mediump> <a class="code" href="a00158.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="a00158.html#ga28dcda102dd8c94ec500ee786af7a30a"> 233</a></span> <span class="keyword">typedef</span> tvec2<bool, lowp> <a class="code" href="a00158.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a"> 245</a></span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83"> 252</a></span> <span class="keyword">typedef</span> tvec3<float, mediump> <a class="code" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e"> 259</a></span> <span class="keyword">typedef</span> tvec3<float, lowp> <a class="code" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="a00158.html#ga01d2c9b292e27518e4d6f8442607e8aa"> 266</a></span> <span class="keyword">typedef</span> tvec3<double, highp> <a class="code" href="a00158.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a>;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="a00158.html#ga0b4741d444b131ef1fc54b19c37f72be"> 273</a></span> <span class="keyword">typedef</span> tvec3<double, mediump> <a class="code" href="a00158.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="a00158.html#gaf7ec7b1cefeeaf63659460ef52fd06a9"> 280</a></span> <span class="keyword">typedef</span> tvec3<double, lowp> <a class="code" href="a00158.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a>;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="a00158.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f"> 287</a></span> <span class="keyword">typedef</span> tvec3<int, highp> <a class="code" href="a00158.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a>;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="a00158.html#ga9b7843453f7ad6ebfa26e50408b8dcf0"> 294</a></span> <span class="keyword">typedef</span> tvec3<int, mediump> <a class="code" href="a00158.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a>;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="a00158.html#gaa040f25233c314adc9560dcdb9dadac2"> 301</a></span> <span class="keyword">typedef</span> tvec3<int, lowp> <a class="code" href="a00158.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="a00158.html#gaf564d5be1e65bd2204754043b218c9a4"> 308</a></span> <span class="keyword">typedef</span> tvec3<uint, highp> <a class="code" href="a00158.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="a00158.html#ga54ae0b7b207b8e7e88841d146d2de12e"> 315</a></span> <span class="keyword">typedef</span> tvec3<uint, mediump> <a class="code" href="a00158.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a>;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="a00158.html#gaf0049c860a612da9bd3ba9ac9e49e820"> 322</a></span> <span class="keyword">typedef</span> tvec3<uint, lowp> <a class="code" href="a00158.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a>;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="a00158.html#gaca7c2a58eb926799c30ad547a290fccf"> 328</a></span> <span class="keyword">typedef</span> tvec3<bool, highp> <a class="code" href="a00158.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a>;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="a00158.html#ga0d1778766f17c4329a8c3f2b37f5fab0"> 334</a></span> <span class="keyword">typedef</span> tvec3<bool, mediump> <a class="code" href="a00158.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="a00158.html#ga76c0948546deeeb18bfda36f18b3e673"> 340</a></span> <span class="keyword">typedef</span> tvec3<bool, lowp> <a class="code" href="a00158.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239"> 351</a></span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae"> 357</a></span> <span class="keyword">typedef</span> tvec4<float, mediump> <a class="code" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395"> 363</a></span> <span class="keyword">typedef</span> tvec4<float, lowp> <a class="code" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00158.html#ga5d454f34d819d90b9bbb30dcb9ed7b39"> 369</a></span> <span class="keyword">typedef</span> tvec4<double, highp> <a class="code" href="a00158.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="a00158.html#ga3e804226444dfe246133fc6ec4a3912f"> 375</a></span> <span class="keyword">typedef</span> tvec4<double, mediump> <a class="code" href="a00158.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a>;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="a00158.html#gab5d6a45e1bbb13314b47793865a4c072"> 381</a></span> <span class="keyword">typedef</span> tvec4<double, lowp> <a class="code" href="a00158.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="a00158.html#ga0424a75bb400571489b8528897f35258"> 387</a></span> <span class="keyword">typedef</span> tvec4<int, highp> <a class="code" href="a00158.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="a00158.html#ga14614613c8e79772c8a6d25dd1c45995"> 393</a></span> <span class="keyword">typedef</span> tvec4<int, mediump> <a class="code" href="a00158.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="a00158.html#ga8b7483dc67dc332f9d874c6cf7172203"> 399</a></span> <span class="keyword">typedef</span> tvec4<int, lowp> <a class="code" href="a00158.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="a00158.html#ga61359f5531550e45871a97589d8dcce1"> 405</a></span> <span class="keyword">typedef</span> tvec4<uint, highp> <a class="code" href="a00158.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="a00158.html#ga631f5767b9d45c5cd3d0bcd67565b3f7"> 411</a></span> <span class="keyword">typedef</span> tvec4<uint, mediump> <a class="code" href="a00158.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="a00158.html#ga6efcd4574e112cfcda320db58e649ee3"> 417</a></span> <span class="keyword">typedef</span> tvec4<uint, lowp> <a class="code" href="a00158.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="a00158.html#gae5f9c57d04b338c9a51a9af39e50795b"> 423</a></span> <span class="keyword">typedef</span> tvec4<bool, highp> <a class="code" href="a00158.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a>;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="a00158.html#ga3f0c27f7ab42f004054a247c93a7bf57"> 429</a></span> <span class="keyword">typedef</span> tvec4<bool, mediump> <a class="code" href="a00158.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="a00158.html#gafa2087ead0d0e2a3c907e3fbd99f4d85"> 435</a></span> <span class="keyword">typedef</span> tvec4<bool, lowp> <a class="code" href="a00158.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment">// -- Default float definition --</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">typedef</span> lowp_vec2 <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">typedef</span> lowp_vec3 <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keyword">typedef</span> lowp_vec4 <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">typedef</span> mediump_vec2 <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">typedef</span> mediump_vec3 <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">typedef</span> mediump_vec4 <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword">typedef</span> highp_vec2 <a class="code" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897"> 461</a></span> <span class="keyword">typedef</span> highp_vec3 <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="a00157.html#gafbab23070ca47932487d25332adc7d7c"> 466</a></span> <span class="keyword">typedef</span> highp_vec4 <a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="comment">// -- Default double definition --</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keyword">typedef</span> lowp_dvec2 <a class="code" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="keyword">typedef</span> lowp_dvec3 <a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">typedef</span> lowp_dvec4 <a class="code" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">typedef</span> mediump_dvec2 <a class="code" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="keyword">typedef</span> mediump_dvec3 <a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">typedef</span> mediump_dvec4 <a class="code" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">typedef</span> highp_dvec2 <a class="code" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4"> 488</a></span> <span class="keyword">typedef</span> highp_dvec3 <a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1"> 493</a></span> <span class="keyword">typedef</span> highp_dvec4 <a class="code" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="comment">// -- Signed integer definition --</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">typedef</span> lowp_ivec2 <a class="code" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">typedef</span> lowp_ivec3 <a class="code" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">typedef</span> lowp_ivec4 <a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">typedef</span> mediump_ivec2 <a class="code" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keyword">typedef</span> mediump_ivec3 <a class="code" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="keyword">typedef</span> mediump_ivec4 <a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">typedef</span> highp_ivec2 <a class="code" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="a00157.html#ga34aee73784bcc247d426250540c1911c"> 515</a></span> <span class="keyword">typedef</span> highp_ivec3 <a class="code" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224"> 520</a></span> <span class="keyword">typedef</span> highp_ivec4 <a class="code" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="comment">// -- Unsigned integer definition --</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="keyword">typedef</span> lowp_uvec2 <a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="keyword">typedef</span> lowp_uvec3 <a class="code" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keyword">typedef</span> lowp_uvec4 <a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="keyword">typedef</span> mediump_uvec2 <a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keyword">typedef</span> mediump_uvec3 <a class="code" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="keyword">typedef</span> mediump_uvec4 <a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">typedef</span> highp_uvec2 <a class="code" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72"> 542</a></span> <span class="keyword">typedef</span> highp_uvec3 <a class="code" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div>
+<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e"> 547</a></span> <span class="keyword">typedef</span> highp_uvec4 <a class="code" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="comment">// -- Boolean definition --</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="keyword">typedef</span> lowp_bvec2 <a class="code" href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="keyword">typedef</span> lowp_bvec3 <a class="code" href="a00157.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="keyword">typedef</span> lowp_bvec4 <a class="code" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="keyword">typedef</span> mediump_bvec2 <a class="code" href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="keyword">typedef</span> mediump_bvec3 <a class="code" href="a00157.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="keyword">typedef</span> mediump_bvec4 <a class="code" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">typedef</span> highp_bvec2 <a class="code" href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="a00157.html#ga150731e2a148eff8752114a0e450505e"> 569</a></span> <span class="keyword">typedef</span> highp_bvec3 <a class="code" href="a00157.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6"> 574</a></span> <span class="keyword">typedef</span> highp_bvec4 <a class="code" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> }<span class="comment">//namespace glm</span></div>
+<div class="ttc" id="a00157_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00157.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00515">type_vec.hpp:515</a></div></div>
+<div class="ttc" id="a00158_html_ga8b7483dc67dc332f9d874c6cf7172203"><div class="ttname"><a href="a00158.html#ga8b7483dc67dc332f9d874c6cf7172203">glm::lowp_ivec4</a></div><div class="ttdeci">tvec4< int, lowp > lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00399">type_vec.hpp:399</a></div></div>
+<div class="ttc" id="a00157_html_ga150731e2a148eff8752114a0e450505e"><div class="ttname"><a href="a00157.html#ga150731e2a148eff8752114a0e450505e">glm::bvec3</a></div><div class="ttdeci">highp_bvec3 bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00569">type_vec.hpp:569</a></div></div>
+<div class="ttc" id="a00158_html_ga0424a75bb400571489b8528897f35258"><div class="ttname"><a href="a00158.html#ga0424a75bb400571489b8528897f35258">glm::highp_ivec4</a></div><div class="ttdeci">tvec4< int, highp > highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00387">type_vec.hpp:387</a></div></div>
+<div class="ttc" id="a00158_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4< float, lowp > lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00363">type_vec.hpp:363</a></div></div>
+<div class="ttc" id="a00158_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00158.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2< float, lowp > lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00149">type_vec.hpp:149</a></div></div>
+<div class="ttc" id="a00158_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3< float, highp > highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00245">type_vec.hpp:245</a></div></div>
+<div class="ttc" id="a00158_html_gaf7ec7b1cefeeaf63659460ef52fd06a9"><div class="ttname"><a href="a00158.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">glm::lowp_dvec3</a></div><div class="ttdeci">tvec3< double, lowp > lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00280">type_vec.hpp:280</a></div></div>
+<div class="ttc" id="a00157_html_ga444e8f61bfb3a6f037d019ac6933f8c6"><div class="ttname"><a href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">glm::bvec4</a></div><div class="ttdeci">highp_bvec4 bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00574">type_vec.hpp:574</a></div></div>
+<div class="ttc" id="a00158_html_ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><div class="ttname"><a href="a00158.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">glm::lowp_ivec2</a></div><div class="ttdeci">tvec2< int, lowp > lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00191">type_vec.hpp:191</a></div></div>
+<div class="ttc" id="a00158_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4< float, mediump > mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00357">type_vec.hpp:357</a></div></div>
+<div class="ttc" id="a00158_html_gaa0eed70387a998c3eca2f4e45f3efaad"><div class="ttname"><a href="a00158.html#gaa0eed70387a998c3eca2f4e45f3efaad">glm::highp_uvec2</a></div><div class="ttdeci">tvec2< uint, highp > highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00198">type_vec.hpp:198</a></div></div>
+<div class="ttc" id="a00157_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00466">type_vec.hpp:466</a></div></div>
+<div class="ttc" id="a00158_html_ga01d2c9b292e27518e4d6f8442607e8aa"><div class="ttname"><a href="a00158.html#ga01d2c9b292e27518e4d6f8442607e8aa">glm::highp_dvec3</a></div><div class="ttdeci">tvec3< double, highp > highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00266">type_vec.hpp:266</a></div></div>
+<div class="ttc" id="a00157_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00510">type_vec.hpp:510</a></div></div>
+<div class="ttc" id="a00158_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3< float, lowp > lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00259">type_vec.hpp:259</a></div></div>
+<div class="ttc" id="a00158_html_ga14614613c8e79772c8a6d25dd1c45995"><div class="ttname"><a href="a00158.html#ga14614613c8e79772c8a6d25dd1c45995">glm::mediump_ivec4</a></div><div class="ttdeci">tvec4< int, mediump > mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00393">type_vec.hpp:393</a></div></div>
+<div class="ttc" id="a00158_html_ga199cc7c4cfa7c7cadad0c74d2f059aef"><div class="ttname"><a href="a00158.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">glm::mediump_ivec2</a></div><div class="ttdeci">tvec2< int, mediump > mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00184">type_vec.hpp:184</a></div></div>
+<div class="ttc" id="a00158_html_gaa040f25233c314adc9560dcdb9dadac2"><div class="ttname"><a href="a00158.html#gaa040f25233c314adc9560dcdb9dadac2">glm::lowp_ivec3</a></div><div class="ttdeci">tvec3< int, lowp > lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00301">type_vec.hpp:301</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00158_html_gae5f9c57d04b338c9a51a9af39e50795b"><div class="ttname"><a href="a00158.html#gae5f9c57d04b338c9a51a9af39e50795b">glm::highp_bvec4</a></div><div class="ttdeci">tvec4< bool, highp > highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00423">type_vec.hpp:423</a></div></div>
+<div class="ttc" id="a00157_html_ga0e46aaaccc5e713eac5bfbc8d6885a60"><div class="ttname"><a href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">glm::bvec2</a></div><div class="ttdeci">highp_bvec2 bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00564">type_vec.hpp:564</a></div></div>
+<div class="ttc" id="a00158_html_gaca7c2a58eb926799c30ad547a290fccf"><div class="ttname"><a href="a00158.html#gaca7c2a58eb926799c30ad547a290fccf">glm::highp_bvec3</a></div><div class="ttdeci">tvec3< bool, highp > highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00328">type_vec.hpp:328</a></div></div>
+<div class="ttc" id="a00158_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4< float, highp > highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00351">type_vec.hpp:351</a></div></div>
+<div class="ttc" id="a00158_html_ga28dcda102dd8c94ec500ee786af7a30a"><div class="ttname"><a href="a00158.html#ga28dcda102dd8c94ec500ee786af7a30a">glm::lowp_bvec2</a></div><div class="ttdeci">tvec2< bool, lowp > lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00233">type_vec.hpp:233</a></div></div>
+<div class="ttc" id="a00158_html_ga5d454f34d819d90b9bbb30dcb9ed7b39"><div class="ttname"><a href="a00158.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">glm::highp_dvec4</a></div><div class="ttdeci">tvec4< double, highp > highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00369">type_vec.hpp:369</a></div></div>
+<div class="ttc" id="a00158_html_ga96eb13864627c7c832b5af36aa73bda6"><div class="ttname"><a href="a00158.html#ga96eb13864627c7c832b5af36aa73bda6">glm::lowp_dvec2</a></div><div class="ttdeci">tvec2< double, lowp > lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00170">type_vec.hpp:170</a></div></div>
+<div class="ttc" id="a00157_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00542">type_vec.hpp:542</a></div></div>
+<div class="ttc" id="a00158_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3< float, mediump > mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00252">type_vec.hpp:252</a></div></div>
+<div class="ttc" id="a00158_html_ga3f0c27f7ab42f004054a247c93a7bf57"><div class="ttname"><a href="a00158.html#ga3f0c27f7ab42f004054a247c93a7bf57">glm::mediump_bvec4</a></div><div class="ttdeci">tvec4< bool, mediump > mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00429">type_vec.hpp:429</a></div></div>
+<div class="ttc" id="a00158_html_gafa2087ead0d0e2a3c907e3fbd99f4d85"><div class="ttname"><a href="a00158.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">glm::lowp_bvec4</a></div><div class="ttdeci">tvec4< bool, lowp > lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00435">type_vec.hpp:435</a></div></div>
+<div class="ttc" id="a00158_html_ga631f5767b9d45c5cd3d0bcd67565b3f7"><div class="ttname"><a href="a00158.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">glm::mediump_uvec4</a></div><div class="ttdeci">tvec4< uint, mediump > mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00411">type_vec.hpp:411</a></div></div>
+<div class="ttc" id="a00158_html_ga61359f5531550e45871a97589d8dcce1"><div class="ttname"><a href="a00158.html#ga61359f5531550e45871a97589d8dcce1">glm::highp_uvec4</a></div><div class="ttdeci">tvec4< uint, highp > highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00405">type_vec.hpp:405</a></div></div>
+<div class="ttc" id="a00158_html_gaf564d5be1e65bd2204754043b218c9a4"><div class="ttname"><a href="a00158.html#gaf564d5be1e65bd2204754043b218c9a4">glm::highp_uvec3</a></div><div class="ttdeci">tvec3< uint, highp > highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00308">type_vec.hpp:308</a></div></div>
+<div class="ttc" id="a00158_html_gab5d6a45e1bbb13314b47793865a4c072"><div class="ttname"><a href="a00158.html#gab5d6a45e1bbb13314b47793865a4c072">glm::lowp_dvec4</a></div><div class="ttdeci">tvec4< double, lowp > lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00381">type_vec.hpp:381</a></div></div>
+<div class="ttc" id="a00158_html_ga8330bf0d7e6d03ca12ee2b1334c2c30f"><div class="ttname"><a href="a00158.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">glm::highp_ivec3</a></div><div class="ttdeci">tvec3< int, highp > highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00287">type_vec.hpp:287</a></div></div>
+<div class="ttc" id="a00158_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2< float, mediump > mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00142">type_vec.hpp:142</a></div></div>
+<div class="ttc" id="a00157_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00547">type_vec.hpp:547</a></div></div>
+<div class="ttc" id="a00158_html_ga388fd99d9ffc7190a4732c35b0c7bfc9"><div class="ttname"><a href="a00158.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">glm::mediump_dvec2</a></div><div class="ttdeci">tvec2< double, mediump > mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00163">type_vec.hpp:163</a></div></div>
+<div class="ttc" id="a00158_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2< float, highp > highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00135">type_vec.hpp:135</a></div></div>
+<div class="ttc" id="a00158_html_gae1f4f68346474246eb4a9952af49e72b"><div class="ttname"><a href="a00158.html#gae1f4f68346474246eb4a9952af49e72b">glm::mediump_bvec2</a></div><div class="ttdeci">tvec2< bool, mediump > mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00226">type_vec.hpp:226</a></div></div>
+<div class="ttc" id="a00158_html_ga0d1778766f17c4329a8c3f2b37f5fab0"><div class="ttname"><a href="a00158.html#ga0d1778766f17c4329a8c3f2b37f5fab0">glm::mediump_bvec3</a></div><div class="ttdeci">tvec3< bool, mediump > mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00334">type_vec.hpp:334</a></div></div>
+<div class="ttc" id="a00113_html"><div class="ttname"><a href="a00113.html">type_int.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00158_html_ga829f39950549881a08c534946c0487e1"><div class="ttname"><a href="a00158.html#ga829f39950549881a08c534946c0487e1">glm::highp_bvec2</a></div><div class="ttdeci">tvec2< bool, highp > highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00219">type_vec.hpp:219</a></div></div>
+<div class="ttc" id="a00157_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00488">type_vec.hpp:488</a></div></div>
+<div class="ttc" id="a00158_html_ga392c0761c8bef616801e0d81a6867ed7"><div class="ttname"><a href="a00158.html#ga392c0761c8bef616801e0d81a6867ed7">glm::mediump_uvec2</a></div><div class="ttdeci">tvec2< uint, mediump > mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00205">type_vec.hpp:205</a></div></div>
+<div class="ttc" id="a00157_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00537">type_vec.hpp:537</a></div></div>
+<div class="ttc" id="a00157_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00493">type_vec.hpp:493</a></div></div>
+<div class="ttc" id="a00158_html_ga3e804226444dfe246133fc6ec4a3912f"><div class="ttname"><a href="a00158.html#ga3e804226444dfe246133fc6ec4a3912f">glm::mediump_dvec4</a></div><div class="ttdeci">tvec4< double, mediump > mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00375">type_vec.hpp:375</a></div></div>
+<div class="ttc" id="a00158_html_gaf0049c860a612da9bd3ba9ac9e49e820"><div class="ttname"><a href="a00158.html#gaf0049c860a612da9bd3ba9ac9e49e820">glm::lowp_uvec3</a></div><div class="ttdeci">tvec3< uint, lowp > lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00322">type_vec.hpp:322</a></div></div>
+<div class="ttc" id="a00158_html_ga0b4741d444b131ef1fc54b19c37f72be"><div class="ttname"><a href="a00158.html#ga0b4741d444b131ef1fc54b19c37f72be">glm::mediump_dvec3</a></div><div class="ttdeci">tvec3< double, mediump > mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00273">type_vec.hpp:273</a></div></div>
+<div class="ttc" id="a00158_html_ga6bfb90b936bbbc67e438bb9ac6910309"><div class="ttname"><a href="a00158.html#ga6bfb90b936bbbc67e438bb9ac6910309">glm::lowp_uvec2</a></div><div class="ttdeci">tvec2< uint, lowp > lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00212">type_vec.hpp:212</a></div></div>
+<div class="ttc" id="a00158_html_gaa015a3707413de20c03948308dba2f2e"><div class="ttname"><a href="a00158.html#gaa015a3707413de20c03948308dba2f2e">glm::highp_ivec2</a></div><div class="ttdeci">tvec2< int, highp > highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00177">type_vec.hpp:177</a></div></div>
+<div class="ttc" id="a00158_html_ga76c0948546deeeb18bfda36f18b3e673"><div class="ttname"><a href="a00158.html#ga76c0948546deeeb18bfda36f18b3e673">glm::lowp_bvec3</a></div><div class="ttdeci">tvec3< bool, lowp > lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00340">type_vec.hpp:340</a></div></div>
+<div class="ttc" id="a00158_html_ga9b7843453f7ad6ebfa26e50408b8dcf0"><div class="ttname"><a href="a00158.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">glm::mediump_ivec3</a></div><div class="ttdeci">tvec3< int, mediump > mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00294">type_vec.hpp:294</a></div></div>
+<div class="ttc" id="a00157_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00461">type_vec.hpp:461</a></div></div>
+<div class="ttc" id="a00157_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00483">type_vec.hpp:483</a></div></div>
+<div class="ttc" id="a00158_html_ga435eb408e8dfa4f7185368109d432c14"><div class="ttname"><a href="a00158.html#ga435eb408e8dfa4f7185368109d432c14">glm::highp_dvec2</a></div><div class="ttdeci">tvec2< double, highp > highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00156">type_vec.hpp:156</a></div></div>
+<div class="ttc" id="a00157_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00456">type_vec.hpp:456</a></div></div>
+<div class="ttc" id="a00158_html_ga54ae0b7b207b8e7e88841d146d2de12e"><div class="ttname"><a href="a00158.html#ga54ae0b7b207b8e7e88841d146d2de12e">glm::mediump_uvec3</a></div><div class="ttdeci">tvec3< uint, mediump > mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00315">type_vec.hpp:315</a></div></div>
+<div class="ttc" id="a00158_html_ga6efcd4574e112cfcda320db58e649ee3"><div class="ttname"><a href="a00158.html#ga6efcd4574e112cfcda320db58e649ee3">glm::lowp_uvec4</a></div><div class="ttdeci">tvec4< uint, lowp > lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00417">type_vec.hpp:417</a></div></div>
+<div class="ttc" id="a00085_html"><div class="ttname"><a href="a00085.html">precision.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00157_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00127_source.html#l00520">type_vec.hpp:520</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00128.html b/doc/api/a00128.html
index d21cc31..d59c9e0 100644
--- a/doc/api/a00128.html
+++ b/doc/api/a00128.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x3.hpp File Reference</title>
+<title>0.9.8: type_vec1.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x3.hpp File Reference</div> </div>
+<div class="title">type_vec1.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00128_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2006-08-04 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00128_source.html">type_mat4x3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00128_source.html">type_vec1.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00128_source.html b/doc/api/a00128_source.html
index 52d8417..c62a74d 100644
--- a/doc/api/a00128_source.html
+++ b/doc/api/a00128_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x3.hpp Source File</title>
+<title>0.9.8: type_vec1.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,201 +46,306 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x3.hpp</div> </div>
+<div class="title">type_vec1.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00128.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">type_vec3.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>tmat4x3</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec3<T, P> col_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat4x3<T, P> type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tmat3x4<T, P> transpose_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 3;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> col_type value[4];</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// -- Constructors --</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL tmat4x3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL tmat4x3(tmat4x3<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> template <precision Q></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL explicit tmat4x3(ctor);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL explicit tmat4x3(T const & x);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> T const & x0, T const & y0, T const & z0,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> T const & x1, T const & y1, T const & z1,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> T const & x2, T const & y2, T const & z2,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> T const & x3, T const & y3, T const & z3);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> col_type const & v0,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> col_type const & v1,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> col_type const & v2,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> col_type const & v3);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> template <</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> typename X1, typename Y1, typename Z1,</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> typename X2, typename Y2, typename Z2,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> typename X3, typename Y3, typename Z3,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> typename X4, typename Y4, typename Z4></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> X1 const & x1, Y1 const & y1, Z1 const & z1,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> X2 const & x2, Y2 const & y2, Z2 const & z2,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> X3 const & x3, Y3 const & y3, Z3 const & z3,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> X4 const & x4, Y4 const & y4, Z4 const & z4);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">struct </span>tvec1</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> tvec1<T, P> type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">typedef</span> tvec1<bool, P> bool_type;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-pedantic"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wgnu-anonymous-struct"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wnested-anon-types"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> T x;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> T r;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> T s;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, x)</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, r)</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, s)</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, x)</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, r)</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"># endif//GLM_SWIZZLE*/</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"># endif//GLM_SWIZZLE*/</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec1() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, P> const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> template <precision Q></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, Q> const & v);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec1(ctor);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(T scalar);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// -- Conversion vector constructors --</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> template <typename V1, typename V2, typename V3, typename V4></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tmat4x3(</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> tvec3<V1, P> const & v1,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> tvec3<V2, P> const & v2,</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> tvec3<V3, P> const & v3,</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> tvec3<V4, P> const & v4);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3<U, Q> const & m);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T, P> const & x);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL tmat4x3<T, P> & operator=(tmat4x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tmat4x3<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x3<T, P> & operator+=(tmat4x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat4x3<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat4x3<T, P> & operator-=(tmat4x3<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat4x3<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat4x3<T, P> & operator/=(U s);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec2<U, Q> const & v);</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec3<U, Q> const & v);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec4<U, Q> const & v);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec1<U, Q> const & v);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">/*</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"># if(GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> template <int E0></span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1, E0, -1,-2,-3> const & that)</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> {</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> *this = that();</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> }</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"># endif//(GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">*/</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<T, P> const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename U></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename U></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tvec1<T, P> & operator+=(U scalar);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> template <typename U></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> template <typename U></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tvec1<T, P> & operator-=(U scalar);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename U></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> template <typename U></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tvec1<T, P> & operator*=(U scalar);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename U></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> template <typename U></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tvec1<T, P> & operator/=(U scalar);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> template <typename U></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tvec1<T, P> & operator++();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tvec1<T, P> & operator--();</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tvec1<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tvec1<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// -- Unary bit operators --</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat4x3<T, P> & operator++();</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tmat4x3<T, P> & operator--();</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tmat4x3<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat4x3<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> };</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat4x3<T, P> <span class="keyword">const</span> operator-(tmat4x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tmat4x3<T, P> operator+(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tmat4x3<T, P> operator-(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(T <span class="keyword">const</span> & s, tmat4x3<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3<T, P>::col_type operator*(tmat4x3<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat4x3<T, P>::row_type <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> template <typename U></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tvec1<T, P> & operator%=(U scalar);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> template <typename U></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> template <typename U></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tvec1<T, P> & operator&=(U scalar);</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> template <typename U></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> template <typename U></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tvec1<T, P> & operator|=(U scalar);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> template <typename U></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> template <typename U></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tvec1<T, P> & operator^=(U scalar);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> template <typename U></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> template <typename U></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tvec1<T, P> & operator<<=(U scalar);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> template <typename U></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> template <typename U></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tvec1<T, P> & operator>>=(U scalar);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> template <typename U></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> };</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> template <typename T, precision P></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> template <typename T, precision P></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x3<T, P>::row_type operator*(<span class="keyword">typename</span> tmat4x3<T, P>::col_type <span class="keyword">const</span> & v, tmat4x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> template <typename T, precision P></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T scalar);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> template <typename T, precision P></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tvec1<T, P> operator+(T scalar, tvec1<T, P> const & v);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> template <typename T, precision P></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> template <typename T, precision P></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T scalar);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tmat4x3<T, P> operator/(tmat4x3<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> template <typename T, precision P></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec1<T, P> operator-(T scalar, tvec1<T, P> const & v);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL tmat4x3<T, P> operator/(T <span class="keyword">const</span> & s, tmat4x3<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> template <typename T, precision P></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x3<T, P> <span class="keyword">const</span> & m1, tmat4x3<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> template <typename T, precision P></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> template <typename T, precision P></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL tvec1<T, P> operator*(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> template <typename T, precision P></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#include "type_mat4x3.inl"</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor">#endif //GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> template <typename T, precision P></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> template <typename T, precision P></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> GLM_FUNC_DECL tvec1<T, P> operator/(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> template <typename T, precision P></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> template <typename T, precision P></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> template <typename T, precision P></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> GLM_FUNC_DECL tvec1<T, P> operator%(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> template <typename T, precision P></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> template <typename T, precision P></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> template <typename T, precision P></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> GLM_FUNC_DECL tvec1<T, P> operator&(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> template <typename T, precision P></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> template <typename T, precision P></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> template <typename T, precision P></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> GLM_FUNC_DECL tvec1<T, P> operator|(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> template <typename T, precision P></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> template <typename T, precision P></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> template <typename T, precision P></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> GLM_FUNC_DECL tvec1<T, P> operator^(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> template <typename T, precision P></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> template <typename T, precision P></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> template <typename T, precision P></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> GLM_FUNC_DECL tvec1<T, P> operator<<(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> template <typename T, precision P></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> template <typename T, precision P></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T scalar);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> template <typename T, precision P></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> GLM_FUNC_DECL tvec1<T, P> operator>>(T scalar, tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> template <typename T, precision P></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> template <typename T, precision P></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> const & v);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> template <typename T, precision P></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> template <typename T, precision P></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> template <precision P></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec1<<span class="keywordtype">bool</span>, P> operator&&(tvec1<<span class="keywordtype">bool</span>, P> const & v1, tvec1<<span class="keywordtype">bool</span>, P> const & v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> template <precision P></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec1<<span class="keywordtype">bool</span>, P> operator||(tvec1<<span class="keywordtype">bool</span>, P> const & v1, tvec1<<span class="keywordtype">bool</span>, P> const & v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor">#include "type_vec1.inl"</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00129.html b/doc/api/a00129.html
index 102ec7c..c81a826 100644
--- a/doc/api/a00129.html
+++ b/doc/api/a00129.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x4.hpp File Reference</title>
+<title>0.9.8: type_vec2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x4.hpp File Reference</div> </div>
+<div class="title">type_vec2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00129_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-01-27 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00129_source.html">type_mat4x4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00129_source.html">type_vec2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00129_source.html b/doc/api/a00129_source.html
index e30da42..35bff73 100644
--- a/doc/api/a00129_source.html
+++ b/doc/api/a00129_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_mat4x4.hpp Source File</title>
+<title>0.9.8: type_vec2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,223 +46,392 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_mat4x4.hpp</div> </div>
+<div class="title">type_vec2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00129.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00136.html">type_vec4.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="a00120.html">type_mat.hpp</a>"</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>tmat4x4</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tvec4<T, P> col_type;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec4<T, P> row_type;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tmat4x4<T, P> type;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tmat4x4<T, P> transpose_type;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t cols = 4;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t rows = 4;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">friend</span> tvec4<U, Q> operator/(tmat4x4<U, Q> <span class="keyword">const</span> & m, tvec4<U, Q> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U, precision Q></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">friend</span> tvec4<U, Q> operator/(tvec4<U, Q> <span class="keyword">const</span> & v, tmat4x4<U, Q> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> col_type value[4];</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// -- Constructors --</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">struct </span>tvec2</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> tvec2<T, P> type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> tvec2<bool, P> bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-pedantic"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wgnu-anonymous-struct"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wnested-anon-types"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct</span>{ T x, y; };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">struct</span>{ T r, g; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct</span>{ T s, t; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, x, y)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, r, g)</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, s, t)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, x, y)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, r, g)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, s, t)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, x, y)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, r, g)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, s, t)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> };</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">union </span>{T x, r, s;};</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">union </span>{T y, g, t;};</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> GLM_FUNC_DECL tmat4x4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL tmat4x4(tmat4x4<T, P> const & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> template <precision Q></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL tmat4x4(tmat4x4<T, Q> const & m);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> GLM_FUNC_DECL explicit tmat4x4(ctor);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL explicit tmat4x4(T const & x);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> T const & x0, T const & y0, T const & z0, T const & w0,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> T const & x1, T const & y1, T const & z1, T const & w1,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> T const & x2, T const & y2, T const & z2, T const & w2,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> T const & x3, T const & y3, T const & z3, T const & w3);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> col_type const & v0,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> col_type const & v1,</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> col_type const & v2,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> col_type const & v3);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// -- Conversions --</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> template <</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> typename X1, typename Y1, typename Z1, typename W1,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> typename X2, typename Y2, typename Z2, typename W2,</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> typename X3, typename Y3, typename Z3, typename W3,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> typename X4, typename Y4, typename Z4, typename W4></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> template <typename V1, typename V2, typename V3, typename V4></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> GLM_FUNC_DECL tmat4x4(</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> tvec4<V1, P> const & v1,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> tvec4<V2, P> const & v2,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> tvec4<V3, P> const & v3,</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> tvec4<V4, P> const & v4);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// -- Matrix conversions --</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4<U, Q> const & m);</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// -- Accesses --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL GLM_CONSTEXPR <span class="keywordtype">size_t</span> size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL col_type & operator[](size_type i);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL col_type & operator[](length_type i);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL col_type <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<T, P> <span class="keyword">const</span> & m) GLM_DEFAULT;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x4<T, P> & operator=(tmat4x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_FUNC_DECL tmat4x4<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tmat4x4<T, P> & operator+=(tmat4x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tmat4x4<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tmat4x4<T, P> & operator-=(tmat4x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat4x4<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tmat4x4<T, P> & operator*=(tmat4x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tmat4x4<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tmat4x4<T, P> & operator/=(tmat4x4<U, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tmat4x4<T, P> & operator++();</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tmat4x4<T, P> & operator--();</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL tmat4x4<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tmat4x4<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> };</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tmat4x4<T, P> <span class="keyword">const</span> operator-(tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(T <span class="keyword">const</span> & s, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL tmat4x4<T, P> operator+(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(T <span class="keyword">const</span> & s, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tmat4x4<T, P> operator-(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(T <span class="keyword">const</span> & s, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4<T, P>::col_type operator*(tmat4x4<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat4x4<T, P>::row_type <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4<T, P>::row_type operator*(<span class="keyword">typename</span> tmat4x4<T, P>::col_type <span class="keyword">const</span> & v, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat2x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat3x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL tmat4x4<T, P> operator*(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, P> const& v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template <precision Q></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, Q> const& v);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec2(ctor);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// -- Conversion constructors --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <typename A, typename B></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2(A x, B y);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> template <typename A, typename B></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec3<U, Q> const & v);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec4<U, Q> const & v);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec2<U, Q> const & v);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, glm::tvec2, E0, E1,-1,-2> <span class="keyword">const</span>& that)</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(U scalar);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(U scalar);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(U scalar);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(U scalar);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tvec2<T, P> & operator++();</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tvec2<T, P> & operator--();</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tvec2<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tvec2<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(U scalar);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(U scalar);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(U scalar);</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(U scalar);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(U scalar);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(U scalar);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> };</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// -- Binary operators --</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> <span class="keyword">const</span> & m, T <span class="keyword">const</span> & s);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(T <span class="keyword">const</span> & s, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> <span class="keyword">const</span> & m, <span class="keyword">typename</span> tmat4x4<T, P>::row_type <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL tvec2<T, P> operator+(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> GLM_FUNC_DECL <span class="keyword">typename</span> tmat4x4<T, P>::row_type operator/(<span class="keyword">typename</span> tmat4x4<T, P>::col_type & v, tmat4x4<T, P> <span class="keyword">const</span> & m);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tmat4x4<T, P> operator/(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tmat4x4<T, P> <span class="keyword">const</span> & m1, tmat4x4<T, P> <span class="keyword">const</span> & m2);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> GLM_FUNC_DECL tvec2<T, P> operator-(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="preprocessor">#include "type_mat4x4.inl"</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00120_html"><div class="ttname"><a href="a00120.html">type_mat.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00136_html"><div class="ttname"><a href="a00136.html">type_vec4.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> GLM_FUNC_DECL tvec2<T, P> operator*(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> GLM_FUNC_DECL tvec2<T, P> operator/(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL tvec2<T, P> operator%(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec2<T, P> operator&(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL tvec2<T, P> operator|(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tvec2<T, P> operator^(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL tvec2<T, P> operator<<(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> GLM_FUNC_DECL tvec2<T, P> operator>>(T scalar, tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> GLM_FUNC_DECL tvec2<bool, P> operator&&(tvec2<bool, P> <span class="keyword">const</span> & v1, tvec2<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> GLM_FUNC_DECL tvec2<bool, P> operator||(tvec2<bool, P> <span class="keyword">const</span> & v1, tvec2<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="preprocessor">#include "type_vec2.inl"</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00130.html b/doc/api/a00130.html
index 0a61195..c06878a 100644
--- a/doc/api/a00130.html
+++ b/doc/api/a00130.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_precision.hpp File Reference</title>
+<title>0.9.8: type_vec3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,32 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_precision.hpp File Reference</div> </div>
+<div class="title">type_vec3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00130_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00181.html">GLM_GTC_type_precision</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-06-04 / 2011-12-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00130_source.html">type_precision.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00130_source.html">type_vec3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00130_source.html b/doc/api/a00130_source.html
index 7317c72..bc6af51 100644
--- a/doc/api/a00130_source.html
+++ b/doc/api/a00130_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_precision.hpp Source File</title>
+<title>0.9.8: type_vec3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,646 +41,415 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_precision.hpp</div> </div>
+<div class="title">type_vec3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00130.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_type_precision extension included")</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// Signed int vector types </span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#endif //GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">struct </span>tvec3</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> tvec3<T, P> type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> tvec3<bool, P> bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-pedantic"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wgnu-anonymous-struct"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wnested-anon-types"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct</span>{ T x, y, z; };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">struct</span>{ T r, g, b; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct</span>{ T s, t, p; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, x, y, z)</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, r, g, b)</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, s, t, p)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, x, y, z)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, r, g, b)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, s, t, p)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, x, y, z)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, r, g, b)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, s, t, p)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// -- Component accesses --</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, P> const & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> template <precision Q></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, Q> const & v);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// -- Explicit basic constructors --</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a>;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec3(ctor);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> template <typename A, typename B, typename C></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, B b, C c);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> template <typename A, typename B, typename C></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a>;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a>;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a>;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a>;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a>;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// -- Conversion vector constructors --</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, B b);</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, tvec2<B, Q> const & b);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec4<U, Q> const & v);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec3<U, Q> const & v);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> <span class="keyword">const</span> & that)</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & scalar)</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> *<span class="keyword">this</span> = tvec3<T, P>(v(), scalar);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a>;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a>;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a>;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a>;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a>;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL tvec3(T <span class="keyword">const</span> & scalar, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> *<span class="keyword">this</span> = tvec3<T, P>(scalar, v());</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> }</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(U scalar);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(U scalar);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(U scalar);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(U scalar);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// -- Increment and decrement operators --</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a>;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a>;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a>;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a>;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a>;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a>;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a>;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">typedef</span> detail::int8 int8;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keyword">typedef</span> detail::int16 int16;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">typedef</span> detail::int32 int32;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tvec3<T, P> & operator++();</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec3<T, P> & operator--();</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> GLM_FUNC_DECL tvec3<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tvec3<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(U scalar);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(U scalar);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(U scalar);</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(U scalar);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(U scalar);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(U scalar);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> };</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">typedef</span> detail::int64 int64;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">std::int8_t</a>;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">using</span> <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">std::int16_t</a>;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">std::int32_t</a>;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">std::int64_t</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a>;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a>;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a>;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a>;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">typedef</span> detail::int8 <a class="code" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">typedef</span> detail::int16 <a class="code" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> GLM_FUNC_DECL tvec3<T, P> operator+(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> GLM_FUNC_DECL tvec3<T, P> operator-(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">typedef</span> detail::int32 <a class="code" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">typedef</span> detail::int64 <a class="code" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a>;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> GLM_FUNC_DECL tvec3<T, P> operator*(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">typedef</span> tvec1<i8, defaultp> <a class="code" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a>;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">typedef</span> tvec2<i8, defaultp> <a class="code" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a>;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">typedef</span> tvec3<i8, defaultp> <a class="code" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a>;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tvec3<T, P> operator/(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">typedef</span> tvec4<i8, defaultp> <a class="code" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a>;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">typedef</span> tvec1<i16, defaultp> <a class="code" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a>;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keyword">typedef</span> tvec2<i16, defaultp> <a class="code" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a>;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">typedef</span> tvec3<i16, defaultp> <a class="code" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a>;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keyword">typedef</span> tvec4<i16, defaultp> <a class="code" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec3<T, P> operator%(T <span class="keyword">const</span> & scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">typedef</span> tvec1<i32, defaultp> <a class="code" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a>;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">typedef</span> tvec2<i32, defaultp> <a class="code" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v1, T scalar);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL tvec3<T, P> operator&(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">typedef</span> tvec3<i32, defaultp> <a class="code" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a>;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">typedef</span> tvec4<i32, defaultp> <a class="code" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">typedef</span> tvec1<i64, defaultp> <a class="code" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a>;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">typedef</span> tvec2<i64, defaultp> <a class="code" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a>;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="keyword">typedef</span> tvec3<i64, defaultp> <a class="code" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a>;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec3<T, P> operator|(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">typedef</span> tvec4<i64, defaultp> <a class="code" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a>;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment">// Unsigned int vector types</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a>;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a>;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a>;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> GLM_FUNC_DECL tvec3<T, P> operator^(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> GLM_FUNC_DECL tvec3<T, P> operator<<(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a>;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a>;</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> GLM_FUNC_DECL tvec3<T, P> operator>>(T scalar, tvec3<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> <span class="keyword">const</span> & v);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a>;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a>;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a>;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a>;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a>;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a>;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a>;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a>;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a>;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a>;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a>;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a>;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a>;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a>;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a>;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a>;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a>;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a>;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keyword">typedef</span> detail::uint8 uint8;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">typedef</span> detail::uint16 uint16;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">typedef</span> detail::uint32 uint32;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">typedef</span> detail::uint64 uint64;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor">#if GLM_HAS_EXTENDED_INTEGER_TYPE</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">std::uint8_t</a>;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">std::uint16_t</a>;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">std::uint32_t</a>;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">using</span> <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">std::uint64_t</a>;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a>;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a>;</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a>;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a>;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">typedef</span> detail::uint8 <a class="code" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a>;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keyword">typedef</span> detail::uint16 <a class="code" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a>;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">typedef</span> detail::uint32 <a class="code" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a>;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">typedef</span> detail::uint64 <a class="code" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a>;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="keyword">typedef</span> tvec1<u8, defaultp> <a class="code" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a>;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="keyword">typedef</span> tvec2<u8, defaultp> <a class="code" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a>;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="keyword">typedef</span> tvec3<u8, defaultp> <a class="code" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a>;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="keyword">typedef</span> tvec4<u8, defaultp> <a class="code" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a>;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keyword">typedef</span> tvec1<u16, defaultp> <a class="code" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a>;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">typedef</span> tvec2<u16, defaultp> <a class="code" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a>;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">typedef</span> tvec3<u16, defaultp> <a class="code" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a>;</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">typedef</span> tvec4<u16, defaultp> <a class="code" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a>;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="keyword">typedef</span> tvec1<u32, defaultp> <a class="code" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a>;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keyword">typedef</span> tvec2<u32, defaultp> <a class="code" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a>;</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keyword">typedef</span> tvec3<u32, defaultp> <a class="code" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a>;</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="keyword">typedef</span> tvec4<u32, defaultp> <a class="code" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a>;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">typedef</span> tvec1<u64, defaultp> <a class="code" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a>;</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="keyword">typedef</span> tvec2<u64, defaultp> <a class="code" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a>;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="keyword">typedef</span> tvec3<u64, defaultp> <a class="code" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a>;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="keyword">typedef</span> tvec4<u64, defaultp> <a class="code" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a>;</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment">// Float vector types</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="keyword">typedef</span> detail::float32 float32;</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">typedef</span> detail::float64 float64;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="keyword">typedef</span> detail::float32 <a class="code" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a>;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="keyword">typedef</span> detail::float64 <a class="code" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a>;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="keyword">typedef</span> float32 <a class="code" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a>;</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="keyword">typedef</span> float64 <a class="code" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a>;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">typedef</span> tvec1<float, defaultp> <a class="code" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a>;</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keyword">typedef</span> tvec2<float, defaultp> <a class="code" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a>;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keyword">typedef</span> tvec3<float, defaultp> <a class="code" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a>;</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> <span class="keyword">typedef</span> tvec4<float, defaultp> <a class="code" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a>;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword">typedef</span> tvec1<f32, defaultp> <a class="code" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a>;</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="keyword">typedef</span> tvec2<f32, defaultp> <a class="code" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a>;</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="keyword">typedef</span> tvec3<f32, defaultp> <a class="code" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a>;</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">typedef</span> tvec4<f32, defaultp> <a class="code" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a>;</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="keyword">typedef</span> tvec1<f64, defaultp> <a class="code" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a>;</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">typedef</span> tvec2<f64, defaultp> <a class="code" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a>;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="keyword">typedef</span> tvec3<f64, defaultp> <a class="code" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a>;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">typedef</span> tvec4<f64, defaultp> <a class="code" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a>;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">// Float matrix types </span></div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment">//typedef detail::tmat1x1<f32> fmat1;</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a>;</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> </div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a>;</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a>;</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="comment">//typedef f32 fmat1x1;</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a>;</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> </div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="keyword">typedef</span> tmat2x3<f32, defaultp> <a class="code" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a>;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="keyword">typedef</span> tmat2x4<f32, defaultp> <a class="code" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a>;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="keyword">typedef</span> tmat3x2<f32, defaultp> <a class="code" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a>;</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a>;</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="keyword">typedef</span> tmat3x4<f32, defaultp> <a class="code" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a>;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="keyword">typedef</span> tmat4x2<f32, defaultp> <a class="code" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a>;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> </div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="keyword">typedef</span> tmat4x3<f32, defaultp> <a class="code" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a>;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a>;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> </div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="comment">//typedef detail::tmat1x1<f32, defaultp> f32mat1;</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a>;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a>;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a>;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment">//typedef f32 f32mat1x1;</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="keyword">typedef</span> tmat2x2<f32, defaultp> <a class="code" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a>;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="keyword">typedef</span> tmat2x3<f32, defaultp> <a class="code" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a>;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="keyword">typedef</span> tmat2x4<f32, defaultp> <a class="code" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a>;</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> </div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="keyword">typedef</span> tmat3x2<f32, defaultp> <a class="code" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a>;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="keyword">typedef</span> tmat3x3<f32, defaultp> <a class="code" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a>;</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="keyword">typedef</span> tmat3x4<f32, defaultp> <a class="code" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a>;</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> </div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="keyword">typedef</span> tmat4x2<f32, defaultp> <a class="code" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a>;</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> </div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="keyword">typedef</span> tmat4x3<f32, defaultp> <a class="code" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a>;</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="keyword">typedef</span> tmat4x4<f32, defaultp> <a class="code" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a>;</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> </div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="comment">//typedef detail::tmat1x1<f64, defaultp> f64mat1;</span></div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="keyword">typedef</span> tmat2x2<f64, defaultp> <a class="code" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a>;</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> </div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">typedef</span> tmat3x3<f64, defaultp> <a class="code" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a>;</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="keyword">typedef</span> tmat4x4<f64, defaultp> <a class="code" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a>;</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> </div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment">//typedef f64 f64mat1x1;</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="keyword">typedef</span> tmat2x2<f64, defaultp> <a class="code" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a>;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> </div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> <span class="keyword">typedef</span> tmat2x3<f64, defaultp> <a class="code" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a>;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> </div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="keyword">typedef</span> tmat2x4<f64, defaultp> <a class="code" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a>;</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> </div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="keyword">typedef</span> tmat3x2<f64, defaultp> <a class="code" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a>;</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> </div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="keyword">typedef</span> tmat3x3<f64, defaultp> <a class="code" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a>;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> </div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="keyword">typedef</span> tmat3x4<f64, defaultp> <a class="code" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a>;</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> </div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="keyword">typedef</span> tmat4x2<f64, defaultp> <a class="code" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a>;</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> </div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="keyword">typedef</span> tmat4x3<f64, defaultp> <a class="code" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a>;</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> </div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keyword">typedef</span> tmat4x4<f64, defaultp> <a class="code" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a>;</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> </div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> </div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment">// Quaternion types</span></div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="keyword">typedef</span> tquat<f32, defaultp> <a class="code" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a>;</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="keyword">typedef</span> tquat<f64, defaultp> <a class="code" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a>;</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> </div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#include "type_precision.inl"</span></div>
-<div class="ttc" id="a00181_html_ga4bf09d8838a86866b39ee6e109341645"><div class="ttname"><a href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">glm::int8_t</a></div><div class="ttdeci">detail::int8 int8_t</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00297">fwd.hpp:297</a></div></div>
-<div class="ttc" id="a00181_html_gaa6a5b461bbf5fe20982472aa51896d4b"><div class="ttname"><a href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">glm::lowp_uint32</a></div><div class="ttdeci">detail::uint32 lowp_uint32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00740">fwd.hpp:740</a></div></div>
-<div class="ttc" id="a00181_html_gaebf341fc4a5be233f7dde962c2e33847"><div class="ttname"><a href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">glm::lowp_int64_t</a></div><div class="ttdeci">detail::int64 lowp_int64_t</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00157">fwd.hpp:157</a></div></div>
-<div class="ttc" id="a00181_html_ga698e36b01167fc0f037889334dce8def"><div class="ttname"><a href="a00181.html#ga698e36b01167fc0f037889334dce8def">glm::lowp_int16</a></div><div class="ttdeci">detail::int16 lowp_int16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00133">fwd.hpp:133</a></div></div>
-<div class="ttc" id="a00181_html_gaefa2ce8fbdbe89baffd262f46f2d5907"><div class="ttname"><a href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">glm::u16vec1</a></div><div class="ttdeci">highp_u16vec1 u16vec1</div><div class="ttdoc">Default precision 16 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01082">fwd.hpp:1082</a></div></div>
-<div class="ttc" id="a00181_html_ga8165913e068444f7842302d40ba897b9"><div class="ttname"><a href="a00181.html#ga8165913e068444f7842302d40ba897b9">glm::u32</a></div><div class="ttdeci">detail::uint32 u32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00931">fwd.hpp:931</a></div></div>
-<div class="ttc" id="a00181_html_gad68bfd9f881856fc863a6ebca0b67f78"><div class="ttname"><a href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">glm::lowp_uint16</a></div><div class="ttdeci">detail::uint16 lowp_uint16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00736">fwd.hpp:736</a></div></div>
-<div class="ttc" id="a00181_html_ga4ef2d77dcab241b1ef83f09edb2f1084"><div class="ttname"><a href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">glm::fvec3</a></div><div class="ttdeci">highp_f32vec3 fvec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02364">fwd.hpp:2364</a></div></div>
-<div class="ttc" id="a00181_html_gad339e25c32fe6665acf028f26c1b3e22"><div class="ttname"><a href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">glm::fmat3x3</a></div><div class="ttdeci">highp_f32mat3x3 fmat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02388">fwd.hpp:2388</a></div></div>
-<div class="ttc" id="a00181_html_ga9756e45c8f80329257f3cbdabc3bd73c"><div class="ttname"><a href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">glm::i64vec4</a></div><div class="ttdeci">highp_i64vec4 i64vec4</div><div class="ttdoc">Default precision 64 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00723">fwd.hpp:723</a></div></div>
-<div class="ttc" id="a00181_html_gaf4377997b299a287f7ab3358c9bd3e4c"><div class="ttname"><a href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">glm::f32mat3</a></div><div class="ttdeci">f32mat3x3 f32mat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02482">fwd.hpp:2482</a></div></div>
-<div class="ttc" id="a00181_html_gad1213a22bbb9e4107f07eaa4956f8281"><div class="ttname"><a href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">glm::mediump_u8</a></div><div class="ttdeci">detail::uint8 mediump_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00816">fwd.hpp:816</a></div></div>
-<div class="ttc" id="a00181_html_gac25db6d2b1e2a0f351b77ba3409ac4cd"><div class="ttname"><a href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">glm::highp_i64</a></div><div class="ttdeci">detail::int64 highp_i64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00269">fwd.hpp:269</a></div></div>
-<div class="ttc" id="a00181_html_ga0741d40e2b0fea4f1c50cb325114f075"><div class="ttname"><a href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">glm::u32vec2</a></div><div class="ttdeci">highp_u32vec2 u32vec2</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01165">fwd.hpp:1165</a></div></div>
-<div class="ttc" id="a00181_html_ga114e005014d910bea07954eee24b7efb"><div class="ttname"><a href="a00181.html#ga114e005014d910bea07954eee24b7efb">glm::u8vec4</a></div><div class="ttdeci">highp_u8vec4 u8vec4</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01014">fwd.hpp:1014</a></div></div>
-<div class="ttc" id="a00181_html_ga73c6abb280a45feeff60f9accaee91f3"><div class="ttname"><a href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">glm::highp_int64_t</a></div><div class="ttdeci">detail::int64 highp_int64_t</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00253">fwd.hpp:253</a></div></div>
-<div class="ttc" id="a00181_html_gade69872a31f066e5ae212f1af6008edb"><div class="ttname"><a href="a00181.html#gade69872a31f066e5ae212f1af6008edb">glm::i64vec2</a></div><div class="ttdeci">highp_i64vec2 i64vec2</div><div class="ttdoc">Default precision 64 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00715">fwd.hpp:715</a></div></div>
-<div class="ttc" id="a00181_html_ga042ef09ff2f0cb24a36f541bcb3a3710"><div class="ttname"><a href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">glm::int32_t</a></div><div class="ttdeci">detail::int32 int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00305">fwd.hpp:305</a></div></div>
-<div class="ttc" id="a00181_html_gad73e5e905dcf2d8cab002b4ab46e9426"><div class="ttname"><a href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">glm::i16vec4</a></div><div class="ttdeci">highp_i16vec4 i16vec4</div><div class="ttdoc">Default precision 16 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00485">fwd.hpp:485</a></div></div>
-<div class="ttc" id="a00181_html_gaf5e94bf2a20af7601787c154751dc2e1"><div class="ttname"><a href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">glm::mediump_i32</a></div><div class="ttdeci">detail::int32 mediump_i32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00217">fwd.hpp:217</a></div></div>
-<div class="ttc" id="a00181_html_ga760bcf26fdb23a2c3ecad3c928a19ae6"><div class="ttname"><a href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">glm::lowp_int8</a></div><div class="ttdeci">detail::int8 lowp_int8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00129">fwd.hpp:129</a></div></div>
-<div class="ttc" id="a00181_html_gaf3f312156984c365e9f65620354da70b"><div class="ttname"><a href="a00181.html#gaf3f312156984c365e9f65620354da70b">glm::u64</a></div><div class="ttdeci">detail::uint64 u64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00935">fwd.hpp:935</a></div></div>
-<div class="ttc" id="a00181_html_ga1b09f03da7ac43055c68a349d5445083"><div class="ttname"><a href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">glm::lowp_u8</a></div><div class="ttdeci">detail::uint8 lowp_u8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00766">fwd.hpp:766</a></div></div>
-<div class="ttc" id="a00181_html_ga302ec977b0c0c3ea245b6c9275495355"><div class="ttname"><a href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">glm::i8</a></div><div class="ttdeci">detail::int8 i8</div><div class="ttdoc">8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00314">fwd.hpp:314</a></div></div>
-<div class="ttc" id="a00181_html_ga1fa92a233b9110861cdbc8c2ccf0b5a3"><div class="ttname"><a href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">glm::mediump_uint8</a></div><div class="ttdeci">detail::uint8 mediump_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00784">fwd.hpp:784</a></div></div>
-<div class="ttc" id="a00181_html_ga219c683b0aa29f4f482f76d77d5c9e95"><div class="ttname"><a href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">glm::f64mat4</a></div><div class="ttdeci">f64mat4x4 f64mat4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02592">fwd.hpp:2592</a></div></div>
-<div class="ttc" id="a00181_html_gaf1b735b4b1145174f4e4167d13778f9b"><div class="ttname"><a href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">glm::lowp_uint32_t</a></div><div class="ttdeci">detail::uint32 lowp_uint32_t</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00757">fwd.hpp:757</a></div></div>
-<div class="ttc" id="a00181_html_ga3ebcb1f6d8d8387253de8bccb058d77f"><div class="ttname"><a href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">glm::mediump_i64</a></div><div class="ttdeci">detail::int64 mediump_i64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00221">fwd.hpp:221</a></div></div>
-<div class="ttc" id="a00181_html_ga9ece7c77c7bca7a6b824ef9c600f5e5e"><div class="ttname"><a href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">glm::i64vec3</a></div><div class="ttdeci">highp_i64vec3 i64vec3</div><div class="ttdoc">Default precision 64 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00719">fwd.hpp:719</a></div></div>
-<div class="ttc" id="a00181_html_ga727675ac6b5d2fc699520e0059735e25"><div class="ttname"><a href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">glm::highp_i32</a></div><div class="ttdeci">detail::int32 highp_i32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00265">fwd.hpp:265</a></div></div>
-<div class="ttc" id="a00181_html_ga4f072ada9552e1e480bbb3b1acde5250"><div class="ttname"><a href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">glm::lowp_u32</a></div><div class="ttdeci">detail::uint32 lowp_u32</div><div class="ttdoc">Low precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00774">fwd.hpp:774</a></div></div>
-<div class="ttc" id="a00181_html_ga0336abc2604dd2c20c30e036454b64f8"><div class="ttname"><a href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">glm::highp_i16</a></div><div class="ttdeci">detail::int16 highp_i16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00261">fwd.hpp:261</a></div></div>
-<div class="ttc" id="a00181_html_gacb88796f2d08ef253d0345aff20c3aee"><div class="ttname"><a href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">glm::highp_i8</a></div><div class="ttdeci">detail::int8 highp_i8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00257">fwd.hpp:257</a></div></div>
-<div class="ttc" id="a00181_html_gad9b52e1c271cb9c8bfae6365d3e38a23"><div class="ttname"><a href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">glm::u32vec3</a></div><div class="ttdeci">highp_u32vec3 u32vec3</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01169">fwd.hpp:1169</a></div></div>
-<div class="ttc" id="a00181_html_gab3f31d867df4874e42172ebf188a3ebd"><div class="ttname"><a href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">glm::fmat4</a></div><div class="ttdeci">fmat4x4 fmat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02416">fwd.hpp:2416</a></div></div>
-<div class="ttc" id="a00181_html_ga1bd0e914158bf03135f8a317de6debe9"><div class="ttname"><a href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">glm::mediump_u32</a></div><div class="ttdeci">detail::uint32 mediump_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00824">fwd.hpp:824</a></div></div>
-<div class="ttc" id="a00181_html_gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><div class="ttname"><a href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">glm::fvec2</a></div><div class="ttdeci">highp_f32vec2 fvec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02360">fwd.hpp:2360</a></div></div>
-<div class="ttc" id="a00181_html_ga6fbd69cbdaa44345bff923a2cf63de7e"><div class="ttname"><a href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">glm::mediump_int8</a></div><div class="ttdeci">detail::int8 mediump_int8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00177">fwd.hpp:177</a></div></div>
-<div class="ttc" id="a00181_html_ga7a6f1929464dcc680b16381a4ee5f2cf"><div class="ttname"><a href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">glm::highp_u32</a></div><div class="ttdeci">detail::uint32 highp_u32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00874">fwd.hpp:874</a></div></div>
-<div class="ttc" id="a00181_html_ga9b170dd4a8f38448a2dc93987c7875e9"><div class="ttname"><a href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">glm::mediump_uint64_t</a></div><div class="ttdeci">detail::uint64 mediump_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00812">fwd.hpp:812</a></div></div>
-<div class="ttc" id="a00181_html_ga4cca6bbd117c45f046291fc8e9d03765"><div class="ttname"><a href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">glm::i32vec1</a></div><div class="ttdeci">highp_i32vec1 i32vec1</div><div class="ttdoc">Default precision 32 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00552">fwd.hpp:552</a></div></div>
-<div class="ttc" id="a00181_html_gacd1259f3a9e8d2a9df5be2d74322ef9c"><div class="ttname"><a href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">glm::highp_u8</a></div><div class="ttdeci">detail::uint8 highp_u8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00866">fwd.hpp:866</a></div></div>
-<div class="ttc" id="a00181_html_ga7f5dbe417199277e449b8db0210acb71"><div class="ttname"><a href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">glm::u16vec3</a></div><div class="ttdeci">highp_u16vec3 u16vec3</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01090">fwd.hpp:1090</a></div></div>
-<div class="ttc" id="a00181_html_ga110bec18ca44c41c76c3c9e4d7b5bd79"><div class="ttname"><a href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">glm::i16vec2</a></div><div class="ttdeci">highp_i16vec2 i16vec2</div><div class="ttdoc">Default precision 16 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00477">fwd.hpp:477</a></div></div>
-<div class="ttc" id="a00181_html_ga1fedd5d29746afdaf2d3303a4442704e"><div class="ttname"><a href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">glm::f32mat2</a></div><div class="ttdeci">f32mat2x2 f32mat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02478">fwd.hpp:2478</a></div></div>
-<div class="ttc" id="a00181_html_gae3364a8090e7e1408056e00403dfecab"><div class="ttname"><a href="a00181.html#gae3364a8090e7e1408056e00403dfecab">glm::i32vec4</a></div><div class="ttdeci">highp_i32vec4 i32vec4</div><div class="ttdoc">Default precision 32 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00564">fwd.hpp:564</a></div></div>
-<div class="ttc" id="a00181_html_gaf645b1a60203b39c0207baff5e3d8c3c"><div class="ttname"><a href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">glm::lowp_int64</a></div><div class="ttdeci">detail::int64 lowp_int64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00141">fwd.hpp:141</a></div></div>
-<div class="ttc" id="a00181_html_ga5ed667d0247cce477f013ea31982843d"><div class="ttname"><a href="a00181.html#ga5ed667d0247cce477f013ea31982843d">glm::f32mat2x4</a></div><div class="ttdeci">highp_f32mat2x4 f32mat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02450">fwd.hpp:2450</a></div></div>
-<div class="ttc" id="a00181_html_ga8709a1ea268fa69bdf1e11616d7fbaf1"><div class="ttname"><a href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">glm::f32mat3x2</a></div><div class="ttdeci">highp_f32mat3x2 f32mat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02454">fwd.hpp:2454</a></div></div>
-<div class="ttc" id="a00181_html_ga8723186104dc02eb85da386105fba75f"><div class="ttname"><a href="a00181.html#ga8723186104dc02eb85da386105fba75f">glm::f64vec4</a></div><div class="ttdeci">highp_f64vec4 f64vec4</div><div class="ttdoc">Default double-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02544">fwd.hpp:2544</a></div></div>
-<div class="ttc" id="a00181_html_ga74b9918c90ea60ce58b3979cde963a38"><div class="ttname"><a href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">glm::f64mat2</a></div><div class="ttdeci">f64mat2x2 f64mat2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02584">fwd.hpp:2584</a></div></div>
-<div class="ttc" id="a00181_html_ga7ff73a45cea9613ebf1a9fad0b9f82ac"><div class="ttname"><a href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">glm::lowp_i32</a></div><div class="ttdeci">detail::int32 lowp_i32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00169">fwd.hpp:169</a></div></div>
-<div class="ttc" id="a00181_html_ga30652709815ad9404272a31957daa59e"><div class="ttname"><a href="a00181.html#ga30652709815ad9404272a31957daa59e">glm::mediump_uint64</a></div><div class="ttdeci">detail::uint64 mediump_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00796">fwd.hpp:796</a></div></div>
-<div class="ttc" id="a00181_html_gae0cb53ea6fe3d977fe588ce423d57cc3"><div class="ttname"><a href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">glm::f32vec2</a></div><div class="ttdeci">highp_f32vec2 f32vec2</div><div class="ttdoc">Default single-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02430">fwd.hpp:2430</a></div></div>
-<div class="ttc" id="a00181_html_gaa2d7acc0adb536fab71fe261232a40ff"><div class="ttname"><a href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">glm::u16</a></div><div class="ttdeci">detail::uint16 u16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00927">fwd.hpp:927</a></div></div>
-<div class="ttc" id="a00181_html_ga1d794d240091678f602e8de225b8d8c9"><div class="ttname"><a href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">glm::f64</a></div><div class="ttdeci">highp_float64_t f64</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01538">fwd.hpp:1538</a></div></div>
-<div class="ttc" id="a00181_html_ga68894201dd511792a7af6cff7b5adf71"><div class="ttname"><a href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">glm::f64mat3</a></div><div class="ttdeci">f64mat3x3 f64mat3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02588">fwd.hpp:2588</a></div></div>
-<div class="ttc" id="a00181_html_gac5b04f32ae3084a9131a0851e7f4cfae"><div class="ttname"><a href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">glm::f64vec1</a></div><div class="ttdeci">highp_f64vec1 f64vec1</div><div class="ttdoc">Default double-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02532">fwd.hpp:2532</a></div></div>
-<div class="ttc" id="a00181_html_ga981b63d5c5f7233a29364e0a968d139b"><div class="ttname"><a href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">glm::fvec4</a></div><div class="ttdeci">highp_f32vec4 fvec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02368">fwd.hpp:2368</a></div></div>
-<div class="ttc" id="a00181_html_gacf1ded173e1e2d049c511d095b259e21"><div class="ttname"><a href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">glm::mediump_i8</a></div><div class="ttdeci">detail::int8 mediump_i8</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00209">fwd.hpp:209</a></div></div>
-<div class="ttc" id="a00181_html_gafe2e08549805a7ded26da2a868bedbf5"><div class="ttname"><a href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">glm::f32mat4x4</a></div><div class="ttdeci">highp_f32mat4x4 f32mat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02474">fwd.hpp:2474</a></div></div>
-<div class="ttc" id="a00181_html_gaeb817419c76a0766c88713d2754e6cb3"><div class="ttname"><a href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">glm::f64mat2x2</a></div><div class="ttdeci">highp_f64mat2x2 f64mat2x2</div><div class="ttdoc">Default double-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02548">fwd.hpp:2548</a></div></div>
-<div class="ttc" id="a00181_html_ga6957c7b22f405683bb276554ca40dc37"><div class="ttname"><a href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">glm::float64_t</a></div><div class="ttdeci">highp_float64_t float64_t</div><div class="ttdoc">Default 64 bit double-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01530">fwd.hpp:1530</a></div></div>
-<div class="ttc" id="a00181_html_ga92e0c191e5cc326255284d08be3af7c5"><div class="ttname"><a href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">glm::u8vec1</a></div><div class="ttdeci">highp_u8vec1 u8vec1</div><div class="ttdoc">Default precision 8 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01002">fwd.hpp:1002</a></div></div>
-<div class="ttc" id="a00181_html_gab0082a25f19f02d2d0af0fcbe5ead732"><div class="ttname"><a href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">glm::fmat4x2</a></div><div class="ttdeci">highp_f32mat4x2 fmat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02396">fwd.hpp:2396</a></div></div>
-<div class="ttc" id="a00181_html_ga61667c99caf60ce6c48ebbbac72bd91d"><div class="ttname"><a href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">glm::u8vec2</a></div><div class="ttdeci">highp_u8vec2 u8vec2</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01006">fwd.hpp:1006</a></div></div>
-<div class="ttc" id="a00181_html_ga793c9293cc687a0e342396a377c5df77"><div class="ttname"><a href="a00181.html#ga793c9293cc687a0e342396a377c5df77">glm::u64vec1</a></div><div class="ttdeci">highp_u64vec1 u64vec1</div><div class="ttdoc">Default precision 64 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01320">fwd.hpp:1320</a></div></div>
-<div class="ttc" id="a00181_html_ga97432f9979e73e66567361fd01e4cffb"><div class="ttname"><a href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">glm::highp_uint8</a></div><div class="ttdeci">detail::uint8 highp_uint8</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00834">fwd.hpp:834</a></div></div>
-<div class="ttc" id="a00181_html_ga9df98857be695d5a30cb30f5bfa38a80"><div class="ttname"><a href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">glm::mediump_u16</a></div><div class="ttdeci">detail::uint16 mediump_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00820">fwd.hpp:820</a></div></div>
-<div class="ttc" id="a00181_html_gae1a5081181c96cc37ce9418f6e856cb6"><div class="ttname"><a href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">glm::f64mat3x3</a></div><div class="ttdeci">highp_f64mat3x3 f64mat3x3</div><div class="ttdoc">Default double-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02564">fwd.hpp:2564</a></div></div>
-<div class="ttc" id="a00181_html_ga34dd5ec1988c443bae80f1b20a8ade5f"><div class="ttname"><a href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">glm::mediump_uint32</a></div><div class="ttdeci">detail::uint32 mediump_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00792">fwd.hpp:792</a></div></div>
-<div class="ttc" id="a00181_html_ga27f897bdfe4bbded9481b8947553d1ff"><div class="ttname"><a href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">glm::f32mat4x2</a></div><div class="ttdeci">highp_f32mat4x2 f32mat4x2</div><div class="ttdoc">Default single-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02466">fwd.hpp:2466</a></div></div>
-<div class="ttc" id="a00181_html_ga5fde0fa4a3852a9dd5d637a92ee74718"><div class="ttname"><a href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">glm::highp_int16</a></div><div class="ttdeci">detail::int16 highp_int16</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00229">fwd.hpp:229</a></div></div>
-<div class="ttc" id="a00181_html_ga84ed04b4e0de18c977e932d617e7c223"><div class="ttname"><a href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">glm::highp_int32</a></div><div class="ttdeci">detail::int32 highp_int32</div><div class="ttdoc">High precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00233">fwd.hpp:233</a></div></div>
-<div class="ttc" id="a00181_html_ga6d7b3789ecb932c26430009478cac7ae"><div class="ttname"><a href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">glm::mediump_int8_t</a></div><div class="ttdeci">detail::int8 mediump_int8_t</div><div class="ttdoc">Medium precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00193">fwd.hpp:193</a></div></div>
-<div class="ttc" id="a00181_html_ga6966c0cb4673928c9c9da2e91006d2c0"><div class="ttname"><a href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">glm::f32quat</a></div><div class="ttdeci">highp_f32quat f32quat</div><div class="ttdoc">Default single-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02490">fwd.hpp:2490</a></div></div>
-<div class="ttc" id="a00181_html_ga50e58885aee2cf01bb3ba472c5b1697e"><div class="ttname"><a href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">glm::i8vec4</a></div><div class="ttdeci">highp_i8vec4 i8vec4</div><div class="ttdoc">Default precision 8 bit signed integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00405">fwd.hpp:405</a></div></div>
-<div class="ttc" id="a00181_html_gad0549c902a96a7164e4ac858d5f39dbf"><div class="ttname"><a href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">glm::highp_int8</a></div><div class="ttdeci">detail::int8 highp_int8</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00225">fwd.hpp:225</a></div></div>
-<div class="ttc" id="a00181_html_gafb18822e2eac88fa861a76cefd25d550"><div class="ttname"><a href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">glm::f64mat2x4</a></div><div class="ttdeci">highp_f64mat2x4 f64mat2x4</div><div class="ttdoc">Default double-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02556">fwd.hpp:2556</a></div></div>
-<div class="ttc" id="a00181_html_gaf524c9059f0342668d8eea359bcceaae"><div class="ttname"><a href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">glm::u16vec4</a></div><div class="ttdeci">highp_u16vec4 u16vec4</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01094">fwd.hpp:1094</a></div></div>
-<div class="ttc" id="a00181_html_ga2204827de9d4ee7fa92ef497093f7d6e"><div class="ttname"><a href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">glm::u64vec2</a></div><div class="ttdeci">highp_u64vec2 u64vec2</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01324">fwd.hpp:1324</a></div></div>
-<div class="ttc" id="a00181_html_gaa46172d7dc1c7ffe3e78107ff88adf08"><div class="ttname"><a href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">glm::highp_uint64_t</a></div><div class="ttdeci">detail::uint64 highp_uint64_t</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00862">fwd.hpp:862</a></div></div>
-<div class="ttc" id="a00181_html_gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><div class="ttname"><a href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">glm::f32</a></div><div class="ttdeci">highp_float32_t f32</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01534">fwd.hpp:1534</a></div></div>
-<div class="ttc" id="a00181_html_ga552a6bde5e75984efb0f863278da2e54"><div class="ttname"><a href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">glm::lowp_i8</a></div><div class="ttdeci">detail::int8 lowp_i8</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00161">fwd.hpp:161</a></div></div>
-<div class="ttc" id="a00181_html_ga3174a49dc84a977cad7012a62f4af02f"><div class="ttname"><a href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">glm::f32vec1</a></div><div class="ttdeci">highp_f32vec1 f32vec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02426">fwd.hpp:2426</a></div></div>
-<div class="ttc" id="a00181_html_ga2171d9dc1fefb1c82e2817f45b622eac"><div class="ttname"><a href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">glm::uint32_t</a></div><div class="ttdeci">detail::uint32 uint32_t</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00914">fwd.hpp:914</a></div></div>
-<div class="ttc" id="a00181_html_gaecc7082561fc9028b844b6cf3d305d36"><div class="ttname"><a href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">glm::u8</a></div><div class="ttdeci">detail::uint8 u8</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00923">fwd.hpp:923</a></div></div>
-<div class="ttc" id="a00181_html_ga504ce1631cb2ac02fcf1d44d8c2aa126"><div class="ttname"><a href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">glm::lowp_u16</a></div><div class="ttdeci">detail::uint16 lowp_u16</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00770">fwd.hpp:770</a></div></div>
-<div class="ttc" id="a00181_html_ga709c97c20efa24ff1d9e83cd437b8ed5"><div class="ttname"><a href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">glm::fmat2x4</a></div><div class="ttdeci">highp_f32mat2x4 fmat2x4</div><div class="ttdoc">Default single-precision floating-point 2x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02380">fwd.hpp:2380</a></div></div>
-<div class="ttc" id="a00181_html_ga10d8bd3c923a5386efcf25a4117fd84f"><div class="ttname"><a href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">glm::fvec1</a></div><div class="ttdeci">highp_f32vec1 fvec1</div><div class="ttdoc">Default single-precision floating-point vector of 1 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02356">fwd.hpp:2356</a></div></div>
-<div class="ttc" id="a00181_html_ga392b673fd10847bfb78fb808c6cf8ff7"><div class="ttname"><a href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">glm::lowp_i16</a></div><div class="ttdeci">detail::int16 lowp_i16</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00165">fwd.hpp:165</a></div></div>
-<div class="ttc" id="a00181_html_ga667b2ece2b258be898812dc2177995d1"><div class="ttname"><a href="a00181.html#ga667b2ece2b258be898812dc2177995d1">glm::lowp_uint8_t</a></div><div class="ttdeci">detail::uint8 lowp_uint8_t</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00749">fwd.hpp:749</a></div></div>
-<div class="ttc" id="a00181_html_ga3c12cef4135603fd77d8fda85808730c"><div class="ttname"><a href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">glm::i32vec2</a></div><div class="ttdeci">highp_i32vec2 i32vec2</div><div class="ttdoc">Default precision 32 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00556">fwd.hpp:556</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00181_html_ga2885a6c89916911e418c06bb76b9bdbb"><div class="ttname"><a href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">glm::mediump_uint16</a></div><div class="ttdeci">detail::uint16 mediump_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00788">fwd.hpp:788</a></div></div>
-<div class="ttc" id="a00181_html_ga14c583bd625eda8cf4935a14d5dd544d"><div class="ttname"><a href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">glm::f64quat</a></div><div class="ttdeci">highp_f64quat f64quat</div><div class="ttdoc">Default double-precision floating-point quaternion. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02596">fwd.hpp:2596</a></div></div>
-<div class="ttc" id="a00181_html_ga1085c50dd8fbeb5e7e609b1c127492a5"><div class="ttname"><a href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">glm::highp_int8_t</a></div><div class="ttdeci">detail::int8 highp_int8_t</div><div class="ttdoc">High precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00241">fwd.hpp:241</a></div></div>
-<div class="ttc" id="a00181_html_gac4e00a26a2adb5f2c0a7096810df29e5"><div class="ttname"><a href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">glm::highp_uint8_t</a></div><div class="ttdeci">detail::uint8 highp_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00850">fwd.hpp:850</a></div></div>
-<div class="ttc" id="a00181_html_gab2329c5c14ff5a03b1ddec039e2c7409"><div class="ttname"><a href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">glm::i8vec1</a></div><div class="ttdeci">highp_i8vec1 i8vec1</div><div class="ttdoc">Default precision 8 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00393">fwd.hpp:393</a></div></div>
-<div class="ttc" id="a00181_html_ga28f03a39ac56c70f9bf3ada11cb60e3b"><div class="ttname"><a href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">glm::i16vec1</a></div><div class="ttdeci">highp_i16vec1 i16vec1</div><div class="ttdoc">Default precision 16 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00473">fwd.hpp:473</a></div></div>
-<div class="ttc" id="a00181_html_gac3bc41bcac61d1ba8f02a6f68ce23f64"><div class="ttname"><a href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">glm::mediump_int64_t</a></div><div class="ttdeci">detail::int64 mediump_int64_t</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00205">fwd.hpp:205</a></div></div>
-<div class="ttc" id="a00181_html_ga74ac2e71b650162d8f7cb2a70c2f6711"><div class="ttname"><a href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">glm::fmat2x2</a></div><div class="ttdeci">highp_f32mat2x2 fmat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02372">fwd.hpp:2372</a></div></div>
-<div class="ttc" id="a00181_html_ga119c41d73fe9977358174eb3ac1035a3"><div class="ttname"><a href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">glm::lowp_int8_t</a></div><div class="ttdeci">detail::int8 lowp_int8_t</div><div class="ttdoc">Low precision 8 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00145">fwd.hpp:145</a></div></div>
-<div class="ttc" id="a00181_html_ga746dc6da204f5622e395f492997dbf57"><div class="ttname"><a href="a00181.html#ga746dc6da204f5622e395f492997dbf57">glm::highp_uint16</a></div><div class="ttdeci">detail::uint16 highp_uint16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00838">fwd.hpp:838</a></div></div>
-<div class="ttc" id="a00181_html_gaa212b805736a759998e312cbdd550fae"><div class="ttname"><a href="a00181.html#gaa212b805736a759998e312cbdd550fae">glm::lowp_uint64</a></div><div class="ttdeci">detail::uint64 lowp_uint64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00744">fwd.hpp:744</a></div></div>
-<div class="ttc" id="a00181_html_gaf17b2604c0d92bffb92375d8aa588756"><div class="ttname"><a href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">glm::fmat2x3</a></div><div class="ttdeci">highp_f32mat2x3 fmat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02376">fwd.hpp:2376</a></div></div>
-<div class="ttc" id="a00181_html_ga41d579d81c3d98edd0532244fa02da77"><div class="ttname"><a href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">glm::float32_t</a></div><div class="ttdeci">highp_float32_t float32_t</div><div class="ttdoc">Default 32 bit single-precision floating-point scalar. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01526">fwd.hpp:1526</a></div></div>
-<div class="ttc" id="a00181_html_gaf4b5993e794e252607f91535b62a7e0c"><div class="ttname"><a href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">glm::i8vec3</a></div><div class="ttdeci">highp_i8vec3 i8vec3</div><div class="ttdoc">Default precision 8 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00401">fwd.hpp:401</a></div></div>
-<div class="ttc" id="a00181_html_ga9f20af6e8eca2abdcde08408948cc1ca"><div class="ttname"><a href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">glm::fmat3x2</a></div><div class="ttdeci">highp_f32mat3x2 fmat3x2</div><div class="ttdoc">Default single-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02384">fwd.hpp:2384</a></div></div>
-<div class="ttc" id="a00181_html_ga62a17cddeb4dffb4e18fe3aea23f051a"><div class="ttname"><a href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">glm::mediump_i16</a></div><div class="ttdeci">detail::int16 mediump_i16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00213">fwd.hpp:213</a></div></div>
-<div class="ttc" id="a00181_html_ga3963b1050fc65a383ee28e3f827b6e3e"><div class="ttname"><a href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">glm::mediump_uint16_t</a></div><div class="ttdeci">detail::uint16 mediump_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00804">fwd.hpp:804</a></div></div>
-<div class="ttc" id="a00181_html_ga155ac7e9e454e2b1f73d11e1e28a0fd6"><div class="ttname"><a href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">glm::u32vec4</a></div><div class="ttdeci">highp_u32vec4 u32vec4</div><div class="ttdoc">Default precision 32 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01173">fwd.hpp:1173</a></div></div>
-<div class="ttc" id="a00181_html_gad37a55a8ce1154083a721b4ecfd55293"><div class="ttname"><a href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">glm::f64mat3x4</a></div><div class="ttdeci">highp_f64mat3x4 f64mat3x4</div><div class="ttdoc">Default double-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02568">fwd.hpp:2568</a></div></div>
-<div class="ttc" id="a00181_html_ga91c4815f93177eb423362fd296a87e9f"><div class="ttname"><a href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">glm::lowp_uint16_t</a></div><div class="ttdeci">detail::uint16 lowp_uint16_t</div><div class="ttdoc">Low precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00753">fwd.hpp:753</a></div></div>
-<div class="ttc" id="a00181_html_gadff3608baa4b5bd3ed28f95c1c2c345d"><div class="ttname"><a href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">glm::mediump_int16</a></div><div class="ttdeci">detail::int16 mediump_int16</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00181">fwd.hpp:181</a></div></div>
-<div class="ttc" id="a00181_html_gab04bc97371cb6b5f54b3688e0c81578b"><div class="ttname"><a href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">glm::fmat3x4</a></div><div class="ttdeci">highp_f32mat3x4 fmat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02392">fwd.hpp:2392</a></div></div>
-<div class="ttc" id="a00181_html_ga1a11c170f030ab34ddf037714e936cba"><div class="ttname"><a href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">glm::fmat4x3</a></div><div class="ttdeci">highp_f32mat4x3 fmat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02400">fwd.hpp:2400</a></div></div>
-<div class="ttc" id="a00181_html_ga8ca60d0ba6d438892be6017f43747661"><div class="ttname"><a href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">glm::u8vec3</a></div><div class="ttdeci">highp_u8vec3 u8vec3</div><div class="ttdoc">Default precision 8 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01010">fwd.hpp:1010</a></div></div>
-<div class="ttc" id="a00181_html_gafacc3614bb1136a7756293e67d34de22"><div class="ttname"><a href="a00181.html#gafacc3614bb1136a7756293e67d34de22">glm::f64vec3</a></div><div class="ttdeci">highp_f64vec3 f64vec3</div><div class="ttdoc">Default double-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02540">fwd.hpp:2540</a></div></div>
-<div class="ttc" id="a00181_html_gafb6ca34df28889a5db9d244aed375411"><div class="ttname"><a href="a00181.html#gafb6ca34df28889a5db9d244aed375411">glm::u64vec4</a></div><div class="ttdeci">highp_u64vec4 u64vec4</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 4 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01332">fwd.hpp:1332</a></div></div>
-<div class="ttc" id="a00181_html_ga80e72fe94c88498537e8158ba7591c54"><div class="ttname"><a href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">glm::mediump_int16_t</a></div><div class="ttdeci">detail::int16 mediump_int16_t</div><div class="ttdoc">Medium precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00197">fwd.hpp:197</a></div></div>
-<div class="ttc" id="a00181_html_ga8b2cd8d31eb345b2d641d9261c38db1a"><div class="ttname"><a href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">glm::lowp_int16_t</a></div><div class="ttdeci">detail::int16 lowp_int16_t</div><div class="ttdoc">Low precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00149">fwd.hpp:149</a></div></div>
-<div class="ttc" id="a00181_html_gaba137814a509704937746cc1e82edc32"><div class="ttname"><a href="a00181.html#gaba137814a509704937746cc1e82edc32">glm::f64mat4x3</a></div><div class="ttdeci">highp_f64mat4x3 f64mat4x3</div><div class="ttdoc">Default double-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02576">fwd.hpp:2576</a></div></div>
-<div class="ttc" id="a00181_html_gaf4dae276fd29623950de14a6ca2586b5"><div class="ttname"><a href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">glm::mediump_uint32_t</a></div><div class="ttdeci">detail::uint32 mediump_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00808">fwd.hpp:808</a></div></div>
-<div class="ttc" id="a00181_html_ga26fc7ced1ad7ca5024f1c973c8dc9180"><div class="ttname"><a href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">glm::mediump_int32_t</a></div><div class="ttdeci">detail::int32 mediump_int32_t</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00201">fwd.hpp:201</a></div></div>
-<div class="ttc" id="a00181_html_ga28d97808322d3c92186e4a0c067d7e8e"><div class="ttname"><a href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">glm::uint8_t</a></div><div class="ttdeci">detail::uint8 uint8_t</div><div class="ttdoc">8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00906">fwd.hpp:906</a></div></div>
-<div class="ttc" id="a00181_html_ga11e5684b10e098f573ff484c1a569ae2"><div class="ttname"><a href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">glm::f64mat3x2</a></div><div class="ttdeci">highp_f64mat3x2 f64mat3x2</div><div class="ttdoc">Default double-precision floating-point 3x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02560">fwd.hpp:2560</a></div></div>
-<div class="ttc" id="a00181_html_gaf3a5016bf360977ce114deb2e01ae10a"><div class="ttname"><a href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">glm::f32mat2x2</a></div><div class="ttdeci">highp_f32mat2x2 f32mat2x2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02442">fwd.hpp:2442</a></div></div>
-<div class="ttc" id="a00181_html_ga1e4c52bb824ca16c6e2e5b03635669d0"><div class="ttname"><a href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">glm::f32mat3x3</a></div><div class="ttdeci">highp_f32mat3x3 f32mat3x3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02458">fwd.hpp:2458</a></div></div>
-<div class="ttc" id="a00181_html_gacf54c3330ef60aa3d16cb676c7bcb8c7"><div class="ttname"><a href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">glm::highp_uint16_t</a></div><div class="ttdeci">detail::uint16 highp_uint16_t</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00854">fwd.hpp:854</a></div></div>
-<div class="ttc" id="a00181_html_ga6414484477e4c1b4863cf91af8fd4185"><div class="ttname"><a href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">glm::i8vec2</a></div><div class="ttdeci">highp_i8vec2 i8vec2</div><div class="ttdoc">Default precision 8 bit signed integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00397">fwd.hpp:397</a></div></div>
-<div class="ttc" id="a00181_html_gacaea06d0a79ef3172e887a7a6ba434ff"><div class="ttname"><a href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">glm::highp_int16_t</a></div><div class="ttdeci">detail::int16 highp_int16_t</div><div class="ttdoc">High precision 16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00245">fwd.hpp:245</a></div></div>
-<div class="ttc" id="a00181_html_ga864aabca5f3296e176e0c3ed9cc16b02"><div class="ttname"><a href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">glm::lowp_int32</a></div><div class="ttdeci">detail::int32 lowp_int32</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00137">fwd.hpp:137</a></div></div>
-<div class="ttc" id="a00181_html_ga0c181fdf06a309691999926b6690c969"><div class="ttname"><a href="a00181.html#ga0c181fdf06a309691999926b6690c969">glm::highp_u64</a></div><div class="ttdeci">detail::uint64 highp_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00878">fwd.hpp:878</a></div></div>
-<div class="ttc" id="a00181_html_gaa669dfb59031a441de19b34a92704d57"><div class="ttname"><a href="a00181.html#gaa669dfb59031a441de19b34a92704d57">glm::f64mat4x2</a></div><div class="ttdeci">highp_f64mat4x2 f64mat4x2</div><div class="ttdoc">Default double-precision floating-point 4x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02572">fwd.hpp:2572</a></div></div>
-<div class="ttc" id="a00181_html_ga5244cef85d6e870e240c76428a262ae8"><div class="ttname"><a href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">glm::mediump_int32</a></div><div class="ttdeci">detail::int32 mediump_int32</div><div class="ttdoc">Medium precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00185">fwd.hpp:185</a></div></div>
-<div class="ttc" id="a00181_html_ga322a7d7d2c2c68994dc872a33de63c61"><div class="ttname"><a href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">glm::int64_t</a></div><div class="ttdeci">detail::int64 int64_t</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00309">fwd.hpp:309</a></div></div>
-<div class="ttc" id="a00181_html_ga797fa3ab16e04456174c36238e091341"><div class="ttname"><a href="a00181.html#ga797fa3ab16e04456174c36238e091341">glm::f32mat4</a></div><div class="ttdeci">f32mat4x4 f32mat4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02486">fwd.hpp:2486</a></div></div>
-<div class="ttc" id="a00181_html_ga30069d1f02b19599cbfadf98c23ac6ed"><div class="ttname"><a href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">glm::lowp_u64</a></div><div class="ttdeci">detail::uint64 lowp_u64</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00778">fwd.hpp:778</a></div></div>
-<div class="ttc" id="a00181_html_ga2af9490085ae3bdf36a544e9dd073610"><div class="ttname"><a href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">glm::mediump_u64</a></div><div class="ttdeci">detail::uint64 mediump_u64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00828">fwd.hpp:828</a></div></div>
-<div class="ttc" id="a00181_html_ga8dd3a3281ae5c970ffe0c41d538aa153"><div class="ttname"><a href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">glm::lowp_uint64_t</a></div><div class="ttdeci">detail::uint64 lowp_uint64_t</div><div class="ttdoc">Low precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00761">fwd.hpp:761</a></div></div>
-<div class="ttc" id="a00181_html_gae978599c9711ac263ba732d4ac225b0e"><div class="ttname"><a href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">glm::highp_uint32_t</a></div><div class="ttdeci">detail::uint32 highp_uint32_t</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00858">fwd.hpp:858</a></div></div>
-<div class="ttc" id="a00181_html_ga973b226a9914db682c9372fc761fb535"><div class="ttname"><a href="a00181.html#ga973b226a9914db682c9372fc761fb535">glm::i16vec3</a></div><div class="ttdeci">highp_i16vec3 i16vec3</div><div class="ttdoc">Default precision 16 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00481">fwd.hpp:481</a></div></div>
-<div class="ttc" id="a00181_html_gabd79752ff357d83b49136b6299ea62d9"><div class="ttname"><a href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">glm::fmat4x4</a></div><div class="ttdeci">highp_f32mat4x4 fmat4x4</div><div class="ttdoc">Default single-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02404">fwd.hpp:2404</a></div></div>
-<div class="ttc" id="a00181_html_ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><div class="ttname"><a href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">glm::highp_int32_t</a></div><div class="ttdeci">detail::int32 highp_int32_t</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00249">fwd.hpp:249</a></div></div>
-<div class="ttc" id="a00181_html_ga91f91f411080c37730856ff5887f5bcf"><div class="ttname"><a href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">glm::uint16_t</a></div><div class="ttdeci">detail::uint16 uint16_t</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00910">fwd.hpp:910</a></div></div>
-<div class="ttc" id="a00181_html_ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><div class="ttname"><a href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">glm::f32vec3</a></div><div class="ttdeci">highp_f32vec3 f32vec3</div><div class="ttdoc">Default single-precision floating-point vector of 3 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02434">fwd.hpp:2434</a></div></div>
-<div class="ttc" id="a00181_html_ga489163773b021f1800a33cc2fa730c3b"><div class="ttname"><a href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">glm::f64mat4x4</a></div><div class="ttdeci">highp_f64mat4x4 f64mat4x4</div><div class="ttdoc">Default double-precision floating-point 4x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02580">fwd.hpp:2580</a></div></div>
-<div class="ttc" id="a00181_html_ga87d256f4719417e311cd0ea14264678d"><div class="ttname"><a href="a00181.html#ga87d256f4719417e311cd0ea14264678d">glm::f64mat2x3</a></div><div class="ttdeci">highp_f64mat2x3 f64mat2x3</div><div class="ttdoc">Default double-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02552">fwd.hpp:2552</a></div></div>
-<div class="ttc" id="a00181_html_ga256b12b650c3f2fb86878fd1c5db8bc3"><div class="ttname"><a href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">glm::highp_uint32</a></div><div class="ttdeci">detail::uint32 highp_uint32</div><div class="ttdoc">Medium precision 32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00842">fwd.hpp:842</a></div></div>
-<div class="ttc" id="a00181_html_ga8e62c883d13f47015f3b70ed88751369"><div class="ttname"><a href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">glm::highp_u16</a></div><div class="ttdeci">detail::uint16 highp_u16</div><div class="ttdoc">Medium precision 16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00870">fwd.hpp:870</a></div></div>
-<div class="ttc" id="a00181_html_gad5f1043adbe803928fe7bf1a90a1f767"><div class="ttname"><a href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">glm::f32mat2x3</a></div><div class="ttdeci">highp_f32mat2x3 f32mat2x3</div><div class="ttdoc">Default single-precision floating-point 2x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02446">fwd.hpp:2446</a></div></div>
-<div class="ttc" id="a00181_html_gabb01d4ff646ee07241934b1a0cc0f985"><div class="ttname"><a href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">glm::fmat2</a></div><div class="ttdeci">fmat2x2 fmat2</div><div class="ttdoc">Default single-precision floating-point 2x2 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02408">fwd.hpp:2408</a></div></div>
-<div class="ttc" id="a00181_html_gadfe65c78231039e90507770db50c98c7"><div class="ttname"><a href="a00181.html#gadfe65c78231039e90507770db50c98c7">glm::mediump_uint8_t</a></div><div class="ttdeci">detail::uint8 mediump_uint8_t</div><div class="ttdoc">Medium precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00800">fwd.hpp:800</a></div></div>
-<div class="ttc" id="a00181_html_ga96faea43ac5f875d2d3ffbf8d213e3eb"><div class="ttname"><a href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">glm::i32</a></div><div class="ttdeci">detail::int32 i32</div><div class="ttdoc">32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00322">fwd.hpp:322</a></div></div>
-<div class="ttc" id="a00181_html_gaeb25dbb0261f82cb08da23e26d343704"><div class="ttname"><a href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">glm::f32vec4</a></div><div class="ttdeci">highp_f32vec4 f32vec4</div><div class="ttdoc">Default single-precision floating-point vector of 4 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02438">fwd.hpp:2438</a></div></div>
-<div class="ttc" id="a00181_html_ga40cd3f391c03512f158d10a70062264e"><div class="ttname"><a href="a00181.html#ga40cd3f391c03512f158d10a70062264e">glm::i32vec3</a></div><div class="ttdeci">highp_i32vec3 i32vec3</div><div class="ttdoc">Default precision 32 bit signed integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00560">fwd.hpp:560</a></div></div>
-<div class="ttc" id="a00181_html_ga426030555085ed6c39a54e73afbef962"><div class="ttname"><a href="a00181.html#ga426030555085ed6c39a54e73afbef962">glm::u16vec2</a></div><div class="ttdeci">highp_u16vec2 u16vec2</div><div class="ttdoc">Default precision 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01086">fwd.hpp:1086</a></div></div>
-<div class="ttc" id="a00181_html_gaf49470869e9be2c059629b250619804e"><div class="ttname"><a href="a00181.html#gaf49470869e9be2c059629b250619804e">glm::lowp_uint8</a></div><div class="ttdeci">detail::uint8 lowp_uint8</div><div class="ttdoc">Low precision 8 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00732">fwd.hpp:732</a></div></div>
-<div class="ttc" id="a00181_html_ga5b4a3e499ee165efc0dc05add9c48235"><div class="ttname"><a href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">glm::i64vec1</a></div><div class="ttdeci">highp_i64vec1 i64vec1</div><div class="ttdoc">Default precision 64 bit signed integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00711">fwd.hpp:711</a></div></div>
-<div class="ttc" id="a00181_html_ga3ab5fe184343d394fb6c2723c3ee3699"><div class="ttname"><a href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">glm::i16</a></div><div class="ttdeci">detail::int16 i16</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00318">fwd.hpp:318</a></div></div>
-<div class="ttc" id="a00181_html_ga0100666c90176eaba80e49357d123c7f"><div class="ttname"><a href="a00181.html#ga0100666c90176eaba80e49357d123c7f">glm::f32mat3x4</a></div><div class="ttdeci">highp_f32mat3x4 f32mat3x4</div><div class="ttdoc">Default single-precision floating-point 3x4 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02462">fwd.hpp:2462</a></div></div>
-<div class="ttc" id="a00181_html_ga3999d3e7ff22025c16ddb601e14dfdee"><div class="ttname"><a href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">glm::uint64_t</a></div><div class="ttdeci">detail::uint64 uint64_t</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00918">fwd.hpp:918</a></div></div>
-<div class="ttc" id="a00181_html_ga226a8d52b4e3f77aaa6231135e886aac"><div class="ttname"><a href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">glm::highp_int64</a></div><div class="ttdeci">detail::int64 highp_int64</div><div class="ttdoc">High precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00237">fwd.hpp:237</a></div></div>
-<div class="ttc" id="a00181_html_ga913a8bd51e4ebccd30ad488de3c18da9"><div class="ttname"><a href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">glm::u32vec1</a></div><div class="ttdeci">highp_u32vec1 u32vec1</div><div class="ttdoc">Default precision 32 bit unsigned integer scalar type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01161">fwd.hpp:1161</a></div></div>
-<div class="ttc" id="a00181_html_gae8f5e3e964ca2ae240adc2c0d74adede"><div class="ttname"><a href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">glm::int16_t</a></div><div class="ttdeci">detail::int16 int16_t</div><div class="ttdoc">16 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00301">fwd.hpp:301</a></div></div>
-<div class="ttc" id="a00181_html_gaa69e73ffb01a52499071391d395908fb"><div class="ttname"><a href="a00181.html#gaa69e73ffb01a52499071391d395908fb">glm::f32mat4x3</a></div><div class="ttdeci">highp_f32mat4x3 f32mat4x3</div><div class="ttdoc">Default single-precision floating-point 4x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02470">fwd.hpp:2470</a></div></div>
-<div class="ttc" id="a00181_html_ga5165fbee2d78f342950265b69a07353d"><div class="ttname"><a href="a00181.html#ga5165fbee2d78f342950265b69a07353d">glm::fmat3</a></div><div class="ttdeci">fmat3x3 fmat3</div><div class="ttdoc">Default single-precision floating-point 3x3 matrix. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02412">fwd.hpp:2412</a></div></div>
-<div class="ttc" id="a00181_html_ga7b968f2b86a0442a89c7359171e1d866"><div class="ttname"><a href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">glm::mediump_int64</a></div><div class="ttdeci">detail::int64 mediump_int64</div><div class="ttdoc">Medium precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00189">fwd.hpp:189</a></div></div>
-<div class="ttc" id="a00181_html_ga0350631d35ff800e6133ac6243b13cbc"><div class="ttname"><a href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">glm::lowp_int32_t</a></div><div class="ttdeci">detail::int32 lowp_int32_t</div><div class="ttdoc">Low precision 32 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00153">fwd.hpp:153</a></div></div>
-<div class="ttc" id="a00181_html_gafaad77b464b5a35626c31205ac6780e3"><div class="ttname"><a href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">glm::f64vec2</a></div><div class="ttdeci">highp_f64vec2 f64vec2</div><div class="ttdoc">Default double-precision floating-point vector of 2 components. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l02536">fwd.hpp:2536</a></div></div>
-<div class="ttc" id="a00181_html_gaa38d732f5d4a7bc42a1b43b9d3c141ce"><div class="ttname"><a href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">glm::highp_uint64</a></div><div class="ttdeci">detail::uint64 highp_uint64</div><div class="ttdoc">Medium precision 64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00846">fwd.hpp:846</a></div></div>
-<div class="ttc" id="a00181_html_gadb997e409103d4da18abd837e636a496"><div class="ttname"><a href="a00181.html#gadb997e409103d4da18abd837e636a496">glm::i64</a></div><div class="ttdeci">detail::int64 i64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00326">fwd.hpp:326</a></div></div>
-<div class="ttc" id="a00181_html_ga3460933f040f59f0fedb29df1e9be71c"><div class="ttname"><a href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">glm::u64vec3</a></div><div class="ttdeci">highp_u64vec3 u64vec3</div><div class="ttdoc">Default precision 64 bit unsigned integer vector of 3 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l01328">fwd.hpp:1328</a></div></div>
-<div class="ttc" id="a00181_html_ga354736e0c645099cd44c42fb2f87c2b8"><div class="ttname"><a href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">glm::lowp_i64</a></div><div class="ttdeci">detail::int64 lowp_i64</div><div class="ttdoc">Low precision 64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00038_source.html#l00173">fwd.hpp:173</a></div></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> GLM_FUNC_DECL tvec3<bool, P> operator&&(tvec3<bool, P> <span class="keyword">const</span> & v1, tvec3<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> GLM_FUNC_DECL tvec3<bool, P> operator||(tvec3<bool, P> <span class="keyword">const</span> & v1, tvec3<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor">#include "type_vec3.inl"</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00131.html b/doc/api/a00131.html
index 70c913e..6399536 100644
--- a/doc/api/a00131.html
+++ b/doc/api/a00131.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_ptr.hpp File Reference</title>
+<title>0.9.8: type_vec4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,89 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_ptr.hpp File Reference</div> </div>
+<div class="title">type_vec4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00131_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &vec)</td></tr>
-<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00182.html">GLM_GTC_type_ptr</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-05-06 / 2011-06-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-gtc_half_float (dependence) </dd>
-<dd>
-<a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00131_source.html">type_ptr.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00131_source.html">type_vec4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00131_source.html b/doc/api/a00131_source.html
index 8745246..a1ad9aa 100644
--- a/doc/api/a00131_source.html
+++ b/doc/api/a00131_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_ptr.hpp Source File</title>
+<title>0.9.8: type_vec4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,112 +41,454 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_ptr.hpp</div> </div>
+<div class="title">type_vec4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00131.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include "../gtc/quaternion.hpp"</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include "../vec2.hpp"</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include "../vec3.hpp"</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "../vec4.hpp"</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "../mat2x2.hpp"</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "../mat2x3.hpp"</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#include "../mat2x4.hpp"</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "../mat3x2.hpp"</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "../mat3x3.hpp"</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "../mat3x4.hpp"</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "../mat4x2.hpp"</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "../mat4x3.hpp"</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "../mat4x4.hpp"</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include <cstring></span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_type_ptr extension included")</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span><<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> GLM_FUNC_DECL <span class="keyword">typename</span> genType::value_type <span class="keyword">const</span> * <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a>(genType <span class="keyword">const</span> & vec);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL tvec2<T, defaultp> <a class="code" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00127.html">type_vec.hpp</a>"</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">struct </span>tvec4</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// -- Implementation detail --</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">typedef</span> tvec4<T, P> type;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> tvec4<bool, P> bool_type;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"># if GLM_HAS_ALIGNED_TYPE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"># pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># pragma GCC diagnostic ignored "-pedantic"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># pragma clang diagnostic push</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wgnu-anonymous-struct"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># pragma clang diagnostic ignored "-Wnested-anon-types"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">union</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct </span>{ T x, y, z, w;};</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">struct </span>{ T r, g, b, a; };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">struct </span>{ T s, t, p, q; };</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typename</span> detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, r, g, b, a)</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec2, s, t, p, q)</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, x, y, z, w)</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, r, g, b, a)</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec3, s, t, p, q)</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, x, y, z, w)</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, r, g, b, a)</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, <a class="code" href="a00141.html">glm</a>::tvec4, s, t, p, q)</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_CLANG</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># pragma clang diagnostic pop</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># if GLM_COMPILER & GLM_COMPILER_GCC</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># else</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">union </span>{ T x, r, s; };</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">union </span>{ T y, g, t; };</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">union </span>{ T z, b, p; };</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">union </span>{ T w, a, q; };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"># if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># endif</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// -- Component accesses --</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> length_t length_type;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// -- Implicit basic constructors --</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4() GLM_DEFAULT_CTOR;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, P> const& v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> template <precision Q></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, Q> const& v);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// -- Explicit basic constructors --</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec4(ctor);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit tvec4(T scalar);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(T a, T b, T c, T d);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL tvec3<T, defaultp> <a class="code" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> GLM_FUNC_DECL tvec4<T, defaultp> <a class="code" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// -- Conversion scalar constructors --</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> template <typename A, typename B, typename C, typename D></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, C c, D d);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> template <typename A, typename B, typename C, typename D></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, P> const& a, tvec1<B, P> const& b, tvec1<C, P> const& c, tvec1<D, P> const& d);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// -- Conversion vector constructors --</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL tmat2x3<T, defaultp> <a class="code" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> GLM_FUNC_DECL tmat2x4<T, defaultp> <a class="code" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tmat3x2<T, defaultp> <a class="code" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL tmat3x4<T, defaultp> <a class="code" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> GLM_FUNC_DECL tmat4x2<T, defaultp> <a class="code" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> GLM_FUNC_DECL tmat4x3<T, defaultp> <a class="code" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tmat2x2<T, defaultp> <a class="code" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tmat3x3<T, defaultp> <a class="code" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tmat4x4<T, defaultp> <a class="code" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tquat<T, defaultp> <a class="code" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a>(T <span class="keyword">const</span> * <span class="keyword">const</span> ptr);</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#include "type_ptr.inl"</span></div>
-<div class="ttc" id="a00182_html_ga6dfb2ac10859b0cc8e3893ea84fa95b5"><div class="ttname"><a href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">glm::make_mat2x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x4< T, defaultp > make_mat2x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gadb29e510762e1042069cb28bf24ae990"><div class="ttname"><a href="a00182.html#gadb29e510762e1042069cb28bf24ae990">glm::make_mat2x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaadafb6600af2633e4c98cc64c72f5269"><div class="ttname"><a href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">glm::make_quat</a></div><div class="ttdeci">GLM_FUNC_DECL tquat< T, defaultp > make_quat(T const *const ptr)</div><div class="ttdoc">Build a quaternion from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga4d42daced532b33cc672280e48670a51"><div class="ttname"><a href="a00182.html#ga4d42daced532b33cc672280e48670a51">glm::make_mat4x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x3< T, defaultp > make_mat4x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga3cbe7adf857c867cee77eae4617abadd"><div class="ttname"><a href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">glm::make_mat3x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga5f7393c30970c5949be13ceb525093a6"><div class="ttname"><a href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">glm::make_vec2</a></div><div class="ttdeci">GLM_FUNC_DECL tvec2< T, defaultp > make_vec2(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gac083edd180ab4d4b817acc60c516209b"><div class="ttname"><a href="a00182.html#gac083edd180ab4d4b817acc60c516209b">glm::make_mat3x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x4< T, defaultp > make_mat3x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga37988c6dd941f617cdfab86d54375fc1"><div class="ttname"><a href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">glm::make_mat2x3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x3< T, defaultp > make_mat2x3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga967a5b934e67ff9a6d1d0d27a377a264"><div class="ttname"><a href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">glm::make_mat4x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x2< T, defaultp > make_mat4x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga86f4bc63570db86346db2e567fb760f6"><div class="ttname"><a href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">glm::make_vec3</a></div><div class="ttdeci">GLM_FUNC_DECL tvec3< T, defaultp > make_vec3(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00182_html_ga52a16e333fef7e33ca740779482a8693"><div class="ttname"><a href="a00182.html#ga52a16e333fef7e33ca740779482a8693">glm::make_mat2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat2x2< T, defaultp > make_mat2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga152345176b8951c15711f6ed4f6fc237"><div class="ttname"><a href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">glm::make_vec4</a></div><div class="ttdeci">GLM_FUNC_DECL tvec4< T, defaultp > make_vec4(T const *const ptr)</div><div class="ttdoc">Build a vector from a pointer. </div></div>
-<div class="ttc" id="a00182_html_ga2c6e6d457cb932e1ce683e4f690a6f60"><div class="ttname"><a href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">glm::make_mat4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaf605a5f5e2ff594e8d404b2855b09541"><div class="ttname"><a href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">glm::make_mat4x4</a></div><div class="ttdeci">GLM_FUNC_DECL tmat4x4< T, defaultp > make_mat4x4(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gabe1e5066608a66da7a94f802b57b4eed"><div class="ttname"><a href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">glm::make_mat3x2</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x2< T, defaultp > make_mat3x2(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gac2bc10c519ffc8db9e24f325f23787ea"><div class="ttname"><a href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">glm::make_mat3</a></div><div class="ttdeci">GLM_FUNC_DECL tmat3x3< T, defaultp > make_mat3(T const *const ptr)</div><div class="ttdoc">Build a matrix from a pointer. </div></div>
-<div class="ttc" id="a00182_html_gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><div class="ttname"><a href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a></div><div class="ttdeci">GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &vec)</div><div class="ttdoc">Return the constant address to the data of the input parameter. </div></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, B b, C c);</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec2<B, Q> const & b, C c);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, tvec2<C, Q> const & c);</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> template <typename A, typename B, typename C, precision Q></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, B b);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec3<B, Q> const & b);</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> template <typename A, typename B, precision Q></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> template <typename U, precision Q></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec4(tvec4<U, Q> const& v);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// -- Swizzle constructors --</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"># if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, glm::tvec4, E0, E1, E2, E3> <span class="keyword">const</span> & that)</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> *<span class="keyword">this</span> = that();</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v, detail::_swizzle<2, T, P, glm::tvec2, F0, F1, -1, -2> <span class="keyword">const</span> & u)</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), u());</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, T <span class="keyword">const</span> & y, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> *<span class="keyword">this</span> = tvec4<T, P>(x, y, v());</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & w)</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> *<span class="keyword">this</span> = tvec4<T, P>(x, v(), w);</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & z, T <span class="keyword">const</span> & w)</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), z, w);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & w)</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), w);</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> <span class="keyword">const</span> & v)</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> {</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> *<span class="keyword">this</span> = tvec4<T, P>(x, v());</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"># endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(U scalar);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(U scalar);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(U scalar);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> <span class="keyword">const</span>& v);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> <span class="keyword">const</span>& v);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(U scalar);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// -- Increment and decrement operators --</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> GLM_FUNC_DECL tvec4<T, P> & operator++();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> GLM_FUNC_DECL tvec4<T, P> & operator--();</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tvec4<T, P> operator++(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> GLM_FUNC_DECL tvec4<T, P> operator--(<span class="keywordtype">int</span>);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// -- Unary bit operators --</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(U scalar);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(U scalar);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(U scalar);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(U scalar);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(U scalar);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(U scalar);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> };</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// -- Unary operators --</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// -- Binary operators --</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tvec4<T, P> operator+(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec4<T, P> operator-(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL tvec4<T, P> operator*(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec4<T, P> operator/(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> GLM_FUNC_DECL tvec4<T, P> operator%(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> GLM_FUNC_DECL tvec4<T, P> operator&(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> GLM_FUNC_DECL tvec4<T, P> operator|(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> GLM_FUNC_DECL tvec4<T, P> operator^(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> GLM_FUNC_DECL tvec4<T, P> operator<<(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & scalar);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> GLM_FUNC_DECL tvec4<T, P> operator>>(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> <span class="keyword">const</span> & v);</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="comment">// -- Boolean operators --</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> GLM_FUNC_DECL tvec4<bool, P> operator&&(tvec4<bool, P> <span class="keyword">const</span> & v1, tvec4<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">template</span> <precision P></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> GLM_FUNC_DECL tvec4<bool, P> operator||(tvec4<bool, P> <span class="keyword">const</span> & v1, tvec4<bool, P> <span class="keyword">const</span> & v2);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> }<span class="comment">//namespace glm</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="preprocessor">#include "type_vec4.inl"</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
+<div class="ttc" id="a00127_html"><div class="ttname"><a href="a00127.html">type_vec.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">GLM Core </div></div>
+<div class="ttc" id="a00148_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
+<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00132.html b/doc/api/a00132.html
index d230c79..0b31c51 100644
--- a/doc/api/a00132.html
+++ b/doc/api/a00132.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec.hpp File Reference</title>
+<title>0.9.8: ulp.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,153 +41,45 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">type_vec.hpp File Reference</div> </div>
+<div class="title">ulp.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00132_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
-<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
-<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
-<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
-<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
-<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
-<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
-<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
-<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
-<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
-<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
-<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
-<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
-<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
-<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
-<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
-<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
-<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
-<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
-<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
-<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
-<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
-<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
-<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
-<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
-<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
-<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
-<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
-<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
-<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
-<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
-<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
-<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
-<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
-<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
-<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
-<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
-<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
-<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
-<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
-<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
-<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
-<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
-<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
-<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
-<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
-<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
-<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
-<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
-<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
-<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
-<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
-<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
-<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
-<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
-<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
-<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
-<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
-<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
-<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
-<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &x, T const &y)</td></tr>
+<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class vecType> </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType< T > const &x, vecType< T > const &y)</td></tr>
+<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &x)</td></tr>
+<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &x, uint const &Distance)</td></tr>
+<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &x)</td></tr>
+<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &x, uint const &Distance)</td></tr>
+<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-01-26 / 2014-10-05 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00179.html">GLM_GTC_ulp</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00132_source.html">ulp.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00132_source.html b/doc/api/a00132_source.html
index 83ab617..a8bd8ae 100644
--- a/doc/api/a00132_source.html
+++ b/doc/api/a00132_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec.hpp Source File</title>
+<title>0.9.8: ulp.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,294 +41,55 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec.hpp</div> </div>
+<div class="title">ulp.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00132.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Dependencies</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_ulp extension included")</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> & x);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00092.html">precision.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00119.html">type_int.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec1;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec2;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec3;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> <span class="keyword">struct </span>tvec4;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> & x);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> & x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & Distance);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> tvec1<float, highp> highp_vec1_t;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> tvec1<float, mediump> mediump_vec1_t;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> tvec1<float, lowp> lowp_vec1_t;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> tvec1<double, highp> highp_dvec1_t;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> tvec1<double, mediump> mediump_dvec1_t;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> tvec1<double, lowp> lowp_dvec1_t;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> tvec1<int, highp> highp_ivec1_t;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> tvec1<int, mediump> mediump_ivec1_t;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> tvec1<int, lowp> lowp_ivec1_t;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> tvec1<uint, highp> highp_uvec1_t;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">typedef</span> tvec1<uint, mediump> mediump_uvec1_t;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> tvec1<uint, lowp> lowp_uvec1_t;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> tvec1<bool, highp> highp_bvec1_t;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">typedef</span> tvec1<bool, mediump> mediump_bvec1_t;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">typedef</span> tvec1<bool, lowp> lowp_bvec1_t;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997"> 69</a></span> <span class="keyword">typedef</span> tvec2<float, highp> <a class="code" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7"> 76</a></span> <span class="keyword">typedef</span> tvec2<float, mediump> <a class="code" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a>;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00164.html#ga51e835b2aa735782f0174328acffa521"> 83</a></span> <span class="keyword">typedef</span> tvec2<float, lowp> <a class="code" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14"> 90</a></span> <span class="keyword">typedef</span> tvec2<double, highp> <a class="code" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a>;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9"> 97</a></span> <span class="keyword">typedef</span> tvec2<double, mediump> <a class="code" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6"> 104</a></span> <span class="keyword">typedef</span> tvec2<double, lowp> <a class="code" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a>;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00164.html#gaa015a3707413de20c03948308dba2f2e"> 111</a></span> <span class="keyword">typedef</span> tvec2<int, highp> <a class="code" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a>;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef"> 118</a></span> <span class="keyword">typedef</span> tvec2<int, mediump> <a class="code" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a>;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"> 125</a></span> <span class="keyword">typedef</span> tvec2<int, lowp> <a class="code" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad"> 132</a></span> <span class="keyword">typedef</span> tvec2<uint, highp> <a class="code" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a>;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7"> 139</a></span> <span class="keyword">typedef</span> tvec2<uint, mediump> <a class="code" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309"> 146</a></span> <span class="keyword">typedef</span> tvec2<uint, lowp> <a class="code" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a>;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="a00164.html#ga829f39950549881a08c534946c0487e1"> 153</a></span> <span class="keyword">typedef</span> tvec2<bool, highp> <a class="code" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b"> 160</a></span> <span class="keyword">typedef</span> tvec2<bool, mediump> <a class="code" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a>;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a"> 167</a></span> <span class="keyword">typedef</span> tvec2<bool, lowp> <a class="code" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a"> 179</a></span> <span class="keyword">typedef</span> tvec3<float, highp> <a class="code" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a>;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83"> 186</a></span> <span class="keyword">typedef</span> tvec3<float, mediump> <a class="code" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a>;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e"> 193</a></span> <span class="keyword">typedef</span> tvec3<float, lowp> <a class="code" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa"> 200</a></span> <span class="keyword">typedef</span> tvec3<double, highp> <a class="code" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a>;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be"> 207</a></span> <span class="keyword">typedef</span> tvec3<double, mediump> <a class="code" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9"> 214</a></span> <span class="keyword">typedef</span> tvec3<double, lowp> <a class="code" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f"> 221</a></span> <span class="keyword">typedef</span> tvec3<int, highp> <a class="code" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a>;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0"> 228</a></span> <span class="keyword">typedef</span> tvec3<int, mediump> <a class="code" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a>;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2"> 235</a></span> <span class="keyword">typedef</span> tvec3<int, lowp> <a class="code" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a>;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4"> 242</a></span> <span class="keyword">typedef</span> tvec3<uint, highp> <a class="code" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e"> 249</a></span> <span class="keyword">typedef</span> tvec3<uint, mediump> <a class="code" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a>;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
-<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820"> 256</a></span> <span class="keyword">typedef</span> tvec3<uint, lowp> <a class="code" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a>;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf"> 262</a></span> <span class="keyword">typedef</span> tvec3<bool, highp> <a class="code" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a>;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div>
-<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0"> 268</a></span> <span class="keyword">typedef</span> tvec3<bool, mediump> <a class="code" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a>;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
-<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673"> 274</a></span> <span class="keyword">typedef</span> tvec3<bool, lowp> <a class="code" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a>;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239"> 285</a></span> <span class="keyword">typedef</span> tvec4<float, highp> <a class="code" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a>;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae"> 291</a></span> <span class="keyword">typedef</span> tvec4<float, mediump> <a class="code" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395"> 297</a></span> <span class="keyword">typedef</span> tvec4<float, lowp> <a class="code" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a>;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39"> 303</a></span> <span class="keyword">typedef</span> tvec4<double, highp> <a class="code" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a>;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f"> 309</a></span> <span class="keyword">typedef</span> tvec4<double, mediump> <a class="code" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a>;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072"> 315</a></span> <span class="keyword">typedef</span> tvec4<double, lowp> <a class="code" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a>;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="a00164.html#ga0424a75bb400571489b8528897f35258"> 321</a></span> <span class="keyword">typedef</span> tvec4<int, highp> <a class="code" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a>;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995"> 327</a></span> <span class="keyword">typedef</span> tvec4<int, mediump> <a class="code" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a>;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203"> 333</a></span> <span class="keyword">typedef</span> tvec4<int, lowp> <a class="code" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a>;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
-<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="a00164.html#ga61359f5531550e45871a97589d8dcce1"> 339</a></span> <span class="keyword">typedef</span> tvec4<uint, highp> <a class="code" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a>;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7"> 345</a></span> <span class="keyword">typedef</span> tvec4<uint, mediump> <a class="code" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a>;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3"> 351</a></span> <span class="keyword">typedef</span> tvec4<uint, lowp> <a class="code" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a>;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b"> 357</a></span> <span class="keyword">typedef</span> tvec4<bool, highp> <a class="code" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a>;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
-<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57"> 363</a></span> <span class="keyword">typedef</span> tvec4<bool, mediump> <a class="code" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85"> 369</a></span> <span class="keyword">typedef</span> tvec4<bool, lowp> <a class="code" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a>;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// -- Default float definition --</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">typedef</span> lowp_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">typedef</span> lowp_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">typedef</span> lowp_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">typedef</span> mediump_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">typedef</span> mediump_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keyword">typedef</span> mediump_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_FLOAT)</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">typedef</span> highp_vec2 <a class="code" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897"> 395</a></span> <span class="keyword">typedef</span> highp_vec3 <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a>;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="a00163.html#gafbab23070ca47932487d25332adc7d7c"> 400</a></span> <span class="keyword">typedef</span> highp_vec4 <a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a>;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="comment">// -- Default double definition --</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">typedef</span> lowp_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">typedef</span> lowp_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="keyword">typedef</span> lowp_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">typedef</span> mediump_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">typedef</span> mediump_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keyword">typedef</span> mediump_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_DOUBLE)</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">typedef</span> highp_dvec2 <a class="code" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a>;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4"> 422</a></span> <span class="keyword">typedef</span> highp_dvec3 <a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a>;</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1"> 427</a></span> <span class="keyword">typedef</span> highp_dvec4 <a class="code" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a>;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="comment">// -- Signed integer definition --</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">typedef</span> lowp_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">typedef</span> lowp_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">typedef</span> lowp_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">typedef</span> mediump_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">typedef</span> mediump_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">typedef</span> mediump_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_INT)</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword">typedef</span> highp_ivec2 <a class="code" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a>;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="a00163.html#ga34aee73784bcc247d426250540c1911c"> 449</a></span> <span class="keyword">typedef</span> highp_ivec3 <a class="code" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a>;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224"> 454</a></span> <span class="keyword">typedef</span> highp_ivec4 <a class="code" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a>;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment">// -- Unsigned integer definition --</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">typedef</span> lowp_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">typedef</span> lowp_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">typedef</span> lowp_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">typedef</span> mediump_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">typedef</span> mediump_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">typedef</span> mediump_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_UINT)</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">typedef</span> highp_uvec2 <a class="code" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a>;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72"> 476</a></span> <span class="keyword">typedef</span> highp_uvec3 <a class="code" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a>;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e"> 481</a></span> <span class="keyword">typedef</span> highp_uvec4 <a class="code" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a>;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment">// -- Boolean definition --</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="preprocessor">#if(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">typedef</span> lowp_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keyword">typedef</span> lowp_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="keyword">typedef</span> lowp_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword">typedef</span> mediump_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">typedef</span> mediump_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keyword">typedef</span> mediump_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor">#else //defined(GLM_PRECISION_HIGHP_BOOL)</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="keyword">typedef</span> highp_bvec2 <a class="code" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a>;</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="a00163.html#ga150731e2a148eff8752114a0e450505e"> 503</a></span> <span class="keyword">typedef</span> highp_bvec3 <a class="code" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a>;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
-<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6"> 508</a></span> <span class="keyword">typedef</span> highp_bvec4 <a class="code" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a>;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> }<span class="comment">//namespace glm</span></div>
-<div class="ttc" id="a00164_html_gabfc3e9f63cc3e2ee0521405277ef3997"><div class="ttname"><a href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">glm::highp_vec2</a></div><div class="ttdeci">tvec2< float, highp > highp_vec2</div><div class="ttdoc">2 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00069">type_vec.hpp:69</a></div></div>
-<div class="ttc" id="a00163_html_ga34aee73784bcc247d426250540c1911c"><div class="ttname"><a href="a00163.html#ga34aee73784bcc247d426250540c1911c">glm::ivec3</a></div><div class="ttdeci">highp_ivec3 ivec3</div><div class="ttdoc">3 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00449">type_vec.hpp:449</a></div></div>
-<div class="ttc" id="a00164_html_ga591478a77e4324e0836abc17cbb13e83"><div class="ttname"><a href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">glm::mediump_vec3</a></div><div class="ttdeci">tvec3< float, mediump > mediump_vec3</div><div class="ttdoc">3 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00186">type_vec.hpp:186</a></div></div>
-<div class="ttc" id="a00163_html_ga15ade901680b29b78c1f9d1796db6e0e"><div class="ttname"><a href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">glm::dvec2</a></div><div class="ttdeci">highp_dvec2 dvec2</div><div class="ttdoc">2 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00417">type_vec.hpp:417</a></div></div>
-<div class="ttc" id="a00164_html_ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><div class="ttname"><a href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">glm::lowp_ivec2</a></div><div class="ttdeci">tvec2< int, lowp > lowp_ivec2</div><div class="ttdoc">2 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00125">type_vec.hpp:125</a></div></div>
-<div class="ttc" id="a00163_html_gae85537b672ffe0b3218cbdf1823e1c72"><div class="ttname"><a href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">glm::uvec3</a></div><div class="ttdeci">highp_uvec3 uvec3</div><div class="ttdoc">3 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00476">type_vec.hpp:476</a></div></div>
-<div class="ttc" id="a00164_html_ga01d2c9b292e27518e4d6f8442607e8aa"><div class="ttname"><a href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">glm::highp_dvec3</a></div><div class="ttdeci">tvec3< double, highp > highp_dvec3</div><div class="ttdoc">3 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00200">type_vec.hpp:200</a></div></div>
-<div class="ttc" id="a00164_html_gac37a3fd0ecdcab044853c039409c9af7"><div class="ttname"><a href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">glm::mediump_vec2</a></div><div class="ttdeci">tvec2< float, mediump > mediump_vec2</div><div class="ttdoc">2 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00076">type_vec.hpp:76</a></div></div>
-<div class="ttc" id="a00164_html_ga3e804226444dfe246133fc6ec4a3912f"><div class="ttname"><a href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">glm::mediump_dvec4</a></div><div class="ttdeci">tvec4< double, mediump > mediump_dvec4</div><div class="ttdoc">4 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00309">type_vec.hpp:309</a></div></div>
-<div class="ttc" id="a00164_html_ga7b31b02c5558e2f8e5d8439ae3803d3a"><div class="ttname"><a href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">glm::highp_vec3</a></div><div class="ttdeci">tvec3< float, highp > highp_vec3</div><div class="ttdoc">3 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00179">type_vec.hpp:179</a></div></div>
-<div class="ttc" id="a00163_html_gaa7c3a0e7ae50c34c3290415c115f251e"><div class="ttname"><a href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">glm::uvec4</a></div><div class="ttdeci">highp_uvec4 uvec4</div><div class="ttdoc">4 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00481">type_vec.hpp:481</a></div></div>
-<div class="ttc" id="a00163_html_ga9503f809789bda7e8852a6abde3ae5c1"><div class="ttname"><a href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">glm::dvec4</a></div><div class="ttdeci">highp_dvec4 dvec4</div><div class="ttdoc">4 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00427">type_vec.hpp:427</a></div></div>
-<div class="ttc" id="a00164_html_gade7cb496ed3d78b2a11f1651cce77239"><div class="ttname"><a href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">glm::highp_vec4</a></div><div class="ttdeci">tvec4< float, highp > highp_vec4</div><div class="ttdoc">4 components vector of high single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00285">type_vec.hpp:285</a></div></div>
-<div class="ttc" id="a00164_html_gaae72e97529b8fa4e0341b425d4fe03ae"><div class="ttname"><a href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">glm::mediump_vec4</a></div><div class="ttdeci">tvec4< float, mediump > mediump_vec4</div><div class="ttdoc">4 components vector of medium single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00291">type_vec.hpp:291</a></div></div>
-<div class="ttc" id="a00164_html_ga61359f5531550e45871a97589d8dcce1"><div class="ttname"><a href="a00164.html#ga61359f5531550e45871a97589d8dcce1">glm::highp_uvec4</a></div><div class="ttdeci">tvec4< uint, highp > highp_uvec4</div><div class="ttdoc">4 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00339">type_vec.hpp:339</a></div></div>
-<div class="ttc" id="a00164_html_gae5f9c57d04b338c9a51a9af39e50795b"><div class="ttname"><a href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">glm::highp_bvec4</a></div><div class="ttdeci">tvec4< bool, highp > highp_bvec4</div><div class="ttdoc">4 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00357">type_vec.hpp:357</a></div></div>
-<div class="ttc" id="a00164_html_ga8330bf0d7e6d03ca12ee2b1334c2c30f"><div class="ttname"><a href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">glm::highp_ivec3</a></div><div class="ttdeci">tvec3< int, highp > highp_ivec3</div><div class="ttdoc">3 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00221">type_vec.hpp:221</a></div></div>
-<div class="ttc" id="a00163_html_ga09d0200e8ff86391d8804b4fefd5f1da"><div class="ttname"><a href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">glm::vec2</a></div><div class="ttdeci">highp_vec2 vec2</div><div class="ttdoc">2 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00390">type_vec.hpp:390</a></div></div>
-<div class="ttc" id="a00164_html_gafa2087ead0d0e2a3c907e3fbd99f4d85"><div class="ttname"><a href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">glm::lowp_bvec4</a></div><div class="ttdeci">tvec4< bool, lowp > lowp_bvec4</div><div class="ttdoc">4 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00369">type_vec.hpp:369</a></div></div>
-<div class="ttc" id="a00164_html_ga631f5767b9d45c5cd3d0bcd67565b3f7"><div class="ttname"><a href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">glm::mediump_uvec4</a></div><div class="ttdeci">tvec4< uint, mediump > mediump_uvec4</div><div class="ttdoc">4 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00345">type_vec.hpp:345</a></div></div>
-<div class="ttc" id="a00163_html_ga9bcffa2d49f28d16f680757b5c0e7c84"><div class="ttname"><a href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">glm::uvec2</a></div><div class="ttdeci">highp_uvec2 uvec2</div><div class="ttdoc">2 components vector of unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00471">type_vec.hpp:471</a></div></div>
-<div class="ttc" id="a00164_html_ga96eb13864627c7c832b5af36aa73bda6"><div class="ttname"><a href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">glm::lowp_dvec2</a></div><div class="ttdeci">tvec2< double, lowp > lowp_dvec2</div><div class="ttdoc">2 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00104">type_vec.hpp:104</a></div></div>
-<div class="ttc" id="a00164_html_ga9b7843453f7ad6ebfa26e50408b8dcf0"><div class="ttname"><a href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">glm::mediump_ivec3</a></div><div class="ttdeci">tvec3< int, mediump > mediump_ivec3</div><div class="ttdoc">3 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00228">type_vec.hpp:228</a></div></div>
-<div class="ttc" id="a00164_html_ga28dcda102dd8c94ec500ee786af7a30a"><div class="ttname"><a href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">glm::lowp_bvec2</a></div><div class="ttdeci">tvec2< bool, lowp > lowp_bvec2</div><div class="ttdoc">2 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00167">type_vec.hpp:167</a></div></div>
-<div class="ttc" id="a00164_html_ga14614613c8e79772c8a6d25dd1c45995"><div class="ttname"><a href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">glm::mediump_ivec4</a></div><div class="ttdeci">tvec4< int, mediump > mediump_ivec4</div><div class="ttdoc">4 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00327">type_vec.hpp:327</a></div></div>
-<div class="ttc" id="a00164_html_ga392c0761c8bef616801e0d81a6867ed7"><div class="ttname"><a href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">glm::mediump_uvec2</a></div><div class="ttdeci">tvec2< uint, mediump > mediump_uvec2</div><div class="ttdoc">2 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00139">type_vec.hpp:139</a></div></div>
-<div class="ttc" id="a00163_html_ga0e46aaaccc5e713eac5bfbc8d6885a60"><div class="ttname"><a href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">glm::bvec2</a></div><div class="ttdeci">highp_bvec2 bvec2</div><div class="ttdoc">2 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00498">type_vec.hpp:498</a></div></div>
-<div class="ttc" id="a00164_html_ga3f0c27f7ab42f004054a247c93a7bf57"><div class="ttname"><a href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">glm::mediump_bvec4</a></div><div class="ttdeci">tvec4< bool, mediump > mediump_bvec4</div><div class="ttdoc">4 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00363">type_vec.hpp:363</a></div></div>
-<div class="ttc" id="a00164_html_ga8b7483dc67dc332f9d874c6cf7172203"><div class="ttname"><a href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">glm::lowp_ivec4</a></div><div class="ttdeci">tvec4< int, lowp > lowp_ivec4</div><div class="ttdoc">4 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00333">type_vec.hpp:333</a></div></div>
-<div class="ttc" id="a00164_html_ga0d1778766f17c4329a8c3f2b37f5fab0"><div class="ttname"><a href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">glm::mediump_bvec3</a></div><div class="ttdeci">tvec3< bool, mediump > mediump_bvec3</div><div class="ttdoc">3 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00268">type_vec.hpp:268</a></div></div>
-<div class="ttc" id="a00164_html_ga0b4741d444b131ef1fc54b19c37f72be"><div class="ttname"><a href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">glm::mediump_dvec3</a></div><div class="ttdeci">tvec3< double, mediump > mediump_dvec3</div><div class="ttdoc">3 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00207">type_vec.hpp:207</a></div></div>
-<div class="ttc" id="a00164_html_ga388fd99d9ffc7190a4732c35b0c7bfc9"><div class="ttname"><a href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">glm::mediump_dvec2</a></div><div class="ttdeci">tvec2< double, mediump > mediump_dvec2</div><div class="ttdoc">2 components vector of medium double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00097">type_vec.hpp:97</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00163_html_gaaa26c41d168dc00be0fe55f4d0a34224"><div class="ttname"><a href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">glm::ivec4</a></div><div class="ttdeci">highp_ivec4 ivec4</div><div class="ttdoc">4 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00454">type_vec.hpp:454</a></div></div>
-<div class="ttc" id="a00163_html_ga444e8f61bfb3a6f037d019ac6933f8c6"><div class="ttname"><a href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">glm::bvec4</a></div><div class="ttdeci">highp_bvec4 bvec4</div><div class="ttdoc">4 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00508">type_vec.hpp:508</a></div></div>
-<div class="ttc" id="a00164_html_gae1f4f68346474246eb4a9952af49e72b"><div class="ttname"><a href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">glm::mediump_bvec2</a></div><div class="ttdeci">tvec2< bool, mediump > mediump_bvec2</div><div class="ttdoc">2 components vector of medium precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00160">type_vec.hpp:160</a></div></div>
-<div class="ttc" id="a00164_html_gaa015a3707413de20c03948308dba2f2e"><div class="ttname"><a href="a00164.html#gaa015a3707413de20c03948308dba2f2e">glm::highp_ivec2</a></div><div class="ttdeci">tvec2< int, highp > highp_ivec2</div><div class="ttdoc">2 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00111">type_vec.hpp:111</a></div></div>
-<div class="ttc" id="a00164_html_ga76c0948546deeeb18bfda36f18b3e673"><div class="ttname"><a href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">glm::lowp_bvec3</a></div><div class="ttdeci">tvec3< bool, lowp > lowp_bvec3</div><div class="ttdoc">3 components vector of low precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00274">type_vec.hpp:274</a></div></div>
-<div class="ttc" id="a00164_html_gab5d6a45e1bbb13314b47793865a4c072"><div class="ttname"><a href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">glm::lowp_dvec4</a></div><div class="ttdeci">tvec4< double, lowp > lowp_dvec4</div><div class="ttdoc">4 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00315">type_vec.hpp:315</a></div></div>
-<div class="ttc" id="a00164_html_ga829f39950549881a08c534946c0487e1"><div class="ttname"><a href="a00164.html#ga829f39950549881a08c534946c0487e1">glm::highp_bvec2</a></div><div class="ttdeci">tvec2< bool, highp > highp_bvec2</div><div class="ttdoc">2 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00153">type_vec.hpp:153</a></div></div>
-<div class="ttc" id="a00163_html_ga150731e2a148eff8752114a0e450505e"><div class="ttname"><a href="a00163.html#ga150731e2a148eff8752114a0e450505e">glm::bvec3</a></div><div class="ttdeci">highp_bvec3 bvec3</div><div class="ttdoc">3 components vector of boolean. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00503">type_vec.hpp:503</a></div></div>
-<div class="ttc" id="a00164_html_gaf7ec7b1cefeeaf63659460ef52fd06a9"><div class="ttname"><a href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">glm::lowp_dvec3</a></div><div class="ttdeci">tvec3< double, lowp > lowp_dvec3</div><div class="ttdoc">3 components vector of low double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00214">type_vec.hpp:214</a></div></div>
-<div class="ttc" id="a00164_html_ga5d454f34d819d90b9bbb30dcb9ed7b39"><div class="ttname"><a href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">glm::highp_dvec4</a></div><div class="ttdeci">tvec4< double, highp > highp_dvec4</div><div class="ttdoc">4 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00303">type_vec.hpp:303</a></div></div>
-<div class="ttc" id="a00163_html_gafbab23070ca47932487d25332adc7d7c"><div class="ttname"><a href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a></div><div class="ttdeci">highp_vec4 vec4</div><div class="ttdoc">4 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00400">type_vec.hpp:400</a></div></div>
-<div class="ttc" id="a00164_html_ga6efcd4574e112cfcda320db58e649ee3"><div class="ttname"><a href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">glm::lowp_uvec4</a></div><div class="ttdeci">tvec4< uint, lowp > lowp_uvec4</div><div class="ttdoc">4 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00351">type_vec.hpp:351</a></div></div>
-<div class="ttc" id="a00164_html_gaa040f25233c314adc9560dcdb9dadac2"><div class="ttname"><a href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">glm::lowp_ivec3</a></div><div class="ttdeci">tvec3< int, lowp > lowp_ivec3</div><div class="ttdoc">3 components vector of low precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00235">type_vec.hpp:235</a></div></div>
-<div class="ttc" id="a00164_html_ga6bfb90b936bbbc67e438bb9ac6910309"><div class="ttname"><a href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">glm::lowp_uvec2</a></div><div class="ttdeci">tvec2< uint, lowp > lowp_uvec2</div><div class="ttdoc">2 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00146">type_vec.hpp:146</a></div></div>
-<div class="ttc" id="a00164_html_ga54ae0b7b207b8e7e88841d146d2de12e"><div class="ttname"><a href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">glm::mediump_uvec3</a></div><div class="ttdeci">tvec3< uint, mediump > mediump_uvec3</div><div class="ttdoc">3 components vector of medium precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00249">type_vec.hpp:249</a></div></div>
-<div class="ttc" id="a00164_html_ga51e835b2aa735782f0174328acffa521"><div class="ttname"><a href="a00164.html#ga51e835b2aa735782f0174328acffa521">glm::lowp_vec2</a></div><div class="ttdeci">tvec2< float, lowp > lowp_vec2</div><div class="ttdoc">2 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00083">type_vec.hpp:83</a></div></div>
-<div class="ttc" id="a00164_html_gaf0049c860a612da9bd3ba9ac9e49e820"><div class="ttname"><a href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">glm::lowp_uvec3</a></div><div class="ttdeci">tvec3< uint, lowp > lowp_uvec3</div><div class="ttdoc">3 components vector of low precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00256">type_vec.hpp:256</a></div></div>
-<div class="ttc" id="a00163_html_gaa8ea2429bb3cb41a715258a447f39897"><div class="ttname"><a href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a></div><div class="ttdeci">highp_vec3 vec3</div><div class="ttdoc">3 components vector of floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00395">type_vec.hpp:395</a></div></div>
-<div class="ttc" id="a00163_html_gabebd0c7e3c5cd337d95c313c5e8b8db4"><div class="ttname"><a href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a></div><div class="ttdeci">highp_dvec3 dvec3</div><div class="ttdoc">3 components vector of double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00422">type_vec.hpp:422</a></div></div>
-<div class="ttc" id="a00164_html_gaf564d5be1e65bd2204754043b218c9a4"><div class="ttname"><a href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">glm::highp_uvec3</a></div><div class="ttdeci">tvec3< uint, highp > highp_uvec3</div><div class="ttdoc">3 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00242">type_vec.hpp:242</a></div></div>
-<div class="ttc" id="a00164_html_gaca7c2a58eb926799c30ad547a290fccf"><div class="ttname"><a href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">glm::highp_bvec3</a></div><div class="ttdeci">tvec3< bool, highp > highp_bvec3</div><div class="ttdoc">3 components vector of high precision bool numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00262">type_vec.hpp:262</a></div></div>
-<div class="ttc" id="a00164_html_gaf89f8fb5a06848ea4ec1c3a02813454e"><div class="ttname"><a href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">glm::lowp_vec3</a></div><div class="ttdeci">tvec3< float, lowp > lowp_vec3</div><div class="ttdoc">3 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00193">type_vec.hpp:193</a></div></div>
-<div class="ttc" id="a00163_html_ga2ab812bd103527e2d6c62c2e2f5ee78f"><div class="ttname"><a href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">glm::ivec2</a></div><div class="ttdeci">highp_ivec2 ivec2</div><div class="ttdoc">2 components vector of signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00444">type_vec.hpp:444</a></div></div>
-<div class="ttc" id="a00164_html_gaa0eed70387a998c3eca2f4e45f3efaad"><div class="ttname"><a href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">glm::highp_uvec2</a></div><div class="ttdeci">tvec2< uint, highp > highp_uvec2</div><div class="ttdoc">2 components vector of high precision unsigned integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00132">type_vec.hpp:132</a></div></div>
-<div class="ttc" id="a00164_html_ga199cc7c4cfa7c7cadad0c74d2f059aef"><div class="ttname"><a href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">glm::mediump_ivec2</a></div><div class="ttdeci">tvec2< int, mediump > mediump_ivec2</div><div class="ttdoc">2 components vector of medium precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00118">type_vec.hpp:118</a></div></div>
-<div class="ttc" id="a00092_html"><div class="ttname"><a href="a00092.html">precision.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga0424a75bb400571489b8528897f35258"><div class="ttname"><a href="a00164.html#ga0424a75bb400571489b8528897f35258">glm::highp_ivec4</a></div><div class="ttdeci">tvec4< int, highp > highp_ivec4</div><div class="ttdoc">4 components vector of high precision signed integer numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00321">type_vec.hpp:321</a></div></div>
-<div class="ttc" id="a00164_html_ga8f9002d3ab660e3171f5cdea1aab8395"><div class="ttname"><a href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">glm::lowp_vec4</a></div><div class="ttdeci">tvec4< float, lowp > lowp_vec4</div><div class="ttdoc">4 components vector of low single-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00297">type_vec.hpp:297</a></div></div>
-<div class="ttc" id="a00119_html"><div class="ttname"><a href="a00119.html">type_int.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00164_html_ga435eb408e8dfa4f7185368109d432c14"><div class="ttname"><a href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">glm::highp_dvec2</a></div><div class="ttdeci">tvec2< double, highp > highp_dvec2</div><div class="ttdoc">2 components vector of high double-precision floating-point numbers. </div><div class="ttdef"><b>Definition:</b> <a href="a00132_source.html#l00090">type_vec.hpp:90</a></div></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> GLM_FUNC_DECL genType <a class="code" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> & x, <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & Distance);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> GLM_FUNC_DECL <a class="code" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(T <span class="keyword">const</span> & x, T <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">template</span><<span class="keyword">typename</span>> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> GLM_FUNC_DECL vecType<uint> <a class="code" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(vecType<T> <span class="keyword">const</span> & x, vecType<T> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "ulp.inl"</span></div>
+<div class="ttc" id="a00158_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l00288">type_int.hpp:288</a></div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00179_html_gaa399d5b6472a70e8952f9b26ecaacdec"><div class="ttname"><a href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">glm::prev_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType prev_float(genType const &x, uint const &Distance)</div><div class="ttdoc">Return the value(s) ULP distance before the input value(s). </div></div>
+<div class="ttc" id="a00179_html_gad107ec3d9697ef82032a33338a73ebdd"><div class="ttname"><a href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">glm::next_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType next_float(genType const &x, uint const &Distance)</div><div class="ttdoc">Return the value(s) ULP distance after the input value(s). </div></div>
+<div class="ttc" id="a00179_html_ga85355f2549d75789eb66e5d565d8ad26"><div class="ttname"><a href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">glm::float_distance</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint > float_distance(vecType< T > const &x, vecType< T > const &y)</div><div class="ttdoc">Return the distance in the number of ULP between 2 vectors. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00133.html b/doc/api/a00133.html
index da3056b..dc90365 100644
--- a/doc/api/a00133.html
+++ b/doc/api/a00133.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec1.hpp File Reference</title>
+<title>0.9.8: vec1.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,61 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">type_vec1.hpp File Reference</div> </div>
+<div class="title">vec1.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00133_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a97f808440fd5411e2c46a55db01329f0"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1 </td><td class="memItemRight" valign="bottom"><b>bvec1</b></td></tr>
+<tr class="separator:a97f808440fd5411e2c46a55db01329f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1 </td><td class="memItemRight" valign="bottom"><b>dvec1</b></td></tr>
+<tr class="separator:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:abb1dfdb295030ec2965eed463009d9aa"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_bvec1</b></td></tr>
+<tr class="separator:abb1dfdb295030ec2965eed463009d9aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_dvec1</b></td></tr>
+<tr class="separator:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1_t </td><td class="memItemRight" valign="bottom"><b>highp_ivec1</b></td></tr>
+<tr class="separator:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae38198c95c92d34875ca31f4b7c14d27"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_uvec1</b></td></tr>
+<tr class="separator:ae38198c95c92d34875ca31f4b7c14d27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1 </td><td class="memItemRight" valign="bottom"><b>ivec1</b></td></tr>
+<tr class="separator:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ac42347907bf39ce2adc41f764c7e6c99"><td class="memItemLeft" align="right" valign="top">typedef lowp_bvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_bvec1</b></td></tr>
+<tr class="separator:ac42347907bf39ce2adc41f764c7e6c99"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memItemLeft" align="right" valign="top">typedef lowp_dvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_dvec1</b></td></tr>
+<tr class="separator:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a62179513d4c3d38f5f7d73756220e568"><td class="memItemLeft" align="right" valign="top">typedef lowp_ivec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_ivec1</b></td></tr>
+<tr class="separator:a62179513d4c3d38f5f7d73756220e568"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memItemLeft" align="right" valign="top">typedef lowp_uvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_uvec1</b></td></tr>
+<tr class="separator:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aac363ee47ee16b0361db847c5a97e821"><td class="memItemLeft" align="right" valign="top">typedef mediump_bvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_bvec1</b></td></tr>
+<tr class="separator:aac363ee47ee16b0361db847c5a97e821"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a08d652d636a98a60782ac109f0273931"><td class="memItemLeft" align="right" valign="top">typedef mediump_dvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_dvec1</b></td></tr>
+<tr class="separator:a08d652d636a98a60782ac109f0273931"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae2b635f944fd11622a4f23f783f0c01e"><td class="memItemLeft" align="right" valign="top">typedef mediump_ivec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_ivec1</b></td></tr>
+<tr class="separator:ae2b635f944fd11622a4f23f783f0c01e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a265324081f85d36db159677d8ca35fd1"><td class="memItemLeft" align="right" valign="top">typedef mediump_uvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_uvec1</b></td></tr>
+<tr class="separator:a265324081f85d36db159677d8ca35fd1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a63e1e4312a97da0007db93d7f18d9687"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1 </td><td class="memItemRight" valign="bottom"><b>uvec1</b></td></tr>
+<tr class="separator:a63e1e4312a97da0007db93d7f18d9687"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a4df551da8fd418cf98951a3948390485"><td class="memItemLeft" align="right" valign="top">typedef highp_vec1 </td><td class="memItemRight" valign="bottom"><b>vec1</b></td></tr>
+<tr class="separator:a4df551da8fd418cf98951a3948390485"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-25 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00180.html">GLM_GTC_vec1</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00133_source.html">type_vec1.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00133_source.html">vec1.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00133_source.html b/doc/api/a00133_source.html
index 0ade632..7c20417 100644
--- a/doc/api/a00133_source.html
+++ b/doc/api/a00133_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec1.hpp Source File</title>
+<title>0.9.8: vec1.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,298 +41,113 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec1.hpp</div> </div>
+<div class="title">vec1.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00133.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "../fwd.hpp"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">type_vec.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">struct </span>tvec1</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> tvec1<T, P> type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> tvec1<bool, P> bool_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 1;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// -- Data --</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../detail/type_vec1.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_vec1 extension included")</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">typedef</span> highp_vec1_t highp_vec1;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">typedef</span> mediump_vec1_t mediump_vec1;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typedef</span> lowp_vec1_t lowp_vec1;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> highp_dvec1_t highp_dvec1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> mediump_dvec1_t mediump_dvec1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> lowp_dvec1_t lowp_dvec1;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">typedef</span> highp_ivec1_t highp_ivec1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> mediump_ivec1_t mediump_ivec1;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> T x;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> T r;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> T s;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> _GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, x)</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, r)</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> _GLM_SWIZZLE1_3_MEMBERS(T, P, tvec3, s)</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, x)</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, r)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> _GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"># endif//GLM_SWIZZLE*/</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">/*</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"># endif//GLM_SWIZZLE*/</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL T & operator[](size_type i);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tvec1() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tvec1(tvec1<T, P> const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> template <precision Q></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tvec1(tvec1<T, Q> const & v);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL explicit tvec1(ctor);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL explicit tvec1(T const & s);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> GLM_FUNC_DECL explicit tvec1(tvec2<U, Q> const & v);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL explicit tvec1(tvec3<U, Q> const & v);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> GLM_FUNC_DECL explicit tvec1(tvec4<U, Q> const & v);</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec1<U, Q> const & v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor"># if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1<T, P>, E0, -1,-2,-3> <span class="keyword">const</span> & that)</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"># endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL tvec1<T, P> & operator+=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tvec1<T, P> & operator-=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tvec1<T, P> & operator*=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tvec1<T, P> & operator/=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tvec1<T, P> & operator++();</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> GLM_FUNC_DECL tvec1<T, P> & operator--();</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tvec1<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> GLM_FUNC_DECL tvec1<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tvec1<T, P> & operator%=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tvec1<T, P> & operator&=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tvec1<T, P> & operator|=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tvec1<T, P> & operator^=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tvec1<T, P> & operator<<=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tvec1<T, P> & operator>>=(U <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> };</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tvec1<T, P> operator+(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> GLM_FUNC_DECL tvec1<T, P> operator-(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> GLM_FUNC_DECL tvec1<T, P> operator*(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> GLM_FUNC_DECL tvec1<T, P> operator/(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> GLM_FUNC_DECL tvec1<T, P> operator%(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> GLM_FUNC_DECL tvec1<T, P> operator&(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL tvec1<T, P> operator|(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tvec1<T, P> operator^(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tvec1<T, P> operator<<(T const & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec1<T, P> operator>>(T <span class="keyword">const</span> & s, tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec1<T, P> operator~(tvec1<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec1<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor">#include "type_vec1.inl"</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> lowp_ivec1_t lowp_ivec1;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">typedef</span> highp_uvec1_t highp_uvec1;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> mediump_uvec1_t mediump_uvec1;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">typedef</span> lowp_uvec1_t lowp_uvec1;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">typedef</span> highp_bvec1_t highp_bvec1;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">typedef</span> mediump_bvec1_t mediump_bvec1;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">typedef</span> lowp_bvec1_t lowp_bvec1;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// vec1 definition</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_BOOL))</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">typedef</span> mediump_bvec1 bvec1;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">typedef</span> lowp_bvec1 bvec1;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">typedef</span> highp_vec1 vec1;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">typedef</span> mediump_vec1 vec1;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">typedef</span> lowp_vec1 vec1;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> highp_vec1 vec1;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE))</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">typedef</span> mediump_dvec1 dvec1;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">typedef</span> lowp_dvec1 dvec1;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">typedef</span> mediump_ivec1 ivec1;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">typedef</span> lowp_ivec1 ivec1;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">typedef</span> mediump_uvec1 uvec1;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">typedef</span> lowp_uvec1 uvec1;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#include "vec1.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00134.html b/doc/api/a00134.html
index b7fd90f..78d66ba 100644
--- a/doc/api/a00134.html
+++ b/doc/api/a00134.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec2.hpp File Reference</title>
+<title>0.9.8: vec2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec2.hpp File Reference</div> </div>
+<div class="title">vec2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00134_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-18 / 2013-08-27 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00134_source.html">type_vec2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00134_source.html">vec2.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00134_source.html b/doc/api/a00134_source.html
index 46b5e37..9018d42 100644
--- a/doc/api/a00134_source.html
+++ b/doc/api/a00134_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec2.hpp Source File</title>
+<title>0.9.8: vec2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,387 +41,19 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec2.hpp</div> </div>
+<div class="title">vec2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00134.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">type_vec.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">struct </span>tvec2</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> tvec2<T, P> type;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> tvec2<bool, P> bool_type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 2;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">struct</span>{ T x, y; };</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">struct</span>{ T r, g; };</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">struct</span>{ T s, t; };</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">union </span>{T x, r, s;};</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">union </span>{T y, g, t;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> GLM_FUNC_DECL T & operator[](size_type i);</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> GLM_FUNC_DECL tvec2() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tvec2(tvec2<T, P> const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> template <precision Q></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> GLM_FUNC_DECL tvec2(tvec2<T, Q> const & v);</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> GLM_FUNC_DECL explicit tvec2(ctor);</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL explicit tvec2(T const & s);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL tvec2(T const & s1, T const & s2);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// -- Conversion constructors --</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> template <typename A, typename B></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> GLM_FUNC_DECL tvec2(A const & x, B const & y);</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> template <typename A, typename B></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> GLM_FUNC_DECL tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec2<U, Q> const & v);</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1,-1,-2> <span class="keyword">const</span> & that)</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> GLM_FUNC_DECL tvec2<T, P>& operator=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(U s);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL tvec2<T, P>& operator+=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(U s);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tvec2<T, P>& operator-=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(U s);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL tvec2<T, P>& operator*=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(U s);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec2<T, P>& operator/=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tvec2<T, P> & operator++();</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> GLM_FUNC_DECL tvec2<T, P> & operator--();</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tvec2<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> GLM_FUNC_DECL tvec2<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(U s);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tvec2<T, P> & operator%=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(U s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL tvec2<T, P> & operator&=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(U s);</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL tvec2<T, P> & operator|=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(U s);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tvec2<T, P> & operator^=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(U s);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL tvec2<T, P> & operator<<=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(U s);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tvec2<T, P> & operator>>=(tvec2<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> };</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> GLM_FUNC_DECL tvec2<T, P> operator+(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> GLM_FUNC_DECL tvec2<T, P> operator-(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> GLM_FUNC_DECL tvec2<T, P> operator*(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> GLM_FUNC_DECL tvec2<T, P> operator/(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> GLM_FUNC_DECL tvec2<T, P> operator%(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> GLM_FUNC_DECL tvec2<T, P> operator&(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> GLM_FUNC_DECL tvec2<T, P> operator|(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> GLM_FUNC_DECL tvec2<T, P> operator^(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> GLM_FUNC_DECL tvec2<T, P> operator<<(T const & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v1, tvec1<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> GLM_FUNC_DECL tvec2<T, P> operator>>(T <span class="keyword">const</span> & s, tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> GLM_FUNC_DECL tvec2<T, P> operator~(tvec2<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec2<T, P> <span class="keyword">const</span> & v1, tvec2<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#include "type_vec2.inl"</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00129.html">detail/type_vec2.hpp</a>"</span></div>
+<div class="ttc" id="a00129_html"><div class="ttname"><a href="a00129.html">type_vec2.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00135.html b/doc/api/a00135.html
index 42a2af9..ee0ef42 100644
--- a/doc/api/a00135.html
+++ b/doc/api/a00135.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec3.hpp File Reference</title>
+<title>0.9.8: vec3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec3.hpp File Reference</div> </div>
+<div class="title">vec3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00135_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00135_source.html">type_vec3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00135_source.html">vec3.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00135_source.html b/doc/api/a00135_source.html
index a7e2ea5..f7a3b5d 100644
--- a/doc/api/a00135_source.html
+++ b/doc/api/a00135_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec3.hpp Source File</title>
+<title>0.9.8: vec3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,403 +41,19 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec3.hpp</div> </div>
+<div class="title">vec3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00135.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">type_vec.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">struct </span>tvec3</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> tvec3<T, P> type;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> tvec3<bool, P> bool_type;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 3;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">struct</span>{ T x, y, z; };</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">struct</span>{ T r, g, b; };</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">struct</span>{ T s, t, p; };</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> };</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">union </span>{ T z, b, p; };</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> GLM_FUNC_DECL T & operator[](size_type i);</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> GLM_FUNC_DECL tvec3() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> GLM_FUNC_DECL tvec3(tvec3<T, P> const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> template <precision Q></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v);</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> GLM_FUNC_DECL explicit tvec3(ctor);</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> GLM_FUNC_DECL explicit tvec3(T const & s);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> GLM_FUNC_DECL tvec3(T const & a, T const & b, T const & c);</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// -- Conversion scalar constructors --</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> template <typename A, typename B, typename C></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> GLM_FUNC_DECL tvec3(A const & a, B const & b, C const & c);</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> template <typename A, typename B, typename C></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> GLM_FUNC_DECL tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, B const & b);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> GLM_FUNC_DECL explicit tvec3(A const & a, tvec2<B, Q> const & b);</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> GLM_FUNC_DECL explicit tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> GLM_FUNC_DECL GLM_EXPLICIT tvec3(tvec3<U, Q> const & v);</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> <span class="keyword">const</span> & that)</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s)</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> {</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> *<span class="keyword">this</span> = tvec3<T, P>(v(), s);</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tvec3(T <span class="keyword">const</span> & s, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> *<span class="keyword">this</span> = tvec3<T, P>(s, v());</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(U s);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(U s);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(U s);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(U s);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> GLM_FUNC_DECL tvec3<T, P> & operator++();</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> GLM_FUNC_DECL tvec3<T, P> & operator--();</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL tvec3<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> GLM_FUNC_DECL tvec3<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(U s);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(U s);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(U s);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(U s);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(U s);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(U s);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> };</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> GLM_FUNC_DECL tvec3<T, P> operator+(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> GLM_FUNC_DECL tvec3<T, P> operator-(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec3<T, P> operator*(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> GLM_FUNC_DECL tvec3<T, P> operator/(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tvec3<T, P> operator%(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> GLM_FUNC_DECL tvec3<T, P> operator&(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> GLM_FUNC_DECL tvec3<T, P> operator|(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> GLM_FUNC_DECL tvec3<T, P> operator^(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> GLM_FUNC_DECL tvec3<T, P> operator<<(T const & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> GLM_FUNC_DECL tvec3<T, P> operator>>(T <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & s, tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec3<T, P> <span class="keyword">const</span> & v1, tvec3<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor">#include "type_vec3.inl"</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00130.html">detail/type_vec3.hpp</a>"</span></div>
+<div class="ttc" id="a00130_html"><div class="ttname"><a href="a00130.html">type_vec3.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00136.html b/doc/api/a00136.html
index 8f516f1..abae383 100644
--- a/doc/api/a00136.html
+++ b/doc/api/a00136.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec4.hpp File Reference</title>
+<title>0.9.8: vec4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,20 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec4.hpp File Reference</div> </div>
+<div class="title">vec4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00136_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-08-22 / 2011-06-15 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00136_source.html">type_vec4.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00136_source.html">vec4.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00136_source.html b/doc/api/a00136_source.html
index 93e64c7..6cd883f 100644
--- a/doc/api/a00136_source.html
+++ b/doc/api/a00136_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: type_vec4.hpp Source File</title>
+<title>0.9.8: vec4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,503 +41,19 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">type_vec4.hpp</div> </div>
+<div class="title">vec4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00136.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00105.html">setup.hpp</a>"</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="a00132.html">type_vec.hpp</a>"</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"># include "<a class="code" href="a00004.html">_swizzle.hpp</a>"</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"># include "<a class="code" href="a00005.html">_swizzle_func.hpp</a>"</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#endif //GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <cstddef></span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a>{</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>detail</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">struct </span>simd</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">typedef</span> T type[4];</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> };</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"># define GLM_NOT_BUGGY_VC32BITS !(GLM_MODEL == GLM_MODEL_32 && (GLM_COMPILER & GLM_COMPILER_VC) && GLM_COMPILER < GLM_COMPILER_VC2013)</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># if (GLM_ARCH & GLM_ARCH_SSE2) && GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">struct </span>simd<float></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">typedef</span> __m128 type;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> };</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">struct </span>simd<int></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">typedef</span> __m128i type;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> };</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">struct </span>simd<unsigned int></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">typedef</span> __m128i type;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"># if (GLM_ARCH & GLM_ARCH_AVX) && GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">struct </span>simd<double></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> __m256d type;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"># if (GLM_ARCH & GLM_ARCH_AVX2) && GLM_NOT_BUGGY_VC32BITS</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">struct </span>simd<int64></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">typedef</span> __m256i type;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> };</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">template</span> <></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">struct </span>simd<uint64></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">typedef</span> __m256i type;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> };</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"># endif</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }<span class="comment">//namespace detail</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P = defaultp></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">struct </span>tvec4</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// -- Implementation detail --</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">typedef</span> tvec4<T, P> type;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">typedef</span> tvec4<bool, P> bool_type;</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"># ifdef GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR length_t components = 4;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">static</span> GLM_RELAXED_CONSTEXPR precision prec = P;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"># endif//GLM_META_PROG_HELPERS</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// -- Data --</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">union</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> {</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">struct </span>{ T x, y, z, w;};</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">struct </span>{ T r, g, b, a; };</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">struct </span>{ T s, t, p, q; };</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">typename</span> detail::simd<T>::type data;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> };</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">union </span>{ T x, r, s; };</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">union </span>{ T y, g, t; };</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">union </span>{ T z, b, p; };</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">union </span>{ T w, a, q; };</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor"># ifdef GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"># endif//GLM_SWIZZLE</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"># endif//GLM_LANG</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// -- Component accesses --</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"># ifdef GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> size_type;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> GLM_FUNC_DECL GLM_CONSTEXPR size_type size() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> GLM_FUNC_DECL T & operator[](size_type i);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](size_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"># else</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keyword">typedef</span> length_t length_type;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> GLM_FUNC_DECL GLM_CONSTEXPR length_type <a class="code" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> GLM_FUNC_DECL T & operator[](length_type i);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> GLM_FUNC_DECL T <span class="keyword">const</span> & operator[](length_type i) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"># endif//GLM_FORCE_SIZE_FUNC</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment">// -- Implicit basic constructors --</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> GLM_FUNC_DECL tvec4() GLM_DEFAULT_CTOR;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> GLM_FUNC_DECL tvec4(tvec4<T, P> const & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> template <precision Q></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> GLM_FUNC_DECL tvec4(tvec4<T, Q> const & v);</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// -- Explicit basic constructors --</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> GLM_FUNC_DECL explicit tvec4(ctor);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> GLM_FUNC_DECL explicit tvec4(T s);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> GLM_FUNC_DECL tvec4(T a, T b, T c, T d);</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// -- Conversion scalar constructors --</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> template <typename A, typename B, typename C, typename D></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> GLM_FUNC_DECL tvec4(A a, B b, C c, D d);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> template <typename A, typename B, typename C, typename D></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> GLM_FUNC_DECL tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// -- Conversion vector constructors --</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, B b, C c);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> GLM_FUNC_DECL explicit tvec4(A a, tvec2<B, Q> const & b, C c);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> GLM_FUNC_DECL explicit tvec4(A a, B b, tvec2<C, Q> const & c);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> template <typename A, typename B, typename C, precision Q></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, B b);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> GLM_FUNC_DECL explicit tvec4(A a, tvec3<B, Q> const & b);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> template <typename A, typename B, precision Q></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> template <typename U, precision Q></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> GLM_FUNC_DECL GLM_EXPLICIT tvec4(tvec4<U, Q> const & v);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// -- Swizzle constructors --</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor"># if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2, <span class="keywordtype">int</span> E3></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, tvec4<T, P>, E0, E1, E2, E3> <span class="keyword">const</span> & that)</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> *<span class="keyword">this</span> = that();</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> }</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> F0, <span class="keywordtype">int</span> F1></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v, detail::_swizzle<2, T, P, tvec2<T, P>, F0, F1, -1, -2> <span class="keyword">const</span> & u)</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), u());</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, T <span class="keyword">const</span> & y, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> {</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> *<span class="keyword">this</span> = tvec4<T, P>(x, y, v());</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> }</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & w)</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> {</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> *<span class="keyword">this</span> = tvec4<T, P>(x, v(), w);</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & z, T <span class="keyword">const</span> & w)</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> {</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), z, w);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> }</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & w)</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> {</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> *<span class="keyword">this</span> = tvec4<T, P>(v(), w);</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">template</span> <<span class="keywordtype">int</span> E0, <span class="keywordtype">int</span> E1, <span class="keywordtype">int</span> E2></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> GLM_FUNC_DECL tvec4(T <span class="keyword">const</span> & x, detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> <span class="keyword">const</span> & v)</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> *<span class="keyword">this</span> = tvec4<T, P>(x, v());</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor"># endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// -- Unary arithmetic operators --</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<T, P> <span class="keyword">const</span> & v) GLM_DEFAULT;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> GLM_FUNC_DECL tvec4<T, P> & operator=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(U scalar);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> GLM_FUNC_DECL tvec4<T, P> & operator+=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(U scalar);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> GLM_FUNC_DECL tvec4<T, P> & operator-=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(U scalar);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(U scalar);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> GLM_FUNC_DECL tvec4<T, P> & operator/=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// -- Increment and decrement operators --</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> GLM_FUNC_DECL tvec4<T, P> & operator++();</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> GLM_FUNC_DECL tvec4<T, P> & operator--();</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> GLM_FUNC_DECL tvec4<T, P> operator++(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> GLM_FUNC_DECL tvec4<T, P> operator--(<span class="keywordtype">int</span>);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">// -- Unary bit operators --</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(U scalar);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> GLM_FUNC_DECL tvec4<T, P> & operator%=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(U scalar);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> GLM_FUNC_DECL tvec4<T, P> & operator&=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(U scalar);</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> GLM_FUNC_DECL tvec4<T, P> & operator|=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(U scalar);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> GLM_FUNC_DECL tvec4<T, P> & operator^=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(U scalar);</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> GLM_FUNC_DECL tvec4<T, P> & operator<<=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(U scalar);</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec1<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">template</span> <<span class="keyword">typename</span> U></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> GLM_FUNC_DECL tvec4<T, P> & operator>>=(tvec4<U, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> };</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// -- Unary operators --</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// -- Binary operators --</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> GLM_FUNC_DECL tvec4<T, P> operator+(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> GLM_FUNC_DECL tvec4<T, P> operator+(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> GLM_FUNC_DECL tvec4<T, P> operator-(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> GLM_FUNC_DECL tvec4<T, P> operator-(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> GLM_FUNC_DECL tvec4<T, P> operator*(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> GLM_FUNC_DECL tvec4<T, P> operator*(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> GLM_FUNC_DECL tvec4<T, P> operator/(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> GLM_FUNC_DECL tvec4<T, P> operator/(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> GLM_FUNC_DECL tvec4<T, P> operator%(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> GLM_FUNC_DECL tvec4<T, P> operator%(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> GLM_FUNC_DECL tvec4<T, P> operator&(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> GLM_FUNC_DECL tvec4<T, P> operator&(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> GLM_FUNC_DECL tvec4<T, P> operator|(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> GLM_FUNC_DECL tvec4<T, P> operator|(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> GLM_FUNC_DECL tvec4<T, P> operator^(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> GLM_FUNC_DECL tvec4<T, P> operator^(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> GLM_FUNC_DECL tvec4<T, P> operator<<(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> GLM_FUNC_DECL tvec4<T, P> operator<<(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v, T scalar);</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v, tvec1<T, P> <span class="keyword">const</span> & s);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> GLM_FUNC_DECL tvec4<T, P> operator>>(T scalar, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec1<T, P> <span class="keyword">const</span> & s, tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> GLM_FUNC_DECL tvec4<T, P> operator>>(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P> </div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> GLM_FUNC_DECL tvec4<T, P> operator~(tvec4<T, P> <span class="keyword">const</span> & v);</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="comment">// -- Boolean operators --</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator==(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> operator!=(tvec4<T, P> <span class="keyword">const</span> & v1, tvec4<T, P> <span class="keyword">const</span> & v2);</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> }<span class="comment">//namespace glm</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor">#ifndef GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor">#include "type_vec4.inl"</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#endif//GLM_EXTERNAL_TEMPLATE</span></div>
-<div class="ttc" id="a00153_html_ga18d45e3d4c7705e67ccfabd99e521604"><div class="ttname"><a href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">glm::length</a></div><div class="ttdeci">GLM_FUNC_DECL T length(vecType< T, P > const &x)</div><div class="ttdoc">Returns the length of x, i.e., sqrt(x * x). </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00005_html"><div class="ttname"><a href="a00005.html">_swizzle_func.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00105_html"><div class="ttname"><a href="a00105.html">setup.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00132_html"><div class="ttname"><a href="a00132.html">type_vec.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-<div class="ttc" id="a00004_html"><div class="ttname"><a href="a00004.html">_swizzle.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00131.html">detail/type_vec4.hpp</a>"</span></div>
+<div class="ttc" id="a00131_html"><div class="ttname"><a href="a00131.html">type_vec4.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00137.html b/doc/api/a00137.html
index 705074a..e59e541 100644
--- a/doc/api/a00137.html
+++ b/doc/api/a00137.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ulp.hpp File Reference</title>
+<title>0.9.8: vector_angle.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,14 +41,14 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">ulp.hpp File Reference</div> </div>
+<div class="title">vector_angle.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
@@ -56,37 +56,25 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &x, T const &y)</td></tr>
-<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class vecType> </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType< T > const &x, vecType< T > const &y)</td></tr>
-<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &x)</td></tr>
-<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &x, uint const &Distance)</td></tr>
-<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &x)</td></tr>
-<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &x, uint const &Distance)</td></tr>
-<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &x, vecType const &y)</td></tr>
+<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2< T, P > const &x, tvec2< T, P > const &y)</td></tr>
+<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</td></tr>
+<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00183.html">GLM_GTC_ulp</a></p>
-<dl class="section date"><dt>Date</dt><dd>2011-02-21 / 2011-12-12 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00236.html">GLM_GTX_vector_angle</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd>
+<dd>
+gtx_epsilon (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00137_source.html">ulp.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00137_source.html">vector_angle.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00137_source.html b/doc/api/a00137_source.html
index 3ad2c53..38af63a 100644
--- a/doc/api/a00137_source.html
+++ b/doc/api/a00137_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: ulp.hpp Source File</title>
+<title>0.9.8: vector_angle.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,55 +41,52 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">ulp.hpp</div> </div>
+<div class="title">vector_angle.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00137.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Dependencies</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include "../detail/setup.hpp"</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../detail/precision.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../detail/type_int.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_ulp extension included")</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> GLM_FUNC_DECL genType <a class="code" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> GLM_FUNC_DECL genType <a class="code" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> & x);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> GLM_FUNC_DECL genType <a class="code" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a>(genType <span class="keyword">const</span> & x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & Distance);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> GLM_FUNC_DECL genType <a class="code" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a>(genType <span class="keyword">const</span> & x, <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <span class="keyword">const</span> & Distance);</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> GLM_FUNC_DECL <a class="code" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> <a class="code" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(T <span class="keyword">const</span> & x, T <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span><<span class="keyword">typename</span> T, <span class="keyword">template</span><<span class="keyword">typename</span>> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> GLM_FUNC_DECL vecType<uint> <a class="code" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a>(vecType<T> <span class="keyword">const</span> & x, vecType<T> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "ulp.inl"</span></div>
-<div class="ttc" id="a00183_html_ga85355f2549d75789eb66e5d565d8ad26"><div class="ttname"><a href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">glm::float_distance</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< uint > float_distance(vecType< T > const &x, vecType< T > const &y)</div><div class="ttdoc">Return the distance in the number of ULP between 2 vectors. </div></div>
-<div class="ttc" id="a00183_html_gaa399d5b6472a70e8952f9b26ecaacdec"><div class="ttname"><a href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">glm::prev_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType prev_float(genType const &x, uint const &Distance)</div><div class="ttdoc">Return the value(s) ULP distance before the input value(s). </div></div>
-<div class="ttc" id="a00164_html_ga91ad9478d81a7aaf2593e8d9c3d06a14"><div class="ttname"><a href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">glm::uint</a></div><div class="ttdeci">unsigned int uint</div><div class="ttdoc">Unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00119_source.html#l00308">type_int.hpp:308</a></div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00183_html_gad107ec3d9697ef82032a33338a73ebdd"><div class="ttname"><a href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">glm::next_float</a></div><div class="ttdeci">GLM_FUNC_DECL genType next_float(genType const &x, uint const &Distance)</div><div class="ttdoc">Return the value(s) ULP distance after the input value(s). </div></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "../gtc/epsilon.hpp"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "../gtx/rotate_vector.hpp"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_vector_angle extension included")</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00236.html#gab8691008a2536b681b711211816c14f7">angle</a>(</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> vecType <span class="keyword">const</span> & x, </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> vecType <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> GLM_FUNC_DECL T <a class="code" href="a00236.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> tvec2<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> tvec2<T, P> <span class="keyword">const</span> & y);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL T <a class="code" href="a00236.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> tvec3<T, P> <span class="keyword">const</span> & ref);</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "vector_angle.inl"</span></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00236_html_gab8691008a2536b681b711211816c14f7"><div class="ttname"><a href="a00236.html#gab8691008a2536b681b711211816c14f7">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL vecType::value_type angle(vecType const &x, vecType const &y)</div><div class="ttdoc">Returns the absolute angle between two vectors. </div></div>
+<div class="ttc" id="a00236_html_ga7254dba112eff55f55f9544f41cb9ece"><div class="ttname"><a href="a00236.html#ga7254dba112eff55f55f9544f41cb9ece">glm::orientedAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T orientedAngle(tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</div><div class="ttdoc">Returns the oriented angle between two 3d vectors based from a reference axis. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00138.html b/doc/api/a00138.html
index fa328d7..00c85dd 100644
--- a/doc/api/a00138.html
+++ b/doc/api/a00138.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec1.hpp File Reference</title>
+<title>0.9.8: vector_query.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,68 +41,45 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">vec1.hpp File Reference</div> </div>
+<div class="title">vector_query.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00138_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:a97f808440fd5411e2c46a55db01329f0"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1 </td><td class="memItemRight" valign="bottom"><b>bvec1</b></td></tr>
-<tr class="separator:a97f808440fd5411e2c46a55db01329f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1 </td><td class="memItemRight" valign="bottom"><b>dvec1</b></td></tr>
-<tr class="separator:af5895ca3a2b8ff8239bdcd5d153fa5ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:abb1dfdb295030ec2965eed463009d9aa"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_bvec1</b></td></tr>
-<tr class="separator:abb1dfdb295030ec2965eed463009d9aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_dvec1</b></td></tr>
-<tr class="separator:ae0b25a2a5d5abf7001aecefaf0ad8d0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1_t </td><td class="memItemRight" valign="bottom"><b>highp_ivec1</b></td></tr>
-<tr class="separator:aad38f7770219bb7a4b84a7d5c68d7f7d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae38198c95c92d34875ca31f4b7c14d27"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1_t </td><td class="memItemRight" valign="bottom"><b>highp_uvec1</b></td></tr>
-<tr class="separator:ae38198c95c92d34875ca31f4b7c14d27"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec1 </td><td class="memItemRight" valign="bottom"><b>ivec1</b></td></tr>
-<tr class="separator:ac424dc0bcb8f78bb57f5f9350a36d9b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ac42347907bf39ce2adc41f764c7e6c99"><td class="memItemLeft" align="right" valign="top">typedef lowp_bvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_bvec1</b></td></tr>
-<tr class="separator:ac42347907bf39ce2adc41f764c7e6c99"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memItemLeft" align="right" valign="top">typedef lowp_dvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_dvec1</b></td></tr>
-<tr class="separator:a9a00665cc5ffd8bb7dea1262a421d07b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a62179513d4c3d38f5f7d73756220e568"><td class="memItemLeft" align="right" valign="top">typedef lowp_ivec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_ivec1</b></td></tr>
-<tr class="separator:a62179513d4c3d38f5f7d73756220e568"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memItemLeft" align="right" valign="top">typedef lowp_uvec1_t </td><td class="memItemRight" valign="bottom"><b>lowp_uvec1</b></td></tr>
-<tr class="separator:ab73c0a6f4fe24ce30e808b6c4f511935"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aac363ee47ee16b0361db847c5a97e821"><td class="memItemLeft" align="right" valign="top">typedef mediump_bvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_bvec1</b></td></tr>
-<tr class="separator:aac363ee47ee16b0361db847c5a97e821"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a08d652d636a98a60782ac109f0273931"><td class="memItemLeft" align="right" valign="top">typedef mediump_dvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_dvec1</b></td></tr>
-<tr class="separator:a08d652d636a98a60782ac109f0273931"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ae2b635f944fd11622a4f23f783f0c01e"><td class="memItemLeft" align="right" valign="top">typedef mediump_ivec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_ivec1</b></td></tr>
-<tr class="separator:ae2b635f944fd11622a4f23f783f0c01e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a265324081f85d36db159677d8ca35fd1"><td class="memItemLeft" align="right" valign="top">typedef mediump_uvec1_t </td><td class="memItemRight" valign="bottom"><b>mediump_uvec1</b></td></tr>
-<tr class="separator:a265324081f85d36db159677d8ca35fd1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a63e1e4312a97da0007db93d7f18d9687"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec1 </td><td class="memItemRight" valign="bottom"><b>uvec1</b></td></tr>
-<tr class="separator:a63e1e4312a97da0007db93d7f18d9687"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4df551da8fd418cf98951a3948390485"><td class="memItemLeft" align="right" valign="top">typedef highp_vec1 </td><td class="memItemRight" valign="bottom"><b>vec1</b></td></tr>
-<tr class="separator:a4df551da8fd418cf98951a3948390485"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00184.html">GLM_GTC_vec1</a></p>
-<dl class="section date"><dt>Date</dt><dd>2010-02-08 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
+<div class="textblock"><p><a class="el" href="a00237.html">GLM_GTX_vector_query</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00138_source.html">vec1.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00138_source.html">vector_query.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00138_source.html b/doc/api/a00138_source.html
index ef72fd0..cbd24ba 100644
--- a/doc/api/a00138_source.html
+++ b/doc/api/a00138_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec1.hpp Source File</title>
+<title>0.9.8: vector_query.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,113 +41,58 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec1.hpp</div> </div>
+<div class="title">vector_query.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00138.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../detail/type_vec1.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTC_vec1 extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">typedef</span> highp_vec1_t highp_vec1;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">typedef</span> mediump_vec1_t mediump_vec1;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">typedef</span> lowp_vec1_t lowp_vec1;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">typedef</span> highp_dvec1_t highp_dvec1;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">typedef</span> mediump_dvec1_t mediump_dvec1;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">typedef</span> lowp_dvec1_t lowp_dvec1;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">typedef</span> highp_ivec1_t highp_ivec1;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">typedef</span> mediump_ivec1_t mediump_ivec1;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typedef</span> lowp_ivec1_t lowp_ivec1;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">typedef</span> highp_uvec1_t highp_uvec1;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">typedef</span> mediump_uvec1_t mediump_uvec1;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">typedef</span> lowp_uvec1_t lowp_uvec1;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">typedef</span> highp_bvec1_t highp_bvec1;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">typedef</span> mediump_bvec1_t mediump_bvec1;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">typedef</span> lowp_bvec1_t lowp_bvec1;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// vec1 definition</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_BOOL))</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">typedef</span> mediump_bvec1 bvec1;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_BOOL))</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">typedef</span> lowp_bvec1 bvec1;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">typedef</span> highp_bvec1 bvec1;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_FLOAT))</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">typedef</span> highp_vec1 vec1;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">typedef</span> mediump_vec1 vec1;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_FLOAT))</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">typedef</span> lowp_vec1 vec1;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">typedef</span> highp_vec1 vec1;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_DOUBLE))</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">typedef</span> mediump_dvec1 dvec1;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_DOUBLE))</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">typedef</span> lowp_dvec1 dvec1;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">typedef</span> highp_dvec1 dvec1;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_INT))</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_INT))</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">typedef</span> mediump_ivec1 ivec1;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_INT))</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">typedef</span> lowp_ivec1 ivec1;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">typedef</span> highp_ivec1 ivec1;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#if(defined(GLM_PRECISION_HIGHP_UINT))</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_MEDIUMP_UINT))</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">typedef</span> mediump_uvec1 uvec1;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#elif(defined(GLM_PRECISION_LOWP_UINT))</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">typedef</span> lowp_uvec1 uvec1;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword">typedef</span> highp_uvec1 uvec1;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif//GLM_PRECISION</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor">#include "vec1.inl"</span></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <cfloat></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <limits></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_vector_query extension included")</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00237.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00237.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00237.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00237.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00237.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00237.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a>);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "vector_query.inl"</span></div>
+<div class="ttc" id="a00237_html_ga6fa5fa2af67d14c205d24c49aad03270"><div class="ttname"><a href="a00237.html#ga6fa5fa2af67d14c205d24c49aad03270">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a vector is normalized. </div></div>
+<div class="ttc" id="a00162_html_ga2a1e57fc5592b69cfae84174cbfc9429"><div class="ttname"><a href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
+<div class="ttc" id="a00237_html_ga89c82bc60e5b84e4489b74c15a134caf"><div class="ttname"><a href="a00237.html#ga89c82bc60e5b84e4489b74c15a134caf">glm::areOrthonormal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthonormal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are orthonormal. </div></div>
+<div class="ttc" id="a00237_html_gaee10acefed397c11e01f2862e837754c"><div class="ttname"><a href="a00237.html#gaee10acefed397c11e01f2862e837754c">glm::areOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthogonal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are orthogonals. </div></div>
+<div class="ttc" id="a00237_html_ga93ecd4137480483ce1af0de8bbbf6546"><div class="ttname"><a href="a00237.html#ga93ecd4137480483ce1af0de8bbbf6546">glm::isCompNull</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isCompNull(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a each component of a vector is null. </div></div>
+<div class="ttc" id="a00237_html_ga465b844190d1740051e45d780832ea4c"><div class="ttname"><a href="a00237.html#ga465b844190d1740051e45d780832ea4c">glm::areCollinear</a></div><div class="ttdeci">GLM_FUNC_DECL bool areCollinear(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are collinears. </div></div>
+<div class="ttc" id="a00237_html_ga81a64edc1a2b470b82896592e89c523b"><div class="ttname"><a href="a00237.html#ga81a64edc1a2b470b82896592e89c523b">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a vector is null. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00139.html b/doc/api/a00139.html
index 3393fab..584425c 100644
--- a/doc/api/a00139.html
+++ b/doc/api/a00139.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec2.hpp File Reference</title>
+<title>0.9.8: vector_relational.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,22 +46,15 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec2.hpp File Reference</div> </div>
+<div class="title">vector_relational.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00139_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00156.html">GLM Core</a> </p>
-<p>Definition in file <a class="el" href="a00139_source.html">vec2.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00139_source.html">vector_relational.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00139_source.html b/doc/api/a00139_source.html
index 1e0d61d..3ceca0c 100644
--- a/doc/api/a00139_source.html
+++ b/doc/api/a00139_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec2.hpp Source File</title>
+<title>0.9.8: vector_relational.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -46,14 +46,14 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec2.hpp</div> </div>
+<div class="title">vector_relational.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00139.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00134.html">detail/type_vec2.hpp</a>"</span></div>
-<div class="ttc" id="a00134_html"><div class="ttname"><a href="a00134.html">type_vec2.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> </div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="a00036.html">detail/func_vector_relational.hpp</a>"</span></div>
+<div class="ttc" id="a00036_html"><div class="ttname"><a href="a00036.html">func_vector_relational.hpp</a></div><div class="ttdoc">GLM Core </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00140.html b/doc/api/a00140.html
index 9eca1e2..d790d10 100644
--- a/doc/api/a00140.html
+++ b/doc/api/a00140.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec3.hpp File Reference</title>
+<title>0.9.8: wrap.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,27 +41,39 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">vec3.hpp File Reference</div> </div>
+<div class="title">wrap.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="a00140_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
+<div class="textblock"><p><a class="el" href="a00238.html">GLM_GTX_wrap</a> </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00156.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-<p>Definition in file <a class="el" href="a00140_source.html">vec3.hpp</a>.</p>
+<p>Definition in file <a class="el" href="a00140_source.html">wrap.hpp</a>.</p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00140_source.html b/doc/api/a00140_source.html
index b5b3041..8c663e7 100644
--- a/doc/api/a00140_source.html
+++ b/doc/api/a00140_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec3.hpp Source File</title>
+<title>0.9.8: wrap.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -41,19 +41,48 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">vec3.hpp</div> </div>
+<div class="title">wrap.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00140.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00135.html">detail/type_vec3.hpp</a>"</span></div>
-<div class="ttc" id="a00135_html"><div class="ttname"><a href="a00135.html">type_vec3.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// Dependency:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "../gtc/vec1.hpp"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_wrap extension included")</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="a00141.html">glm</a></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> GLM_FUNC_DECL genType <a class="code" href="a00238.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a>(genType <span class="keyword">const</span>& Texcoord);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> GLM_FUNC_DECL genType <a class="code" href="a00238.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a>(genType <span class="keyword">const</span>& Texcoord);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> GLM_FUNC_DECL genType <a class="code" href="a00238.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a>(genType <span class="keyword">const</span>& Texcoord);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> GLM_FUNC_DECL genType <a class="code" href="a00238.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a>(genType <span class="keyword">const</span>& Texcoord);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }<span class="comment">// namespace glm</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include "wrap.inl"</span></div>
+<div class="ttc" id="a00238_html_ga6c0cc6bd1d67ea1008d2592e998bad33"><div class="ttname"><a href="a00238.html#ga6c0cc6bd1d67ea1008d2592e998bad33">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_CLAMP OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00238_html_ga809650c6310ea7c42666e918c117fb6f"><div class="ttname"><a href="a00238.html#ga809650c6310ea7c42666e918c117fb6f">glm::repeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType repeat(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_REPEAT OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00238_html_ga16a89b0661b60d5bea85137bbae74d73"><div class="ttname"><a href="a00238.html#ga16a89b0661b60d5bea85137bbae74d73">glm::mirrorRepeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00238_html_gaa6856a0a048d2749252848da35e10c8b"><div class="ttname"><a href="a00238.html#gaa6856a0a048d2749252848da35e10c8b">glm::mirrorClamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </div></div>
+<div class="ttc" id="a00141_html"><div class="ttname"><a href="a00141.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00011">_noise.hpp:11</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00141.html b/doc/api/a00141.html
deleted file mode 100644
index f9705a9..0000000
--- a/doc/api/a00141.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vec4.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vec4.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00141_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00141_source.html">vec4.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00142.html b/doc/api/a00142.html
deleted file mode 100644
index bf26f41..0000000
--- a/doc/api/a00142.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_angle.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">vector_angle.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00142_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &x, vecType const &y)</td></tr>
-<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2< T, P > const &x, tvec2< T, P > const &y)</td></tr>
-<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</td></tr>
-<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00239.html">GLM_GTX_vector_angle</a></p>
-<dl class="section date"><dt>Date</dt><dd>2005-12-30 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> (dependence) </dd>
-<dd>
-gtx_epsilon (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00142_source.html">vector_angle.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00142_source.html b/doc/api/a00142_source.html
deleted file mode 100644
index be51d24..0000000
--- a/doc/api/a00142_source.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_angle.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_angle.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00142.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "../gtc/epsilon.hpp"</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "../gtx/quaternion.hpp"</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include "../gtx/rotate_vector.hpp"</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_vector_angle extension included")</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">template</span> <<span class="keyword">typename</span> vecType></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> GLM_FUNC_DECL <span class="keyword">typename</span> vecType::value_type <a class="code" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a>(</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> vecType <span class="keyword">const</span> & x, </div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> vecType <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> GLM_FUNC_DECL T <a class="code" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> tvec2<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> tvec2<T, P> <span class="keyword">const</span> & y);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL T <a class="code" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a>(</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> tvec3<T, P> <span class="keyword">const</span> & x,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> tvec3<T, P> <span class="keyword">const</span> & y,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> tvec3<T, P> <span class="keyword">const</span> & ref);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor">#include "vector_angle.inl"</span></div>
-<div class="ttc" id="a00239_html_gab8691008a2536b681b711211816c14f7"><div class="ttname"><a href="a00239.html#gab8691008a2536b681b711211816c14f7">glm::angle</a></div><div class="ttdeci">GLM_FUNC_DECL vecType::value_type angle(vecType const &x, vecType const &y)</div><div class="ttdoc">Returns the absolute angle between two vectors Parameters need to be normalized. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00239_html_ga7254dba112eff55f55f9544f41cb9ece"><div class="ttname"><a href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">glm::orientedAngle</a></div><div class="ttdeci">GLM_FUNC_DECL T orientedAngle(tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</div><div class="ttdoc">Returns the oriented angle between two 3d vectors based from a reference axis. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00143.html b/doc/api/a00143.html
deleted file mode 100644
index 33b0813..0000000
--- a/doc/api/a00143.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_query.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">vector_query.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00143_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00240.html">GLM_GTX_vector_query</a></p>
-<dl class="section date"><dt>Date</dt><dd>2008-03-10 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00143_source.html">vector_query.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00143_source.html b/doc/api/a00143_source.html
deleted file mode 100644
index c667598..0000000
--- a/doc/api/a00143_source.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_query.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_query.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00143.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <cfloat></span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <limits></span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_vector_query extension included")</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> GLM_FUNC_DECL vecType<bool, P> <a class="code" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a>(vecType<T, P> <span class="keyword">const</span> & v, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, precision P, <span class="keyword">template</span> <<span class="keyword">typename</span>, precision> <span class="keyword">class </span>vecType></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a>(vecType<T, P> <span class="keyword">const</span> & v0, vecType<T, P> <span class="keyword">const</span> & v1, T <span class="keyword">const</span> & <a class="code" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "vector_query.inl"</span></div>
-<div class="ttc" id="a00240_html_ga6fa5fa2af67d14c205d24c49aad03270"><div class="ttname"><a href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">glm::isNormalized</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNormalized(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a vector is normalized. </div></div>
-<div class="ttc" id="a00168_html_gacb41049b8d22c8aa90e362b96c524feb"><div class="ttname"><a href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">glm::epsilon</a></div><div class="ttdeci">GLM_FUNC_DECL genType epsilon()</div><div class="ttdoc">Return the epsilon constant for floating point types. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00240_html_ga93ecd4137480483ce1af0de8bbbf6546"><div class="ttname"><a href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">glm::isCompNull</a></div><div class="ttdeci">GLM_FUNC_DECL vecType< bool, P > isCompNull(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a each component of a vector is null. </div></div>
-<div class="ttc" id="a00240_html_gaee10acefed397c11e01f2862e837754c"><div class="ttname"><a href="a00240.html#gaee10acefed397c11e01f2862e837754c">glm::areOrthogonal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthogonal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are orthogonals. </div></div>
-<div class="ttc" id="a00240_html_ga81a64edc1a2b470b82896592e89c523b"><div class="ttname"><a href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">glm::isNull</a></div><div class="ttdeci">GLM_FUNC_DECL bool isNull(vecType< T, P > const &v, T const &epsilon)</div><div class="ttdoc">Check whether a vector is null. </div></div>
-<div class="ttc" id="a00240_html_ga89c82bc60e5b84e4489b74c15a134caf"><div class="ttname"><a href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">glm::areOrthonormal</a></div><div class="ttdeci">GLM_FUNC_DECL bool areOrthonormal(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are orthonormal. </div></div>
-<div class="ttc" id="a00240_html_ga465b844190d1740051e45d780832ea4c"><div class="ttname"><a href="a00240.html#ga465b844190d1740051e45d780832ea4c">glm::areCollinear</a></div><div class="ttdeci">GLM_FUNC_DECL bool areCollinear(vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</div><div class="ttdoc">Check whether two vectors are collinears. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00144.html b/doc/api/a00144.html
deleted file mode 100644
index c712fc5..0000000
--- a/doc/api/a00144.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_relational.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_relational.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00144_source.html">Go to the source code of this file.</a></p>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00162.html">GLM Core</a></p>
-<dl class="section date"><dt>Date</dt><dd>2013-12-24 / 2013-12-24 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio </dd></dl>
-
-<p>Definition in file <a class="el" href="a00144_source.html">vector_relational.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00144_source.html b/doc/api/a00144_source.html
deleted file mode 100644
index 8d37145..0000000
--- a/doc/api/a00144_source.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: vector_relational.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">vector_relational.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00144.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="a00037.html">detail/func_vector_relational.hpp</a>"</span></div>
-<div class="ttc" id="a00037_html"><div class="ttname"><a href="a00037.html">func_vector_relational.hpp</a></div><div class="ttdoc">OpenGL Mathematics (glm.g-truc.net) </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00145.html b/doc/api/a00145.html
deleted file mode 100644
index 6b1e6c1..0000000
--- a/doc/api/a00145.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: wrap.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">wrap.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-
-<p><a href="a00145_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>OpenGL Mathematics (glm.g-truc.net) </p>
-<p>Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
-<p>Restrictions: By making use of the Software for military purposes, you choose to make a Bunny unhappy.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
-<p><a class="el" href="a00241.html">GLM_GTX_wrap</a></p>
-<dl class="section date"><dt>Date</dt><dd>2009-11-25 / 2011-06-07 </dd></dl>
-<dl class="section author"><dt>Author</dt><dd>Christophe Riccio</dd></dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="The core of GLM, which implements exactly and only the GLSL specification to the degree possible...">GLM Core</a> (dependence) </dd></dl>
-
-<p>Definition in file <a class="el" href="a00145_source.html">wrap.hpp</a>.</p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00145_source.html b/doc/api/a00145_source.html
deleted file mode 100644
index f87fbd5..0000000
--- a/doc/api/a00145_source.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: wrap.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_275089585c7fc1b5fd5d7d42c69cb1da.html">D:</a></li><li class="navelem"><a class="el" href="dir_7b98f88bffbed4b390b5f8f520d9c08e.html">Source</a></li><li class="navelem"><a class="el" href="dir_1f76e953200861345293ade84ac7fb6c.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_e29b03b892e0e25920d021a614d4db9b.html">glm</a></li><li class="navelem"><a class="el" href="dir_5ce58d942b2d0776e17a9a58abc01e04.html">glm</a></li><li class="n [...]
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">wrap.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="a00145.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#pragma once</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Dependency:</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "../glm.hpp"</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"># pragma message("GLM: GLM_GTX_wrap extension included")</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="a00146.html">glm</a></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a>(genType <span class="keyword">const</span> & Texcoord);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a>(genType <span class="keyword">const</span> & Texcoord);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> GLM_FUNC_DECL genType <a class="code" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a>(genType <span class="keyword">const</span> & Texcoord);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> genType> </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a>(genType <span class="keyword">const</span> & Texcoord);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }<span class="comment">// namespace glm</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "wrap.inl"</span></div>
-<div class="ttc" id="a00241_html_ga809650c6310ea7c42666e918c117fb6f"><div class="ttname"><a href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">glm::repeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType repeat(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_REPEAT OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00241_html_gaa6856a0a048d2749252848da35e10c8b"><div class="ttname"><a href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">glm::mirrorClamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00146_html"><div class="ttname"><a href="a00146.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00003_source.html#l00040">_noise.hpp:40</a></div></div>
-<div class="ttc" id="a00241_html_ga6c0cc6bd1d67ea1008d2592e998bad33"><div class="ttname"><a href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL genType clamp(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_CLAMP OpenGL wrap mode. </div></div>
-<div class="ttc" id="a00241_html_ga16a89b0661b60d5bea85137bbae74d73"><div class="ttname"><a href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">glm::mirrorRepeat</a></div><div class="ttdeci">GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)</div><div class="ttdoc">Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00151.html b/doc/api/a00146.html
similarity index 94%
copy from doc/api/a00151.html
copy to doc/api/a00146.html
index 7d26630..429ee29 100644
--- a/doc/api/a00151.html
+++ b/doc/api/a00146.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Common functions</title>
+<title>0.9.8: Common functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,100 +39,100 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Common functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Common functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
+<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
+<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
+<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
+<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
+<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
+<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
+<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
+<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
+<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
+<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
+<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
+<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
+<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
+<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
+<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
+<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
+<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
+<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
+<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00146.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -234,7 +234,7 @@ Functions</h2></td></tr>
<dd>
<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00016_source.html#l00076">glm::saturate()</a>.</p>
+<p>Referenced by <a class="el" href="a00016_source.html#l00047">glm::saturate()</a>.</p>
</div>
</div>
@@ -729,17 +729,17 @@ Functions</h2></td></tr>
<div class="line">...</div>
<div class="line">float a;</div>
<div class="line"><span class="keywordtype">bool</span> b;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> f;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> g;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> h;</div>
+<div class="line"><a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> <a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>;</div>
+<div class="line"><a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> f;</div>
+<div class="line"><a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> g;</div>
+<div class="line"><a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> h;</div>
<div class="line">...</div>
-<div class="line">glm::vec4 r = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> s = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> t = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(<a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> u = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
+<div class="line">glm::vec4 r = <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
+<div class="line"><a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> s = <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
+<div class="line"><a class="code" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> t = <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(<a class="code" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
+<div class="line"><a class="code" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> u = <a class="code" href="a00146.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
</div><!-- fragment -->
-<p>Referenced by <a class="el" href="a00016_source.html#l00067">glm::lerp()</a>.</p>
+<p>Referenced by <a class="el" href="a00016_source.html#l00038">glm::lerp()</a>.</p>
</div>
</div>
@@ -1075,7 +1075,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">GLM_FUNC_DECL float glm::uintBitsToFloat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
@@ -1097,7 +1097,7 @@ Functions</h2></td></tr>
<tr>
<td class="memname">GLM_FUNC_DECL vecType<float, P> glm::uintBitsToFloat </td>
<td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
diff --git a/doc/api/a00152.html b/doc/api/a00147.html
similarity index 96%
copy from doc/api/a00152.html
copy to doc/api/a00147.html
index 7a82558..2e27dd8 100644
--- a/doc/api/a00152.html
+++ b/doc/api/a00147.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Exponential functions</title>
+<title>0.9.8: Exponential functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,32 +39,32 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Exponential functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Exponential functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
+<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00147.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
diff --git a/doc/api/a00153.html b/doc/api/a00148.html
similarity index 96%
copy from doc/api/a00153.html
copy to doc/api/a00148.html
index 40e4596..5d0a081 100644
--- a/doc/api/a00153.html
+++ b/doc/api/a00148.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Geometric functions</title>
+<title>0.9.8: Geometric functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,35 +39,35 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Geometric functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Geometric functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
+<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
+<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
+<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
+<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
+<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00148.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
diff --git a/doc/api/a00154.html b/doc/api/a00149.html
similarity index 94%
copy from doc/api/a00154.html
copy to doc/api/a00149.html
index c95d3f1..e2bee04 100644
--- a/doc/api/a00154.html
+++ b/doc/api/a00149.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Integer functions</title>
+<title>0.9.8: Integer functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,50 +39,50 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Integer functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Integer functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
+<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
+<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
+<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
+<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
+<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
+<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
+<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
+<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
+<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
+<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00149.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -435,19 +435,19 @@ Functions</h2></td></tr>
<tr>
<td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::uaddCarry </td>
<td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
<td class="paramname"><em>carry</em> </td>
</tr>
<tr>
@@ -479,25 +479,25 @@ Functions</h2></td></tr>
<tr>
<td class="memname">GLM_FUNC_DECL void glm::umulExtended </td>
<td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
<td class="paramname"><em>msb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
<td class="paramname"><em>lsb</em> </td>
</tr>
<tr>
@@ -529,19 +529,19 @@ Functions</h2></td></tr>
<tr>
<td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::usubBorrow </td>
<td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
+ <td class="paramtype">vecType< <a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
<td class="paramname"><em>borrow</em> </td>
</tr>
<tr>
diff --git a/doc/api/a00155.html b/doc/api/a00150.html
similarity index 92%
copy from doc/api/a00155.html
copy to doc/api/a00150.html
index dc7848c..8ea665d 100644
--- a/doc/api/a00155.html
+++ b/doc/api/a00150.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Matrix functions</title>
+<title>0.9.8: Matrix functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,23 +39,23 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Matrix functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Matrix functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
+<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a> (matType< T, P > const &m)</td></tr>
-<tr class="separator:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gaa7e1d5586cd499126cec76e0f11871e3">inverse</a> (matType< T, P > const &m)</td></tr>
+<tr class="separator:gaa7e1d5586cd499126cec76e0f11871e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
+<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB> </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
+<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00150.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -98,12 +98,12 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="ga7635d3dbe5aa10ff73a0e6903bf6bea5"></a>
+<a class="anchor" id="gaa7e1d5586cd499126cec76e0f11871e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL matType<T, P> glm::inverse </td>
+ <td class="memname">GLM_FUNC_DECL matType< T, P > inverse </td>
<td>(</td>
<td class="paramtype">matType< T, P > const & </td>
<td class="paramname"><em>m</em></td><td>)</td>
diff --git a/doc/api/a00151.html b/doc/api/a00151.html
index 7d26630..8c7f982 100644
--- a/doc/api/a00151.html
+++ b/doc/api/a00151.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Common functions</title>
+<title>0.9.8: Floating-Point Pack and Unpack Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,1076 +39,317 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Common functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Floating-Point Pack and Unpack Functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga693d77696ff36572a0da79efec965acd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga693d77696ff36572a0da79efec965acd">abs</a> (genType x)</td></tr>
-<tr class="separator:ga693d77696ff36572a0da79efec965acd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga9189b2bec45ff301923ea8f8dd157fb8">ceil</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga9189b2bec45ff301923ea8f8dd157fb8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga93bce26c7d80d30a62f5c508f8498a6c">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
-<tr class="separator:ga93bce26c7d80d30a62f5c508f8498a6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &v)</td></tr>
-<tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gac4a0710238ae54c67931dd29a0b0f873"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac4a0710238ae54c67931dd29a0b0f873">floatBitsToInt</a> (vecType< float, P > const &v)</td></tr>
-<tr class="separator:gac4a0710238ae54c67931dd29a0b0f873"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &v)</td></tr>
-<tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga1804d4c443605d8a27be644aa461afe4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga1804d4c443605d8a27be644aa461afe4">floatBitsToUint</a> (vecType< float, P > const &v)</td></tr>
-<tr class="separator:ga1804d4c443605d8a27be644aa461afe4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga568b822b78f045f77c3325e165b44d5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga568b822b78f045f77c3325e165b44d5d">floor</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga568b822b78f045f77c3325e165b44d5d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &a, genType const &b, genType const &c)</td></tr>
-<tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
-<tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga20620e83544d1a988857a3bc4ebe0e1d">frexp</a> (genType const &x, genIType &exp)</td></tr>
-<tr class="separator:ga20620e83544d1a988857a3bc4ebe0e1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &v)</td></tr>
-<tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gad21ab176dd0e6b59d923db5efca87f4e">intBitsToFloat</a> (vecType< int, P > const &v)</td></tr>
-<tr class="separator:gad21ab176dd0e6b59d923db5efca87f4e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf28f7a4696746f081685c9fd05c7e2de">isinf</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gaf28f7a4696746f081685c9fd05c7e2de"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6cb8f202a52eed2331724a3800198ebf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6cb8f202a52eed2331724a3800198ebf">isnan</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga6cb8f202a52eed2331724a3800198ebf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplParams" colspan="2">template<typename genType , typename genIType > </td></tr>
-<tr class="memitem:ga52e319d7289b849ec92055abd4830533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga52e319d7289b849ec92055abd4830533">ldexp</a> (genType const &x, genIType const &exp)</td></tr>
-<tr class="separator:ga52e319d7289b849ec92055abd4830533"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga98caa7f95a94c86a86ebce893a45326c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga98caa7f95a94c86a86ebce893a45326c">max</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga98caa7f95a94c86a86ebce893a45326c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga2c2bde1cec025b7ddff83c74a1113719">min</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga2c2bde1cec025b7ddff83c74a1113719"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">mix</a> (vecType< T, P > const &x, vecType< T, P > const &y, vecType< U, P > const &a)</td></tr>
-<tr class="separator:gadccbaffe46f369cf1a96b2aef92cbfdd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga12201563ef902e3b07e0d1d7656efdb1">mod</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga12201563ef902e3b07e0d1d7656efdb1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &i)</td></tr>
-<tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada0165544c0618d634c8056a88082ce9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gada0165544c0618d634c8056a88082ce9">round</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gada0165544c0618d634c8056a88082ce9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga655598104195a60a950291485e84a97e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga655598104195a60a950291485e84a97e">roundEven</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga655598104195a60a950291485e84a97e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac3446b4138e0b8757561c07cd19f084d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gac3446b4138e0b8757561c07cd19f084d">sign</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gac3446b4138e0b8757561c07cd19f084d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
-<tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
-<tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#gaf15b74ab672af2c7d7b535a9b4803700">step</a> (T edge, vecType< T, P > const &x)</td></tr>
-<tr class="separator:gaf15b74ab672af2c7d7b535a9b4803700"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, typename T , precision P> </td></tr>
-<tr class="memitem:ga6d84170051fb87c183c38883ec85b411"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga6d84170051fb87c183c38883ec85b411">step</a> (vecType< T, P > const &edge, vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga6d84170051fb87c183c38883ec85b411"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga634cdbf8b37edca03f2248450570fd54"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga634cdbf8b37edca03f2248450570fd54">trunc</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga634cdbf8b37edca03f2248450570fd54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &v)</td></tr>
-<tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplParams" colspan="2">template<template< typename, precision > class vecType, precision P> </td></tr>
-<tr class="memitem:ga3acab37650ecd792dc84548094b58684"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00151.html#ga3acab37650ecd792dc84548094b58684">uintBitsToFloat</a> (vecType< uint, P > const &v)</td></tr>
-<tr class="separator:ga3acab37650ecd792dc84548094b58684"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &v)</td></tr>
+<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &v)</td></tr>
+<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
+<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
+<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
+<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
+<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. </p>
+<p>These functions do not operate component-wise, rather as described in each case. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga693d77696ff36572a0da79efec965acd"></a>
+<a class="anchor" id="gaa916ca426b2bb0343ba17e3753e245c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::abs </td>
+ <td class="memname">GLM_FUNC_DECL double glm::packDouble2x32 </td>
<td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x if x >= 0; otherwise, it returns -x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>floating-point or signed integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/abs.xml">GLSL abs man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9189b2bec45ff301923ea8f8dd157fb8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::ceil </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a value equal to the nearest integer that is greater than or equal to x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ceil.xml">GLSL ceil man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93bce26c7d80d30a62f5c508f8498a6c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>minVal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>maxVal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/clamp.xml">GLSL clamp man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-<p>Referenced by <a class="el" href="a00016_source.html#l00076">glm::saturate()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1425c1c3160ec51214b03a0469a3013d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::floatBitsToInt </td>
- <td>(</td>
- <td class="paramtype">float const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
-<p>The floating-point value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
+<p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
+<p>If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac4a0710238ae54c67931dd29a0b0f873"></a>
+<a class="anchor" id="ga20f134b07db3a3d3a38efb2617388c92"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<int, P> glm::floatBitsToInt </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::packHalf2x16 </td>
<td>(</td>
- <td class="paramtype">vecType< float, P > const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a signed integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToInt.xml">GLSL floatBitsToInt man page</a> </dd>
+<p>Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga70e0271c34af52f3100c7960e18c3f2b"></a>
+<a class="anchor" id="ga977ab172da5494e5ac63e952afacfbe2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::floatBitsToUint </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::packSnorm2x16 </td>
<td>(</td>
- <td class="paramtype">float const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm2x16.xml">GLSL packSnorm2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1804d4c443605d8a27be644aa461afe4"></a>
+<a class="anchor" id="ga85e8f17627516445026ab7a9c2e3531a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::floatBitsToUint </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::packSnorm4x8 </td>
<td>(</td>
- <td class="paramtype">vecType< float, P > const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a unsigned integer value representing the encoding of a floating-point value. </p>
-<p>The floatingpoint value's bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floatBitsToUint.xml">GLSL floatBitsToUint man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga568b822b78f045f77c3325e165b44d5d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::floor </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a value equal to the nearest integer that is less then or equal to x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/floor.xml">GLSL floor man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad0f444d4b81cc53c3b6edf5aa25078c2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fma </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Computes and returns a * b + c. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fma.xml">GLSL fma man page</a> </dd>
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8ba89e40e55ae5cdf228548f9b7639c7"></a>
+<a class="anchor" id="ga0e2d107039fe608a209497af867b85fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fract </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::packUnorm2x16 </td>
<td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return x - floor(x). </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/fract.xml">GLSL fract man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga20620e83544d1a988857a3bc4ebe0e1d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::frexp </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIType & </td>
- <td class="paramname"><em>exp</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) </p>
-<p>The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/frexp.xml">GLSL frexp man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4fb7c21c2dce064b26fd9ccdaf9adcd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL float glm::intBitsToFloat </td>
- <td>(</td>
- <td class="paramtype">int const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad21ab176dd0e6b59d923db5efca87f4e"></a>
+<a class="anchor" id="gaf7d2f7341a9eeb4a436929d6f9ad08f2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<float, P> glm::intBitsToFloat </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::packUnorm4x8 </td>
<td>(</td>
- <td class="paramtype">vecType< int, P > const & </td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/intBitsToFloat.xml">GLSL intBitsToFloat man page</a> </dd>
+<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf28f7a4696746f081685c9fd05c7e2de"></a>
+<a class="anchor" id="ga5f4296dc5f12f0aa67ac05b8bb322483"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isinf </td>
+ <td class="memname">GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
-<p>Returns false otherwise, including for implementations with no infinity representations.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isinf.xml">GLSL isinf man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6cb8f202a52eed2331724a3800198ebf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isnan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
-<p>Returns false otherwise, including for implementations with no NaN representations.</p>
-<p>/!\ When using compiler fast math, this function may fail.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga52e319d7289b849ec92055abd4830533"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ldexp </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIType const & </td>
- <td class="paramname"><em>exp</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) </p>
-<p>If this product is too large to be represented in the floating-point type, the result is undefined.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/ldexp.xml">GLSL ldexp man page</a>; </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga98caa7f95a94c86a86ebce893a45326c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::max </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns y if x < y; otherwise, it returns x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/max.xml">GLSL max man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c2bde1cec025b7ddff83c74a1113719"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::min </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns y if y < x; otherwise, it returns x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/min.xml">GLSL min man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadccbaffe46f369cf1a96b2aef92cbfdd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::mix </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. </p>
-<p>The value for a is not restricted to the range [0, 1].</p>
-<p>If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) [...]
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mix.xml">GLSL mix man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a></dd></dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Value to interpolate. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Value to interpolate. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Interpolant.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genTypeT</td><td>Floating point scalar or vector. </td></tr>
- <tr><td class="paramname">genTypeU</td><td>Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.</td></tr>
- </table>
- </dd>
-</dl>
-<div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="a00040.html">glm/glm.hpp</a>></span></div>
-<div class="line">...</div>
-<div class="line">float a;</div>
-<div class="line"><span class="keywordtype">bool</span> b;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> <a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>;</div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> f;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> g;</div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> h;</div>
-<div class="line">...</div>
-<div class="line">glm::vec4 r = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, a); <span class="comment">// Interpolate with a floating-point scalar two vectors. </span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> s = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, b); <span class="comment">// Teturns g or h;</span></div>
-<div class="line"><a class="code" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">glm::dvec3</a> t = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(<a class="code" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a>, f, a); <span class="comment">// Types of the third parameter is not required to match with the first and the second.</span></div>
-<div class="line"><a class="code" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">glm::vec4</a> u = <a class="code" href="a00151.html#gadccbaffe46f369cf1a96b2aef92cbfdd">glm::mix</a>(g, h, r); <span class="comment">// Interpolations can be perform per component with a vector for the last parameter.</span></div>
-</div><!-- fragment -->
-<p>Referenced by <a class="el" href="a00016_source.html#l00067">glm::lerp()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga12201563ef902e3b07e0d1d7656efdb1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mod </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga85e33f139b8db1b39b590a5713b9e679"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::modf </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>i</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). </p>
-<p>Both the return value and the output parameter will have the same sign as x.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/modf.xml">GLSL modf man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada0165544c0618d634c8056a88082ce9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::round </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a value equal to the nearest integer to x. </p>
-<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga655598104195a60a950291485e84a97e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::roundEven </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a value equal to the nearest integer to x. </p>
-<p>A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/roundEven.xml">GLSL roundEven man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd>
-<dd>
-<a href="http://developer.amd.com/documentation/articles/pages/New-Round-to-Even-Technique.aspx">New round to even technique</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac3446b4138e0b8757561c07cd19f084d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sign </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or signed integer; scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sign.xml">GLSL sign man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga562edf7eca082cc5b7a0aaf180436daf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::smoothstep </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>edge0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>edge1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. </p>
-<p>This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 >= edge1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/smoothstep.xml">GLSL smoothstep man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga015a1261ff23e12650211aa872863cce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::step </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">double </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<p>Returns a two-component unsigned integer vector representation of v. </p>
+<p>The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf15b74ab672af2c7d7b535a9b4803700"></a>
+<a class="anchor" id="gaf59b52e6b28da9335322c4ae19b5d745"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::step </td>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackHalf2x16 </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em> </td>
- </tr>
- <tr>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 0.0 if x < edge, otherwise it returns 1.0. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<p>Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6d84170051fb87c183c38883ec85b411"></a>
+<a class="anchor" id="gacd8f8971a3fe28418be0d0fa1f786b38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::step </td>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>edge</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 0.0 if x < edge, otherwise it returns 1.0. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/step.xml">GLSL step man page</a> </dd>
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga634cdbf8b37edca03f2248450570fd54"></a>
+<a class="anchor" id="ga2db488646d48b7c43d3218954523fe82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::trunc </td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/trunc.xml">GLSL trunc man page</a> </dd>
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab2bae0d15dcdca6093f88f76b3975d97"></a>
+<a class="anchor" id="ga1f66188e5d65afeb9ffba1ad971e4007"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::uintBitsToFloat </td>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3acab37650ecd792dc84548094b58684"></a>
+<a class="anchor" id="ga7f903259150b67e9466f5f8edffcd197"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<float, P> glm::uintBitsToFloat </td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 </td>
<td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. </p>
-<p>If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uintBitsToFloat.xml">GLSL uintBitsToFloat man page</a> </dd>
+<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00152.html b/doc/api/a00152.html
index 7a82558..a7cc702 100644
--- a/doc/api/a00152.html
+++ b/doc/api/a00152.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Exponential functions</title>
+<title>0.9.8: Angle and Trigonometry Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,278 +39,485 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Exponential functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Angle and Trigonometry Functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga25e54a7f44fc49ec6ac6ffc7675cf04a">exp</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga25e54a7f44fc49ec6ac6ffc7675cf04a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga42ca440d9062f1f456f5a9e896378f9c">exp2</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga42ca440d9062f1f456f5a9e896378f9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga599103d4fe4ef2234761ba8da7268627"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga599103d4fe4ef2234761ba8da7268627">inversesqrt</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga599103d4fe4ef2234761ba8da7268627"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga21efca311e62d233de0ae96bab126b83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga21efca311e62d233de0ae96bab126b83">log</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga21efca311e62d233de0ae96bab126b83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gabae30945338a555a03733f00dad95d0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabae30945338a555a03733f00dad95d0d">log2</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:gabae30945338a555a03733f00dad95d0d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga082b332a4b7c6ad1d43e09ff19e214dd">pow</a> (vecType< T, P > const &base, vecType< T, P > const &exponent)</td></tr>
-<tr class="separator:ga082b332a4b7c6ad1d43e09ff19e214dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae7ac2e44c14d4e8004098d0bfba6e2b8">sqrt</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:gae7ac2e44c14d4e8004098d0bfba6e2b8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType< T, P > const &y, vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType< T, P > const &y_over_x)</td></tr>
+<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gabccdcc282134fd62af0ff3d6e4bb21f1">degrees</a> (vecType< T, P > const &radians)</td></tr>
+<tr class="separator:gabccdcc282134fd62af0ff3d6e4bb21f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gafffb5e533f75318bdf4e0967d8a6c05c">radians</a> (vecType< T, P > const °rees)</td></tr>
+<tr class="separator:gafffb5e533f75318bdf4e0967d8a6c05c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00152.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType< T, P > const &angle)</td></tr>
+<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. </p>
+<p>Function parameters specified as angle are assumed to be in units of radians. </p>
+<p>In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.</p>
+<p>These all operate component-wise. The description is per component. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga25e54a7f44fc49ec6ac6ffc7675cf04a"></a>
+<a class="anchor" id="ga58ad259b788528fe0a4bd2eeb5e381cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::exp </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::acos </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the natural exponentiation of x, i.e., e^x. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>exp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
+<p>Arc cosine. </p>
+<p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3f368ad3e1883b60748ca2634d816104"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::acosh </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
+<p>Results are undefined if x < 1.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp.xml">GLSL exp man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga42ca440d9062f1f456f5a9e896378f9c"></a>
+<a class="anchor" id="ga88e29b8289e882859d76a25798dd9490"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::exp2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::asin </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 2 raised to the v power. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>exp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
+<p>Arc sine. </p>
+<p>Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga72bf44c1984e1afb63acf821ba33cac7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::asinh </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Arc hyperbolic sine; returns the inverse of sinh. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/exp2.xml">GLSL exp2 man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga599103d4fe4ef2234761ba8da7268627"></a>
+<a class="anchor" id="ga461e769acb8b8cb695a5a89334546611"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::inversesqrt </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atan </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the reciprocal of the positive square root of v. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>inversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
+<p>Arc tangent. </p>
+<p>Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+<p>Referenced by <a class="el" href="a00016_source.html#l00052">glm::atan2()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8f22458bba8f2321ceb1bfc4a543216"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atan </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y_over_x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Arc tangent. </p>
+<p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inversesqrt.xml">GLSL inversesqrt man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga21efca311e62d233de0ae96bab126b83"></a>
+<a class="anchor" id="gaffa8decdd8620759f4e6fe4834768b87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::log </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atanh </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. </p>
-<p>Results are undefined if v <= 0.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>log function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
+<p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
+<p>Results are undefined if abs(x) >= 1.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga728fd86f14609e37d83f82429995b7b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::cos </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The standard trigonometric cosine function. </p>
+<p>The values returned by this function will range from [-1, 1].</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log.xml">GLSL log man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabae30945338a555a03733f00dad95d0d"></a>
+<a class="anchor" id="ga660582a4e5e843b6c1cd535777e8c295"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::log2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::cosh </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>log2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type precision. </td></tr>
+<p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabccdcc282134fd62af0ff3d6e4bb21f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> glm::degrees </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>radians</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts radians to degrees and returns the result. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/log2.xml">GLSL log2 man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga082b332a4b7c6ad1d43e09ff19e214dd"></a>
+<a class="anchor" id="gafffb5e533f75318bdf4e0967d8a6c05c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::pow </td>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR vecType<T, P> glm::radians </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>base</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramname"><em>degrees</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>exponent</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts degrees to radians and returns the result. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4a0ddceb6b1e64ce0e4da209dcb021d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns 'base' raised to the power 'exponent'. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">base</td><td>Floating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type precision. </td></tr>
- <tr><td class="paramname">exponent</td><td>Floating point value representing the 'exponent'. </td></tr>
+<p>The standard trigonometric sine function. </p>
+<p>The values returned by this function will range from [-1, 1].</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad8f89c12efe6f8d3ae8046625b266254"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sinh </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/pow.xml">GLSL pow man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae7ac2e44c14d4e8004098d0bfba6e2b8"></a>
+<a class="anchor" id="gab3ae890c38b7d3aa4d5e00998fd296b2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::tan </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of v. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">v</td><td>sqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type precision. </td></tr>
+<p>The standard trigonometric tangent function. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga234e904a0075f88654a594b5f837711f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::tanh </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sqrt.xml">GLSL sqrt man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00153.html b/doc/api/a00153.html
index 40e4596..f915e30 100644
--- a/doc/api/a00153.html
+++ b/doc/api/a00153.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Geometric functions</title>
+<title>0.9.8: Vector Relational Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,92 +39,114 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Geometric functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Vector Relational Functions<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gafe2cae8cb26fd44be62aee97369d0af8">cross</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gafe2cae8cb26fd44be62aee97369d0af8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7ca317dde0d7e94d920153554d4a02a8">distance</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
-<tr class="separator:ga7ca317dde0d7e94d920153554d4a02a8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga7dada304da2ba7dd3376ab4f178c3f6b">dot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga7dada304da2ba7dd3376ab4f178c3f6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaea854e5aec1b5839832ac2dfc7cd3c0d">faceforward</a> (vecType< T, P > const &N, vecType< T, P > const &I, vecType< T, P > const &Nref)</td></tr>
-<tr class="separator:gaea854e5aec1b5839832ac2dfc7cd3c0d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga18d45e3d4c7705e67ccfabd99e521604">length</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga18d45e3d4c7705e67ccfabd99e521604"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gada9451ec170a36fe53552812b9c03a68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gada9451ec170a36fe53552812b9c03a68">normalize</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gada9451ec170a36fe53552812b9c03a68"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab63646fc36b81cf69d3ce123a72f76f2">reflect</a> (genType const &I, genType const &N)</td></tr>
-<tr class="separator:gab63646fc36b81cf69d3ce123a72f76f2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gab7e7cdf4403931a5f7b74560ad64159b">refract</a> (vecType< T, P > const &I, vecType< T, P > const &N, T eta)</td></tr>
-<tr class="separator:gab7e7cdf4403931a5f7b74560ad64159b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType< bool, P > const &v)</td></tr>
+<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00153.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These operate on vectors as vectors, not component-wise. </p>
+<p>Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. </p>
+<p>For vector results, use the following built-in functions.</p>
+<p>In all cases, the sizes of all the input and return vectors for any particular call must match. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gafe2cae8cb26fd44be62aee97369d0af8"></a>
+<a class="anchor" id="ga14bbc94f2ae2774a1d64d91f8767773e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::cross </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::all </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">vecType< bool, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns true if all components of x are true. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga632a2644532d9332011c8860400d30b2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::any </td>
+ <td>(</td>
+ <td class="paramtype">vecType< bool, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the cross product of x and y. </p>
+<p>Returns true if any component of x is true. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cross.xml">GLSL cross man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7ca317dde0d7e94d920153554d4a02a8"></a>
+<a class="anchor" id="ga39c80d8baf49b0ce69f2bb22d45b3801"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::distance </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::equal </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>p0</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>p1</em> </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -134,25 +156,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). </p>
+<p>Returns the component-wise comparison of result x == y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/distance.xml">GLSL distance man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7dada304da2ba7dd3376ab4f178c3f6b"></a>
+<a class="anchor" id="gadd80263161a308462d3e3e287e79cccd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::dot </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::greaterThan </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
<td class="paramname"><em>x</em>, </td>
@@ -171,40 +193,34 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the dot product of x and y, i.e., result = x * y. </p>
+<p>Returns the component-wise comparison of result x > y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/dot.xml">GLSL dot man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaea854e5aec1b5839832ac2dfc7cd3c0d"></a>
+<a class="anchor" id="gaee7e101f8cc4ea43924f14dcdeb2ef26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::faceforward </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::greaterThanEqual </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>N</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>I</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Nref</em> </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -214,126 +230,136 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>If dot(Nref, I) < 0.0, return N, otherwise, return -N. </p>
+<p>Returns the component-wise comparison of result x >= y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/faceforward.xml">GLSL faceforward man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga18d45e3d4c7705e67ccfabd99e521604"></a>
+<a class="anchor" id="ga6261970937a70b0b747ae0d3ade1c188"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::lessThan </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the length of x, i.e., sqrt(x * x). </p>
+<p>Returns the component-wise comparison result of x < y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/length.xml">GLSL length man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gada9451ec170a36fe53552812b9c03a68"></a>
+<a class="anchor" id="gaaf1d88119f11200c32011de7c5ec0102"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::normalize </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::lessThanEqual </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a vector in the same direction as x but with length of 1. </p>
-<p>According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/normalize.xml">GLSL normalize man page</a> </dd>
+<p>Returns the component-wise comparison of result x <= y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab63646fc36b81cf69d3ce123a72f76f2"></a>
+<a class="anchor" id="ga4329ecbc2ef012c9ec704bd09da1f177"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::reflect </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::not_ </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>I</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>N</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">vecType< bool, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. </p>
+<p>Returns the component-wise logical complement of x. </p>
+<p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/reflect.xml">GLSL reflect man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab7e7cdf4403931a5f7b74560ad64159b"></a>
+<a class="anchor" id="ga5aca2b745e5eb0096716bbc394846309"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::refract </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::notEqual </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>I</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>N</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>eta</em> </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -343,16 +369,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. </p>
+<p>Returns the component-wise comparison of result x != y. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point vector types.</td></tr>
+ <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/refract.xml">GLSL refract man page</a> </dd>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00154.html b/doc/api/a00154.html
index c95d3f1..b6254a9 100644
--- a/doc/api/a00154.html
+++ b/doc/api/a00154.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Integer functions</title>
+<title>0.9.8: GTC Extensions (Stable)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,535 +37,61 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Integer functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GTC Extensions (Stable)</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga44abfe3379e11cbd29425a843420d0d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga44abfe3379e11cbd29425a843420d0d6">bitCount</a> (genType v)</td></tr>
-<tr class="separator:ga44abfe3379e11cbd29425a843420d0d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1f29640969a3c54564da06ac67a5392e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga1f29640969a3c54564da06ac67a5392e">bitCount</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga1f29640969a3c54564da06ac67a5392e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gab84b88f3a8e367774e5dd1c618c353cf">bitfieldExtract</a> (vecType< T, P > const &Value, int Offset, int Bits)</td></tr>
-<tr class="separator:gab84b88f3a8e367774e5dd1c618c353cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga5681dfac9239beb1b8bd995e3c6496d7">bitfieldInsert</a> (vecType< T, P > const &Base, vecType< T, P > const &Insert, int Offset, int Bits)</td></tr>
-<tr class="separator:ga5681dfac9239beb1b8bd995e3c6496d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga153e7e8d0c035f83cce50fc3e580930f">bitfieldReverse</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga153e7e8d0c035f83cce50fc3e580930f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#gaf74c4d969fa34ab8acb9d390f5ca5274">findLSB</a> (genIUType x)</td></tr>
-<tr class="separator:gaf74c4d969fa34ab8acb9d390f5ca5274"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga014a72009e68233c34c06a6dc2251b8c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga014a72009e68233c34c06a6dc2251b8c">findLSB</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga014a72009e68233c34c06a6dc2251b8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga7e4a794d766861c70bc961630f8ef621"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga7e4a794d766861c70bc961630f8ef621">findMSB</a> (genIUType x)</td></tr>
-<tr class="separator:ga7e4a794d766861c70bc961630f8ef621"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga433104d77ec2ba58888aaefb77e9183f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga433104d77ec2ba58888aaefb77e9183f">findMSB</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga433104d77ec2ba58888aaefb77e9183f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga6e6e8b29ca40d8ca2df10b58ed17d426">imulExtended</a> (vecType< int, P > const &x, vecType< int, P > const &y, vecType< int, P > &msb, vecType< int, P > &lsb)</td></tr>
-<tr class="separator:ga6e6e8b29ca40d8ca2df10b58ed17d426"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa">uaddCarry</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &carry)</td></tr>
-<tr class="separator:ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga456ff9dcec42f6769a9ae2a2af7f1ce1">umulExtended</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &msb, vecType< uint, P > &lsb)</td></tr>
-<tr class="separator:ga456ff9dcec42f6769a9ae2a2af7f1ce1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00154.html#ga22a889bf08313b7e547e2cdb8bb15ee4">usubBorrow</a> (vecType< uint, P > const &x, vecType< uint, P > const &y, vecType< uint, P > &borrow)</td></tr>
-<tr class="separator:ga22a889bf08313b7e547e2cdb8bb15ee4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00160"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html">GLM_GTC_bitfield</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00161"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00161.html">GLM_GTC_color_space</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00162"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00162.html">GLM_GTC_constants</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00163"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html">GLM_GTC_epsilon</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">GLM_GTC_functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00165"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00165.html">GLM_GTC_integer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00166"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html">GLM_GTC_matrix_access</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00167"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00168"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00169"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00170"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00170.html">GLM_GTC_noise</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00171"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html">GLM_GTC_packing</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00172"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html">GLM_GTC_quaternion</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00173"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00173.html">GLM_GTC_random</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00174.html">GLM_GTC_reciprocal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00175"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html">GLM_GTC_round</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00176"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html">GLM_GTC_type_aligned</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00177"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">GLM_GTC_type_precision</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00178"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00178.html">GLM_GTC_type_ptr</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00179"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00179.html">GLM_GTC_ulp</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00180"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00180.html">GLM_GTC_vec1</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These all operate component-wise. </p>
-<p>The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga44abfe3379e11cbd29425a843420d0d6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::bitCount </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of bits set to 1 in the binary representation of value. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1f29640969a3c54564da06ac67a5392e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<int, P> glm::bitCount </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of bits set to 1 in the binary representation of value. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitCount.xml">GLSL bitCount man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab84b88f3a8e367774e5dd1c618c353cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldExtract </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Offset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Bits</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. </p>
-<p>For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.</p>
-<p>If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldExtract.xml">GLSL bitfieldExtract man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5681dfac9239beb1b8bd995e3c6496d7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldInsert </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Base</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Insert</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Offset</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Bits</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the insertion the bits least-significant bits of insert into base. </p>
-<p>The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldInsert.xml">GLSL bitfieldInsert man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga153e7e8d0c035f83cce50fc3e580930f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldReverse </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the reversal of the bits of value. </p>
-<p>The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/bitfieldReverse.xml">GLSL bitfieldReverse man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf74c4d969fa34ab8acb9d390f5ca5274"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::findLSB </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
-<p>If value is zero, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga014a72009e68233c34c06a6dc2251b8c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<int, P> glm::findLSB </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the least significant bit set to 1 in the binary representation of value. </p>
-<p>If value is zero, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findLSB.xml">GLSL findLSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7e4a794d766861c70bc961630f8ef621"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::findMSB </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
-<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga433104d77ec2ba58888aaefb77e9183f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<int, P> glm::findMSB </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the bit number of the most significant bit in the binary representation of value. </p>
-<p>For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Signed or unsigned integer scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/findMSB.xml">GLSL findMSB man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e6e8b29ca40d8ca2df10b58ed17d426"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL void glm::imulExtended </td>
- <td>(</td>
- <td class="paramtype">vecType< int, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< int, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< int, P > & </td>
- <td class="paramname"><em>msb</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< int, P > & </td>
- <td class="paramname"><em>lsb</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
-<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genIType</td><td>Signed integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/imulExtended.xml">GLSL imulExtended man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2fc1a46e7b7e9fbbd8fa444fbacaa2aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::uaddCarry </td>
- <td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
- <td class="paramname"><em>carry</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). </p>
-<p>The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/uaddCarry.xml">GLSL uaddCarry man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga456ff9dcec42f6769a9ae2a2af7f1ce1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL void glm::umulExtended </td>
- <td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
- <td class="paramname"><em>msb</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
- <td class="paramname"><em>lsb</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiplies 32-bit integers x and y, producing a 64-bit result. </p>
-<p>The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/umulExtended.xml">GLSL umulExtended man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22a889bf08313b7e547e2cdb8bb15ee4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::usubBorrow </td>
- <td>(</td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< <a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>, P > & </td>
- <td class="paramname"><em>borrow</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. </p>
-<p>The value borrow is set to 0 if x >= y, or to 1 otherwise.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genUType</td><td>Unsigned integer scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/usubBorrow.xml">GLSL usubBorrow man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
+<p>GTC extensions aim to be stable.</p>
+<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including <<a class="el" href="a00023.html" title="GLM Core (Dependence) ">glm/ext.hpp</a>>. Otherwise, each extension needs to be included a specific file. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00155.html b/doc/api/a00155.html
index dc7848c..f8d1cca 100644
--- a/doc/api/a00155.html
+++ b/doc/api/a00155.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Matrix functions</title>
+<title>0.9.8: GTX Extensions (Experimental)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,168 +37,135 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Matrix functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GTX Extensions (Experimental)</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga26ea77c574802bc6fc193c40478718d2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga26ea77c574802bc6fc193c40478718d2">determinant</a> (matType< T, P > const &m)</td></tr>
-<tr class="separator:ga26ea77c574802bc6fc193c40478718d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga7635d3dbe5aa10ff73a0e6903bf6bea5">inverse</a> (matType< T, P > const &m)</td></tr>
-<tr class="separator:ga7635d3dbe5aa10ff73a0e6903bf6bea5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:ga4a54992e4741188ee624b21e3ba91814"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL matType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#ga4a54992e4741188ee624b21e3ba91814">matrixCompMult</a> (matType< T, P > const &x, matType< T, P > const &y)</td></tr>
-<tr class="separator:ga4a54992e4741188ee624b21e3ba91814"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecTypeA, template< typename, precision > class vecTypeB> </td></tr>
-<tr class="memitem:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL detail::outerProduct_trait< T, P, vecTypeA, vecTypeB >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00155.html#gae9f513dc8e4f3ceb993669321b6d0f09">outerProduct</a> (vecTypeA< T, P > const &c, vecTypeB< T, P > const &r)</td></tr>
-<tr class="separator:gae9f513dc8e4f3ceb993669321b6d0f09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00181"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00182"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">GLM_GTX_bit</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00183"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00183.html">GLM_GTX_closest_point</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00184"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00184.html">GLM_GTX_color_space</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00185"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00186"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00186.html">GLM_GTX_common</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html">GLM_GTX_compatibility</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00188"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00188.html">GLM_GTX_component_wise</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00189"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00190"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00190.html">GLM_GTX_euler_angles</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00191"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html">GLM_GTX_extend</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00192"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00192.html">GLM_GTX_extented_min_max</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00193"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00194"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00195"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00196"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00197"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html">GLM_GTX_hash</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00199"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html">GLM_GTX_integer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00200"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00200.html">GLM_GTX_intersect</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00201"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00201.html">GLM_GTX_io</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00202"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00202.html">GLM_GTX_log_base</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00203"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00204"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00205"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00206"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00207"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00208"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html">GLM_GTX_matrix_query</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00209"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00210"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00211"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html">GLM_GTX_norm</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00212"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00212.html">GLM_GTX_normal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00213"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00214"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html">GLM_GTX_number_precision</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00215"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00216"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00217"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00217.html">GLM_GTX_perpendicular</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00218"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00219"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00219.html">GLM_GTX_projection</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00220"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">GLM_GTX_quaternion</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00221"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00221.html">GLM_GTX_range</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">GLM_GTX_raw_data</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00223"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00224"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00225"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00226"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html">GLM_GTX_simd_mat4</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00227"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html">GLM_GTX_simd_quat</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00228"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00228.html">GLM_GTX_simd_vec4</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00229"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00229.html">GLM_GTX_spline</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00230"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">GLM_GTX_std_based_type</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00231"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html">GLM_GTX_string_cast</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00232"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00232.html">GLM_GTX_transform</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00233"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00233.html">GLM_GTX_transform2</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00234"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html">GLM_GTX_type_aligned</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00235"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">GLM_GTX_type_trait</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00236"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">GLM_GTX_vector_angle</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00237"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html">GLM_GTX_vector_query</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00238"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html">GLM_GTX_wrap</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision. </p>
-<p>Only the single-precision floating point version is shown. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga26ea77c574802bc6fc193c40478718d2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::determinant </td>
- <td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the transposed matrix of x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> Return the determinant of a squared matrix.</dd></dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7635d3dbe5aa10ff73a0e6903bf6bea5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL matType<T, P> glm::inverse </td>
- <td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the inverse of a squared matrix. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4a54992e4741188ee624b21e3ba91814"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL matType<T, P> glm::matrixCompMult </td>
- <td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae9f513dc8e4f3ceb993669321b6d0f09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type glm::outerProduct </td>
- <td>(</td>
- <td class="paramtype">vecTypeA< T, P > const & </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecTypeB< T, P > const & </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
+<p>Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.</p>
+<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including <<a class="el" href="a00023.html" title="GLM Core (Dependence) ">glm/ext.hpp</a>>. Otherwise, each extension needs to be included a specific file. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00156.html b/doc/api/a00156.html
index 638a04b..dfbc638 100644
--- a/doc/api/a00156.html
+++ b/doc/api/a00156.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Noise functions</title>
+<title>0.9.8: GLM Core</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,139 +37,42 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> </div>
<div class="headertitle">
-<div class="title">Noise functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM Core</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gadcbf14e3390990f33fda02bb20836960"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gadcbf14e3390990f33fda02bb20836960">noise1</a> (genType const &x)</td></tr>
-<tr class="separator:gadcbf14e3390990f33fda02bb20836960"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad88de7f308dc57edb80690373a1380a9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gad88de7f308dc57edb80690373a1380a9">noise2</a> (genType const &x)</td></tr>
-<tr class="separator:gad88de7f308dc57edb80690373a1380a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#ga3359a5e2b61cee8cf4498470a63f7283">noise3</a> (genType const &x)</td></tr>
-<tr class="separator:ga3359a5e2b61cee8cf4498470a63f7283"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaed96a491dd0c552040d59f9178bc626d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< typename genType::value_type, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00156.html#gaed96a491dd0c552040d59f9178bc626d">noise4</a> (genType const &x)</td></tr>
-<tr class="separator:gaed96a491dd0c552040d59f9178bc626d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00146"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00146.html">Common functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00147"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html">Exponential functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00148"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html">Geometric functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00149"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html">Integer functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00150"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00150.html">Matrix functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00151"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html">Floating-Point Pack and Unpack Functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00152"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">Angle and Trigonometry Functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00153"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html">Vector Relational Functions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00157"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">Types</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00158"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">Precision types</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00159"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html">Template types</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Noise functions are stochastic functions that can be used to increase visual complexity. </p>
-<p>Values returned by the following noise functions give the appearance of randomness, but are not truly random. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gadcbf14e3390990f33fda02bb20836960"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::noise1 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a 1D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise1.xml">GLSL noise1 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad88de7f308dc57edb80690373a1380a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2<typename genType::value_type, defaultp> glm::noise2 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a 2D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise2.xml">GLSL noise2 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3359a5e2b61cee8cf4498470a63f7283"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<typename genType::value_type, defaultp> glm::noise3 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a 3D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise3.xml">GLSL noise3 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaed96a491dd0c552040d59f9178bc626d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4<typename genType::value_type, defaultp> glm::noise4 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a 4D noise value based on the input value x. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/noise4.xml">GLSL noise4 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.13 Noise Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
+<p>The GLM core consists of <a class="el" href="a00157.html">C++ types that mirror GLSL types</a> and C++ functions that mirror the GLSL functions. It also includes <a class="el" href="a00158.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00159.html">template types</a>.</p>
+<p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2 (pdf file)</a>.</p>
+<p>GLM core functionnalities require <<a class="el" href="a00040.html" title="GLM Core ">glm/glm.hpp</a>> to be included to be used. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00157.html b/doc/api/a00157.html
index f433da4..8696d9e 100644
--- a/doc/api/a00157.html
+++ b/doc/api/a00157.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Floating-Point Pack and Unpack Functions</title>
+<title>0.9.8: Types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,319 +37,763 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#groups">Modules</a> |
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">Floating-Point Pack and Unpack Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Types<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa916ca426b2bb0343ba17e3753e245c2">packDouble2x32</a> (uvec2 const &v)</td></tr>
-<tr class="separator:gaa916ca426b2bb0343ba17e3753e245c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20f134b07db3a3d3a38efb2617388c92"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga20f134b07db3a3d3a38efb2617388c92">packHalf2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga20f134b07db3a3d3a38efb2617388c92"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga977ab172da5494e5ac63e952afacfbe2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga977ab172da5494e5ac63e952afacfbe2">packSnorm2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga977ab172da5494e5ac63e952afacfbe2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85e8f17627516445026ab7a9c2e3531a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga85e8f17627516445026ab7a9c2e3531a">packSnorm4x8</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga85e8f17627516445026ab7a9c2e3531a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0e2d107039fe608a209497af867b85fb"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e2d107039fe608a209497af867b85fb">packUnorm2x16</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga0e2d107039fe608a209497af867b85fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2">packUnorm4x8</a> (vec4 const &v)</td></tr>
-<tr class="separator:gaf7d2f7341a9eeb4a436929d6f9ad08f2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga5f4296dc5f12f0aa67ac05b8bb322483">unpackDouble2x32</a> (double v)</td></tr>
-<tr class="separator:ga5f4296dc5f12f0aa67ac05b8bb322483"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaf59b52e6b28da9335322c4ae19b5d745">unpackHalf2x16</a> (uint v)</td></tr>
-<tr class="separator:gaf59b52e6b28da9335322c4ae19b5d745"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd8f8971a3fe28418be0d0fa1f786b38">unpackSnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:gacd8f8971a3fe28418be0d0fa1f786b38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2db488646d48b7c43d3218954523fe82"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2db488646d48b7c43d3218954523fe82">unpackSnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga2db488646d48b7c43d3218954523fe82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1f66188e5d65afeb9ffba1ad971e4007">unpackUnorm2x16</a> (uint p)</td></tr>
-<tr class="separator:ga1f66188e5d65afeb9ffba1ad971e4007"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f903259150b67e9466f5f8edffcd197"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7f903259150b67e9466f5f8edffcd197">unpackUnorm4x8</a> (uint p)</td></tr>
-<tr class="separator:ga7f903259150b67e9466f5f8edffcd197"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Modules</h2></td></tr>
+<tr class="memitem:a00158"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">Precision types</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
+<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
+<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
+<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
+<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
+<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
+<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
+<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
+<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
+<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
+<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
+<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
+<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
+<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
+<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
+<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
+<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
+<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
+<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
+<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
+<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
+<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
+<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
+<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
+<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
+<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
+<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
+<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
+<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
+<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
+<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
+<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
+<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
+<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
+<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
+<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
+<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
+<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
+<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
+<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>These functions do not operate component-wise, rather as described in each case. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaa916ca426b2bb0343ba17e3753e245c2"></a>
+<p>The standard types defined by the specification. </p>
+<p>These types are all typedefs of more generalized, template types. To see the definition of these template types, go to <a class="el" href="a00159.html">Template types</a>. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga0e46aaaccc5e713eac5bfbc8d6885a60"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL double glm::packDouble2x32 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_bvec2 bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a double-precision value obtained by packing the components of v into a 64-bit value. </p>
-<p>If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packDouble2x32.xml">GLSL packDouble2x32 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00564">564</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga150731e2a148eff8752114a0e450505e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_bvec3 bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00569">569</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga444e8f61bfb3a6f037d019ac6933f8c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_bvec4 bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of boolean. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00574">574</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac7f51e23c8802d867f564dfd146bdb44"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x2 dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00707">707</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacc27b39853a2ecb538c8b3afc20c359e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x2 dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00722">722</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1cb3c561a32f0864733dfaf97c71f0c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x3 dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00727">727</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaddd230c88fbd6ec33242329be3a1b738"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat2x4 dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00732">732</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae174ff65e148bb7dec4bf10a63cb46ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat3x3 dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00712">712</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaec22f44dddbdadfe5dfca68eb3457ea8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat3x2 dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00737">737</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac44263f56ff3cbf0a9cc4e2405d5ecb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat3x3 dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00742">742</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga38d9bfca882ec542b1928cf77b5c2091"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat3x4 dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00747">747</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga97b38ea24e9ebf58eac04a8d99dc3e27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x4 dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00717">717</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6ddab280c735a2139133b4164b99a68a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x2 dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 2 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00752">752</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab6c8974496fc7c72dad09219118ba89e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x3 dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 3 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00757">757</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga41c2da87ca627c1b2da5e895435a508e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dmat4x4 dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 * 4 matrix of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00762">762</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga15ade901680b29b78c1f9d1796db6e0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec2 dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00483">483</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabebd0c7e3c5cd337d95c313c5e8b8db4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec3 dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00488">488</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9503f809789bda7e8852a6abde3ae5c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_dvec4 dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00493">493</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2ab812bd103527e2d6c62c2e2f5ee78f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec2 ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00510">510</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga34aee73784bcc247d426250540c1911c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec3 ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00515">515</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaa26c41d168dc00be0fe55f4d0a34224"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ivec4 ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00520">520</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mat2x2 mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00406">406</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c84b211a5730357b63c6d2e4fb696d5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x2 mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00359">359</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb063d734266e92915d87f8943560471"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x3 mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00364">364</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4d2ac1a80c36fb5a1d15914035f792ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat2x4 mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00369">369</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mat3x3 mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00411">411</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3839ca29d011a80ff3ede7f22ba602a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat3x2 mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00374">374</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga378921b6a07bcdad946858b340f69ab1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_mat3x3 mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00379">379</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga20f134b07db3a3d3a38efb2617388c92"></a>
+<a class="anchor" id="ga7876e0c3e3fcc3e2f4c0462c152e87cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packHalf2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_mat3x4 mat3x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00384">384</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga977ab172da5494e5ac63e952afacfbe2"></a>
+<a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packSnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef mat4x4 mat4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm2x16.xml">GLSL packSnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00416">416</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga85e8f17627516445026ab7a9c2e3531a"></a>
+<a class="anchor" id="ga1b3f6a5cbc17362141f9781262ed838f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packSnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_mat4x2 mat4x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 columns of 2 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00389">389</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0e2d107039fe608a209497af867b85fb"></a>
+<a class="anchor" id="gacd9ff3b943b3d8bda4f4b388320420fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packUnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_mat4x3 mat4x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm2x16.xml">GLSL packUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 columns of 3 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00394">394</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaf7d2f7341a9eeb4a436929d6f9ad08f2"></a>
+<a class="anchor" id="ga089315d5a0c20ac6eaa17a854bbd2e81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::packUnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_mat4x4 mat4x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 columns of 4 components matrix of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00399">399</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5f4296dc5f12f0aa67ac05b8bb322483"></a>
+<a class="anchor" id="ga9bcffa2d49f28d16f680757b5c0e7c84"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 </td>
- <td>(</td>
- <td class="paramtype">double </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_uvec2 uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a two-component unsigned integer vector representation of v. </p>
-<p>The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackDouble2x32.xml">GLSL unpackDouble2x32 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00537">537</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaf59b52e6b28da9335322c4ae19b5d745"></a>
+<a class="anchor" id="gae85537b672ffe0b3218cbdf1823e1c72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackHalf2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_uvec3 uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
-<p>The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00542">542</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gacd8f8971a3fe28418be0d0fa1f786b38"></a>
+<a class="anchor" id="gaa7c3a0e7ae50c34c3290415c115f251e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_uvec4 uvec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 components vector of unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00547">547</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2db488646d48b7c43d3218954523fe82"></a>
+<a class="anchor" id="ga09d0200e8ff86391d8804b4fefd5f1da"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_vec2 vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00456">456</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1f66188e5d65afeb9ffba1ad971e4007"></a>
+<a class="anchor" id="gaa8ea2429bb3cb41a715258a447f39897"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_vec3 vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00461">461</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7f903259150b67e9466f5f8edffcd197"></a>
+<a class="anchor" id="gafbab23070ca47932487d25332adc7d7c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef highp_vec4 vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>4 components vector of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00466">466</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
diff --git a/doc/api/a00158.html b/doc/api/a00158.html
index 7869615..9e10add 100644
--- a/doc/api/a00158.html
+++ b/doc/api/a00158.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Angle and Trigonometry Functions</title>
+<title>0.9.8: Precision types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,487 +37,2782 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">Angle and Trigonometry Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Precision types<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a><a class="el" href="a00156.html">GLM Core</a> » | <a class="el" href="a00157.html">Types</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga58ad259b788528fe0a4bd2eeb5e381cc">acos</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga58ad259b788528fe0a4bd2eeb5e381cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga3f368ad3e1883b60748ca2634d816104"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f368ad3e1883b60748ca2634d816104">acosh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga3f368ad3e1883b60748ca2634d816104"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga88e29b8289e882859d76a25798dd9490"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga88e29b8289e882859d76a25798dd9490">asin</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga88e29b8289e882859d76a25798dd9490"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga72bf44c1984e1afb63acf821ba33cac7">asinh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga72bf44c1984e1afb63acf821ba33cac7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga461e769acb8b8cb695a5a89334546611"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga461e769acb8b8cb695a5a89334546611">atan</a> (vecType< T, P > const &y, vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga461e769acb8b8cb695a5a89334546611"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gae8f22458bba8f2321ceb1bfc4a543216">atan</a> (vecType< T, P > const &y_over_x)</td></tr>
-<tr class="separator:gae8f22458bba8f2321ceb1bfc4a543216"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaffa8decdd8620759f4e6fe4834768b87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gaffa8decdd8620759f4e6fe4834768b87">atanh</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gaffa8decdd8620759f4e6fe4834768b87"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga728fd86f14609e37d83f82429995b7b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga728fd86f14609e37d83f82429995b7b3">cos</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga728fd86f14609e37d83f82429995b7b3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga660582a4e5e843b6c1cd535777e8c295"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga660582a4e5e843b6c1cd535777e8c295">cosh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga660582a4e5e843b6c1cd535777e8c295"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga402144a18234e642b702bf585599b46d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga402144a18234e642b702bf585599b46d">degrees</a> (vecType< T, P > const &radians)</td></tr>
-<tr class="separator:ga402144a18234e642b702bf585599b46d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga0fd3ad793538521f76fa30db7f6edfed">radians</a> (vecType< T, P > const °rees)</td></tr>
-<tr class="separator:ga0fd3ad793538521f76fa30db7f6edfed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga4a0ddceb6b1e64ce0e4da209dcb021d5">sin</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga4a0ddceb6b1e64ce0e4da209dcb021d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad8f89c12efe6f8d3ae8046625b266254"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gad8f89c12efe6f8d3ae8046625b266254">sinh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:gad8f89c12efe6f8d3ae8046625b266254"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#gab3ae890c38b7d3aa4d5e00998fd296b2">tan</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:gab3ae890c38b7d3aa4d5e00998fd296b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga234e904a0075f88654a594b5f837711f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00158.html#ga234e904a0075f88654a594b5f837711f">tanh</a> (vecType< T, P > const &angle)</td></tr>
-<tr class="separator:ga234e904a0075f88654a594b5f837711f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
+<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
+<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
+<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
+<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
+<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
+<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
+<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
+<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
+<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
+<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
+<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
+<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
+<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
+<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
+<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
+<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
+<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
+<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
+<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
+<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
+<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
+<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
+<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
+<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
+<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
+<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
+<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
+<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
+<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
+<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
+<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
+<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
+<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
+<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
+<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
+<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
+<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
+<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
+<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
+<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
+<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
+<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
+<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
+<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
+<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
+<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
+<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
+<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
+<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
+<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
+<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
+<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
+<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
+<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
+<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
+<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
+<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
+<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
+<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
+<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
+<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
+<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
+<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
+<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
+<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
+<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
+<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
+<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
+<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
+<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
+<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
+<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
+<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
+<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
+<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
+<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
+<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
+<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
+<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
+<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
+<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
+<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
+<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
+<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
+<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
+<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
+<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
+<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
+<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
+<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
+<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
+<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
+<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
+<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
+<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
+<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
+<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
+<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
+<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
+<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
+<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
+<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
+<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
+<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
+<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
+<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
+<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
+<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
+<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
+<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
+<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
+<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
+<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
+<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
+<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
+<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
+<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
+<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
+<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
+<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
+<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
+<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
+<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
+<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
+<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
+<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
+<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Function parameters specified as angle are assumed to be in units of radians. </p>
-<p>In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.</p>
-<p>These all operate component-wise. The description is per component. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga58ad259b788528fe0a4bd2eeb5e381cc"></a>
+<p>Non-GLSL types that are used to define precision-based types. </p>
+<p>The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they <em>do</em> have an effect.</p>
+<p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00159.html">Template types</a> that use a particular precision.</p>
+<p>None of these types make any guarantees about the actual precision used. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga829f39950549881a08c534946c0487e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::acos </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<bool, highp> highp_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc cosine. </p>
-<p>Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acos.xml">GLSL acos man page</a> </dd>
+<p>2 components vector of high precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00219">219</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaca7c2a58eb926799c30ad547a290fccf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<bool, highp> highp_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00328">328</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae5f9c57d04b338c9a51a9af39e50795b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<bool, highp> highp_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00423">423</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga65ae7d3b23155712ed8cbd3300be4ec8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, highp> highp_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00440">440</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga518f28c64881fafaaf14ec0d867a9bba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, highp> highp_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00458">458</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf98afd25f7e3e8f1d73bca020d0d8ea6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<double, highp> highp_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00481">481</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac1c87c16d6dcb7449bc3c779ccdc5c30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<double, highp> highp_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00504">504</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga605c7863807ac2e9c2db4cf13405f34d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<double, highp> highp_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00550">550</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab2d4fd5cd286baff8364a7a3f60c8a21"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<double, highp> highp_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00527">527</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2d7911a43241a5ce2472421255e5930f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<double, highp> highp_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00568">568</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51bfd2f3f5a12464d5934323db9116e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<double, highp> highp_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00591">591</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4607e33c40a3c03256e0bf9c586b456a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, highp> highp_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00660">660</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5ee028f50629bf451973b3a910973357"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<double, highp> highp_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00614">614</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafe7eea5b2a20477b5634e340ea5ec28a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<double, highp> highp_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00637">637</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga83ab0b8b8b50cbf945237dc8f5322432"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, highp> highp_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00678">678</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga435eb408e8dfa4f7185368109d432c14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<double, highp> highp_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00156">156</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga01d2c9b292e27518e4d6f8442607e8aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<double, highp> highp_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00266">266</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5d454f34d819d90b9bbb30dcb9ed7b39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<double, highp> highp_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00369">369</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_float_t highp_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00110_source.html#l00041">41</a> of file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::highp_int_t highp_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00238">238</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa015a3707413de20c03948308dba2f2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<int, highp> highp_ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00177">177</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8330bf0d7e6d03ca12ee2b1334c2c30f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<int, highp> highp_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00287">287</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0424a75bb400571489b8528897f35258"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<int, highp> highp_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00387">387</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga11c1eb1d307846d5bee7d7c0d8c386f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, highp > highp_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00053">53</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae6a747cfc33928652abcb1347712b231"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, highp > highp_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00074">74</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9dfd75b5b17b89ccbecbdd6201efc74b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< float, highp > highp_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00100">100</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga03fe2f9a84c61cc0f08b324a27d9b493"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< float, highp > highp_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00126">126</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaac1bde847d053902c27bad811b76e9fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< float, highp > highp_mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00178">178</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b00cd7956ac2ee3d4f3ab3b549b564a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2< float, highp > highp_mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00152">152</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga223de5d0549b215566dfb977d4bb45bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< float, highp > highp_mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00199">199</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga117d8a040e738396a3d60368605623d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4< float, highp > highp_mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00225">225</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabace1eeb2fac7d73a7faaecf33f352d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< float, highp > highp_mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00304">304</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaeea75c96b308be4114e0badf49f58075"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2< float, highp > highp_mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00251">251</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga046e59c57aaa185a8b0b012164ce707f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3< float, highp > highp_mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00277">277</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa72822d91f0dceb4dcaaec550cbfeead"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< float, highp > highp_mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00325">325</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::highp_uint_t highp_uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00259">259</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa0eed70387a998c3eca2f4e45f3efaad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<uint, highp> highp_uvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00198">198</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf564d5be1e65bd2204754043b218c9a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<uint, highp> highp_uvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00308">308</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga61359f5531550e45871a97589d8dcce1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<uint, highp> highp_uvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00405">405</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabfc3e9f63cc3e2ee0521405277ef3997"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< float, highp > highp_vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00135">135</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b31b02c5558e2f8e5d8439ae3803d3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< float, highp > highp_vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00245">245</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade7cb496ed3d78b2a11f1651cce77239"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< float, highp > highp_vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of high single-precision floating-point numbers. </p>
+<p>High Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00351">351</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga28dcda102dd8c94ec500ee786af7a30a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<bool, lowp> lowp_bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00233">233</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga76c0948546deeeb18bfda36f18b3e673"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<bool, lowp> lowp_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00340">340</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafa2087ead0d0e2a3c907e3fbd99f4d85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<bool, lowp> lowp_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00435">435</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae0a526a0143fc69d7b317c078d591654"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, lowp> lowp_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00428">428</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga000c064e4eba15bf83f8e1e393a8e7fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, lowp> lowp_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00446">446</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaf2d7cf98b74a43fc432725887685dc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<double, lowp> lowp_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00469">469</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ac69e9ed1addf122f51396f73cdbbf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<double, lowp> lowp_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00492">492</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga19b0c9580b447443cf3fe589bd661e03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<float, lowp> lowp_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00538">538</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27ccd1bcb24920508a7b6a24bd9265ab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<double, lowp> lowp_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00515">515</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae37a4275ffa68d0c3527a345e76598c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<double, lowp> lowp_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00556">556</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga813bff547772bcefebc026e5deba0fe3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<double, lowp> lowp_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00579">579</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaac3aee10bee5fa5206de8bf024a8b301"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, lowp> lowp_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00648">648</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga05c2d27aeca091e369fca027e72177e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<double, lowp> lowp_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00602">602</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2b5b1b810f3b9988f49f985387e35e03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<double, lowp> lowp_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00625">625</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaea9e20c3668305cf0de5334d217408d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, lowp> lowp_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00666">666</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga96eb13864627c7c832b5af36aa73bda6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<double, lowp> lowp_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00170">170</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf7ec7b1cefeeaf63659460ef52fd06a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<double, lowp> lowp_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00280">280</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab5d6a45e1bbb13314b47793865a4c072"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<double, lowp> lowp_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00381">381</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef lowp_float_t lowp_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00110_source.html#l00027">27</a> of file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::lowp_int_t lowp_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00224">224</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<int, lowp> lowp_ivec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00191">191</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa040f25233c314adc9560dcdb9dadac2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<int, lowp> lowp_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00301">301</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8b7483dc67dc332f9d874c6cf7172203"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<int, lowp> lowp_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00399">399</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ed94bfb5f4e0b2c3b0d49c5be478c85"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, lowp > lowp_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00039">39</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab1a0d4d8fd3bb85f6616dac9dbef2981"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, lowp > lowp_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00060">60</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8fe30d421bc141fa84ad414b803947d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< float, lowp > lowp_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00086">86</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad64a0179b75508142a72917854034b9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< float, lowp > lowp_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00112">112</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6a66118df7e2398a36ca4a8e98ce6783"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< float, lowp > lowp_mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00164">164</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2542e884ac7d05ada8ebb078b721924"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2< float, lowp > lowp_mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00138">138</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab7ca36023fa56d8006341a192ee09260"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< float, lowp > lowp_mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00185">185</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2938621d14e70bc3dc576b4fc1547a7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4< float, lowp > lowp_mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00211">211</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabb754302a1ff8736ec7814d860c9a3c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< float, lowp > lowp_mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00290">290</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac6d04a9590cb7ab62cbe29203dbb9b93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2< float, lowp > lowp_mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00237">237</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb3dbbc82f8b166867fd21c76eb8db4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3< float, lowp > lowp_mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00263">263</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafff11cbd0abc762e8a340870a31d5bfa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< float, lowp > lowp_mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00311">311</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00245">245</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6bfb90b936bbbc67e438bb9ac6910309"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<uint, lowp> lowp_uvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00212">212</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf0049c860a612da9bd3ba9ac9e49e820"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<uint, lowp> lowp_uvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00322">322</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6efcd4574e112cfcda320db58e649ee3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<uint, lowp> lowp_uvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00417">417</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51e835b2aa735782f0174328acffa521"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< float, lowp > lowp_vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00149">149</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf89f8fb5a06848ea4ec1c3a02813454e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< float, lowp > lowp_vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00259">259</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8f9002d3ab660e3171f5cdea1aab8395"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< float, lowp > lowp_vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of low single-precision floating-point numbers. </p>
+<p>Low single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00363">363</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae1f4f68346474246eb4a9952af49e72b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<bool, mediump> mediump_bvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium precision bool numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00226">226</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0d1778766f17c4329a8c3f2b37f5fab0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<bool, mediump> mediump_bvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00334">334</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f0c27f7ab42f004054a247c93a7bf57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<bool, mediump> mediump_bvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium precision bool numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00429">429</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga330077a4cb3707329120b5bddcd7db2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, mediump> mediump_dmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00434">434</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga78987759d40d7cb03ebe948fb1dcd879"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<double, mediump> mediump_dmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00452">452</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2569a68be3f1cf56e7e5e0920fe5a246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<double, mediump> mediump_dmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00475">475</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaccf963b117beeadf8c5c057000762dd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<double, mediump> mediump_dmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00498">498</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8091edef9fdf54b1996ae5bd00f847e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<double, mediump> mediump_dmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00544">544</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b81830ed1ce3862bcbbf41eccc3890b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<double, mediump> mediump_dmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00521">521</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5e5de055b7af150796e1c017de84cdb1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<double, mediump> mediump_dmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00562">562</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga187d10ddab0492545b78ea1dd108f28d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<double, mediump> mediump_dmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00585">585</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27be34d618d20fbd70d4c62c21256b0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, mediump> mediump_dmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00654">654</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4a5b294c54702b7c8e9ee32a451dea9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<double, mediump> mediump_dmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00608">608</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27b55deeb16fda7262d64dc1fd1a56bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<double, mediump> mediump_dmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00631">631</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga857947b2eef2c9144c34b8e3031f2f12"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<double, mediump> mediump_dmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00672">672</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga388fd99d9ffc7190a4732c35b0c7bfc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<double, mediump> mediump_dvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00163">163</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0b4741d444b131ef1fc54b19c37f72be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<double, mediump> mediump_dvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00273">273</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3e804226444dfe246133fc6ec4a3912f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<double, mediump> mediump_dvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00375">375</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_float_t mediump_float</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00110_source.html#l00034">34</a> of file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::mediump_int_t mediump_int</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision signed integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00231">231</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga3f368ad3e1883b60748ca2634d816104"></a>
+<a class="anchor" id="ga199cc7c4cfa7c7cadad0c74d2f059aef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::acosh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<int, mediump> mediump_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc hyperbolic cosine; returns the non-negative inverse of cosh. </p>
-<p>Results are undefined if x < 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/acosh.xml">GLSL acosh man page</a> </dd>
+<p>2 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00184">184</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b7843453f7ad6ebfa26e50408b8dcf0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<int, mediump> mediump_ivec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00294">294</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga14614613c8e79772c8a6d25dd1c45995"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<int, mediump> mediump_ivec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>4 components vector of medium precision signed integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00393">393</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga57b1e6c49a1432cefa518f13a56c5d47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, mediump > mediump_mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00046">46</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b77963ca2812ac2653624fa0f81ba74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< float, mediump > mediump_mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00067">67</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8c17198123baf6bfb59582ec42a3ca09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< float, mediump > mediump_mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00093">93</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7e95e348c99ef3d56b87ede14bc90bfe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< float, mediump > mediump_mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00119">119</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga88e29b8289e882859d76a25798dd9490"></a>
+<a class="anchor" id="ga29d313adfc82fd4179d29a9fd98b1b5b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::asin </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x3< float, mediump > mediump_mat3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc sine. </p>
-<p>Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asin.xml">GLSL asin man page</a> </dd>
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00171">171</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga72bf44c1984e1afb63acf821ba33cac7"></a>
+<a class="anchor" id="ga9fa569295a9bd6ce0825ccb832c8aac9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::asinh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat3x2< float, mediump > mediump_mat3x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc hyperbolic sine; returns the inverse of sinh. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/asinh.xml">GLSL asinh man page</a> </dd>
+<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00145">145</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga461e769acb8b8cb695a5a89334546611"></a>
+<a class="anchor" id="ga2f02cb49e386f65817c10ead9bbe7dec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef tmat3x3< float, mediump > mediump_mat3x3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00192">192</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac7afc5b81d320dbd7bd6a6f07d587e24"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em> </td>
+ <td class="memname">typedef tmat3x4< float, mediump > mediump_mat3x4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00218">218</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6259813853e4253f80c2a08672e9fb6a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tmat4x4< float, mediump > mediump_mat4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc tangent. </p>
-<p>Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00016_source.html#l00081">glm::atan2()</a>.</p>
+<p>Definition at line <a class="el" href="a00114_source.html#l00297">297</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gae8f22458bba8f2321ceb1bfc4a543216"></a>
+<a class="anchor" id="ga22194c68bc3d798bb68a22f635558c8d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y_over_x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x2< float, mediump > mediump_mat4x2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc tangent. </p>
-<p>Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atan.xml">GLSL atan man page</a> </dd>
+<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00244">244</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaffa8decdd8620759f4e6fe4834768b87"></a>
+<a class="anchor" id="ga38a01cba69e3db9b1a1056b362519acb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::atanh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x3< float, mediump > mediump_mat4x3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Arc hyperbolic tangent; returns the inverse of tanh. </p>
-<p>Results are undefined if abs(x) >= 1.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/atanh.xml">GLSL atanh man page</a> </dd>
+<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00270">270</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga728fd86f14609e37d83f82429995b7b3"></a>
+<a class="anchor" id="ga535614d97234065ab44b2513667c8563"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::cos </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tmat4x4< float, mediump > mediump_mat4x4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>The standard trigonometric cosine function. </p>
-<p>The values returned by this function will range from [-1, 1].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cos.xml">GLSL cos man page</a> </dd>
+<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00114_source.html#l00318">318</a> of file <a class="el" href="a00114_source.html">type_mat.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga660582a4e5e843b6c1cd535777e8c295"></a>
+<a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::cosh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/cosh.xml">GLSL cosh man page</a> </dd>
+<p>Medium precision unsigned integer. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00252">252</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga402144a18234e642b702bf585599b46d"></a>
+<a class="anchor" id="ga392c0761c8bef616801e0d81a6867ed7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::degrees </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>radians</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<uint, mediump> mediump_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts radians to degrees and returns the result. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/degrees.xml">GLSL degrees man page</a> </dd>
+<p>2 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00205">205</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0fd3ad793538521f76fa30db7f6edfed"></a>
+<a class="anchor" id="ga54ae0b7b207b8e7e88841d146d2de12e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::radians </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>degrees</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<uint, mediump> mediump_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts degrees to radians and returns the result. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/radians.xml">GLSL radians man page</a> </dd>
+<p>3 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00315">315</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4a0ddceb6b1e64ce0e4da209dcb021d5"></a>
+<a class="anchor" id="ga631f5767b9d45c5cd3d0bcd67565b3f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sin </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec4<uint, mediump> mediump_uvec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>The standard trigonometric sine function. </p>
-<p>The values returned by this function will range from [-1, 1].</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sin.xml">GLSL sin man page</a> </dd>
+<p>4 components vector of medium precision unsigned integer numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00411">411</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gad8f89c12efe6f8d3ae8046625b266254"></a>
+<a class="anchor" id="gac37a3fd0ecdcab044853c039409c9af7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sinh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2< float, mediump > mediump_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/sinh.xml">GLSL sinh man page</a> </dd>
+<p>2 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 2 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00142">142</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab3ae890c38b7d3aa4d5e00998fd296b2"></a>
+<a class="anchor" id="ga591478a77e4324e0836abc17cbb13e83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::tan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3< float, mediump > mediump_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>The standard trigonometric tangent function. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tan.xml">GLSL tan man page</a> </dd>
+<p>3 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 3 components.</p>
+<p>There is no guarantee on the actual precision.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00252">252</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga234e904a0075f88654a594b5f837711f"></a>
+<a class="anchor" id="gaae72e97529b8fa4e0341b425d4fe03ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::tanh </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec4< float, mediump > mediump_vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/tanh.xml">GLSL tanh man page</a> </dd>
+<p>4 components vector of medium single-precision floating-point numbers. </p>
+<p>Medium Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
+<dd>
+<a class="el" href="a00158.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00127_source.html#l00357">357</a> of file <a class="el" href="a00127_source.html">type_vec.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91ad9478d81a7aaf2593e8d9c3d06a14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unsigned int uint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00288">288</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div>
</div>
diff --git a/doc/api/a00159.html b/doc/api/a00159.html
index d265ff0..a72c289 100644
--- a/doc/api/a00159.html
+++ b/doc/api/a00159.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Vector Relational Functions</title>
+<title>0.9.8: Template types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,352 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Vector Relational Functions<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">Template types<div class="ingroups"><a class="el" href="a00156.html">GLM Core</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga14bbc94f2ae2774a1d64d91f8767773e">all</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga14bbc94f2ae2774a1d64d91f8767773e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga632a2644532d9332011c8860400d30b2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga632a2644532d9332011c8860400d30b2">any</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga632a2644532d9332011c8860400d30b2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga39c80d8baf49b0ce69f2bb22d45b3801">equal</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga39c80d8baf49b0ce69f2bb22d45b3801"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gadd80263161a308462d3e3e287e79cccd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gadd80263161a308462d3e3e287e79cccd">greaterThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gadd80263161a308462d3e3e287e79cccd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaee7e101f8cc4ea43924f14dcdeb2ef26">greaterThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaee7e101f8cc4ea43924f14dcdeb2ef26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6261970937a70b0b747ae0d3ade1c188"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga6261970937a70b0b747ae0d3ade1c188">lessThan</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga6261970937a70b0b747ae0d3ade1c188"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaaf1d88119f11200c32011de7c5ec0102"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#gaaf1d88119f11200c32011de7c5ec0102">lessThanEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaaf1d88119f11200c32011de7c5ec0102"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga4329ecbc2ef012c9ec704bd09da1f177">not_</a> (vecType< bool, P > const &v)</td></tr>
-<tr class="separator:ga4329ecbc2ef012c9ec704bd09da1f177"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5aca2b745e5eb0096716bbc394846309"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00159.html#ga5aca2b745e5eb0096716bbc394846309">notEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga5aca2b745e5eb0096716bbc394846309"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. </p>
-<p>For vector results, use the following built-in functions.</p>
-<p>In all cases, the sizes of all the input and return vectors for any particular call must match. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga14bbc94f2ae2774a1d64d91f8767773e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::all </td>
- <td>(</td>
- <td class="paramtype">vecType< bool, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns true if all components of x are true. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/all.xml">GLSL all man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga632a2644532d9332011c8860400d30b2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::any </td>
- <td>(</td>
- <td class="paramtype">vecType< bool, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns true if any component of x is true. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/any.xml">GLSL any man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga39c80d8baf49b0ce69f2bb22d45b3801"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::equal </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison of result x == y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/equal.xml">GLSL equal man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadd80263161a308462d3e3e287e79cccd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::greaterThan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison of result x > y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThan.xml">GLSL greaterThan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaee7e101f8cc4ea43924f14dcdeb2ef26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::greaterThanEqual </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison of result x >= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/greaterThanEqual.xml">GLSL greaterThanEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6261970937a70b0b747ae0d3ade1c188"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::lessThan </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison result of x < y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaf1d88119f11200c32011de7c5ec0102"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::lessThanEqual </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison of result x <= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point or integer vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThanEqual.xml">GLSL lessThanEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4329ecbc2ef012c9ec704bd09da1f177"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::not_ </td>
- <td>(</td>
- <td class="paramtype">vecType< bool, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise logical complement of x. </p>
-<p>/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/not.xml">GLSL not man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5aca2b745e5eb0096716bbc394846309"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::notEqual </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the component-wise comparison of result x != y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">vecType</td><td>Floating-point, integer or boolean vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/notEqual.xml">GLSL notEqual man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a> </dd></dl>
-
-</div>
-</div>
+<p>The generic template types used as the basis for the core types. </p>
+<p>These types are all templates used to define the actual <a class="el" href="a00157.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00160.html b/doc/api/a00160.html
index 5928a18..7b2271f 100644
--- a/doc/api/a00160.html
+++ b/doc/api/a00160.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GTC Extensions (Stable)</title>
+<title>0.9.8: GLM_GTC_bitfield</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,57 +37,943 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GTC Extensions (Stable)</div> </div>
+<div class="title">GLM_GTC_bitfield<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00166"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html">GLM_GTC_bitfield</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00167"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html">GLM_GTC_color_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00168"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00168.html">GLM_GTC_constants</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00169"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00169.html">GLM_GTC_epsilon</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00170"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00170.html">GLM_GTC_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00171"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html">GLM_GTC_matrix_access</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00172"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html">GLM_GTC_matrix_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00173"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00173.html">GLM_GTC_matrix_inverse</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00174.html">GLM_GTC_matrix_transform</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00175"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00175.html">GLM_GTC_noise</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00176"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html">GLM_GTC_packing</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00177"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html">GLM_GTC_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00178"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00178.html">GLM_GTC_random</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00179"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00179.html">GLM_GTC_reciprocal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00180"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00180.html">GLM_GTC_round</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00181"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html">GLM_GTC_type_precision</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00182"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00182.html">GLM_GTC_type_ptr</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00183"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00183.html">GLM_GTC_ulp</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00184"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00184.html">GLM_GTC_vec1</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
+<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
+<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
+<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
+<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
+<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
+<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
+<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
+<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
+<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
+<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
+<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
+<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
+<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
+<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
+<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
+<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
+<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
+<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
+<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType< T, P > const &In, int Shift)</td></tr>
+<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
+<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecIUType> </td></tr>
+<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00160.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType< T, P > const &v)</td></tr>
+<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
-<p>GTC extensions aim to be stable.</p>
-<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including <<a class="el" href="a00023_source.html">glm/ext.hpp</a>>. Otherwise, each extension needs to be included a specific file. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p><<a class="el" href="a00009.html" title="GLM_GTC_bitfield ">glm/gtc/bitfield.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga46f9295abe3b5c7658f5b13c7f819f0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillOne </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>BitCount</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 1 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad789042e84e8292ae95dc1af856f2ad5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillOne </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>BitCount</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 1 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga697b86998b7d74ee0a69d8e9f8819fee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillZero </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>BitCount</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 0 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaddba3196316b0bd240295b09b43c2958"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillZero </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>FirstBit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>BitCount</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set to 0 a range of bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga24cad0069f9a0450abd80b3e89501adf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int16 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9a4976a529aec2cee56525e1165da484"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac51c33a394593f0631fa3aa5bb778809"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga94f3646a5667f4be56f8dcf3310e963f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaebb756a24a0784e3d6fba8bd011ab77a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2f1e2b3fe699e7d897ae38b2115ddcbd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x and y. </p>
+<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8fdb724dccd4a07d57efc01147102137"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9fc2a0dd5dcf8b00e113f272a5feca93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa901c36a842fa5d126ea650549f17b24"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3afd6d38881fe3948c53d4214d2197fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad2075d96a6640121edaa98ea534102ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab19fbc739fc0cf7247978602c36f7da8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y and z. </p>
+<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8a44ae22f5c953b296c42d067dccbe6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga14bb274d54a3c26f4919dd7ed0dd0c36"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga180a63161e1319fbd5a53c84d0429c7a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafca8768671a14c8016facccb66a89f26"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Interleaves the bits of x, y, z and w. </p>
+<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2eb49678a344ce1495bdb5586d9896b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>Shift</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the left. </p>
+<p>All the bits dropped in the left side are inserted back on the right side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga410d130917d85b865718e3ebc32cf0ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateLeft </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>Shift</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the left. </p>
+<p>All the bits dropped in the left side are inserted back on the right side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1c33d075c5fb8bd8dbfd5092bfc851ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateRight </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>Shift</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the right. </p>
+<p>All the bits dropped in the right side are inserted back on the left side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96b56fd2adad1eeaee9e10dfe83904ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateRight </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>In</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>Shift</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotate all bits to the right. </p>
+<p>All the bits dropped in the right side are inserted back on the left side.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7eba518a0b71662114571ee76939f8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::mask </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Bits</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a mask of 'count' bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga073dbd8642f550b51da3572541431c1c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecIUType<T, P> glm::mask </td>
+ <td>(</td>
+ <td class="paramtype">vecIUType< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a mask of 'count' bits. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00160.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00161.html b/doc/api/a00161.html
index c123718..f3a3a64 100644
--- a/doc/api/a00161.html
+++ b/doc/api/a00161.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GTX Extensions (Experimental)</title>
+<title>0.9.8: GLM_GTC_color_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,133 +37,99 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GTX Extensions (Experimental)</div> </div>
+<div class="title">GLM_GTC_color_space<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00185"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00185.html">GLM_GTX_associated_min_max</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00186"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00186.html">GLM_GTX_bit</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html">GLM_GTX_closest_point</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00188"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00188.html">GLM_GTX_color_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00189"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html">GLM_GTX_color_space_YCoCg</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00190"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00190.html">GLM_GTX_common</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00191"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html">GLM_GTX_compatibility</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00192"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00192.html">GLM_GTX_component_wise</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00193"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html">GLM_GTX_dual_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00194"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00194.html">GLM_GTX_euler_angles</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00195"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html">GLM_GTX_extend</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00196"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00196.html">GLM_GTX_extented_min_max</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00197"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00197.html">GLM_GTX_fast_exponential</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00198.html">GLM_GTX_fast_square_root</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00199"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html">GLM_GTX_fast_trigonometry</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00200"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00200.html">GLM_GTX_gradient_paint</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00201"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00201.html">GLM_GTX_handed_coordinate_space</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00202"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00202.html">GLM_GTX_hash</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00203"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html">GLM_GTX_integer</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00204"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00204.html">GLM_GTX_intersect</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00205"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00205.html">GLM_GTX_io</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00206"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00206.html">GLM_GTX_log_base</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00207"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00207.html">GLM_GTX_matrix_cross_product</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00208"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00208.html">GLM_GTX_matrix_decompose</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00209"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00209.html">GLM_GTX_matrix_interpolation</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00210"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00210.html">GLM_GTX_matrix_major_storage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00211"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00211.html">GLM_GTX_matrix_operation</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00212"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00212.html">GLM_GTX_matrix_query</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00213"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00213.html">GLM_GTX_matrix_transform_2d</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00214"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html">GLM_GTX_mixed_producte</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00215"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00215.html">GLM_GTX_norm</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00216"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00216.html">GLM_GTX_normal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00217"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00217.html">GLM_GTX_normalize_dot</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00218"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html">GLM_GTX_number_precision</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00219"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00219.html">GLM_GTX_optimum_pow</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00220"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00220.html">GLM_GTX_orthonormalize</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00221"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00221.html">GLM_GTX_perpendicular</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00222"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html">GLM_GTX_polar_coordinates</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00223"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00223.html">GLM_GTX_projection</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00224"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00224.html">GLM_GTX_quaternion</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00225"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00225.html">GLM_GTX_range</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00226"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html">GLM_GTX_raw_data</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00227"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00227.html">GLM_GTX_rotate_normalized_axis</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00228"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00228.html">GLM_GTX_rotate_vector</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00229"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00229.html">GLM_GTX_scalar_relational</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00230"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html">GLM_GTX_simd_mat4</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00231"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00231.html">GLM_GTX_simd_quat</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00232"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00232.html">GLM_GTX_simd_vec4</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00233"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00233.html">GLM_GTX_spline</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00234"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html">GLM_GTX_std_based_type</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00235"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00235.html">GLM_GTX_string_cast</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00236"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00236.html">GLM_GTX_transform</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00237"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00237.html">GLM_GTX_transform2</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00238"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html">GLM_GTX_type_aligned</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00239"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00239.html">GLM_GTX_vector_angle</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00240"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00240.html">GLM_GTX_vector_query</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00241"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html">GLM_GTX_wrap</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear)</td></tr>
+<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear, T Gamma)</td></tr>
+<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB)</td></tr>
+<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
+template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00161.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB, T Gamma)</td></tr>
+<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program. </p>
-<p>Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.</p>
-<p>Even if it's highly unrecommended, it's possible to include all the extensions at once by including <<a class="el" href="a00023_source.html">glm/ext.hpp</a>>. Otherwise, each extension needs to be included a specific file. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p><glm/gtc/color.hpp> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::convertLinearToSRGB </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>ColorLinear</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a linear color to sRGB color using a standard gamma correction. </p>
+<p>IEC 61966-2-1:1999 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::convertLinearToSRGB </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>ColorLinear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Gamma</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a linear color to sRGB color using a custom gamma correction. </p>
+<p>IEC 61966-2-1:1999 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::convertSRGBToLinear </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>ColorSRGB</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a sRGB color to linear color using a standard gamma correction. </p>
+<p>IEC 61966-2-1:1999 specification <a href="https://www.w3.org/Graphics/Color/srgb">https://www.w3.org/Graphics/Color/srgb</a> </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00162.html b/doc/api/a00162.html
index 40b6991..d9e0338 100644
--- a/doc/api/a00162.html
+++ b/doc/api/a00162.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM Core</title>
+<title>0.9.8: GLM_GTC_constants</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,44 +37,628 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#groups">Modules</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM Core</div> </div>
+<div class="title">GLM_GTC_constants<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00151"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00151.html">Common functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00152"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00152.html">Exponential functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00153"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00153.html">Geometric functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00154"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00154.html">Integer functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00155"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00155.html">Matrix functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00156"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00156.html">Noise functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00157"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00157.html">Floating-Point Pack and Unpack Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00158"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00158.html">Angle and Trigonometry Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00159"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00159.html">Vector Relational Functions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00163"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html">Types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">Precision types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00165"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00165.html">Template types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139">e</a> ()</td></tr>
+<tr class="separator:ga4b7956eb6e2fbedfc7cf2e46e85c5139"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2a1e57fc5592b69cfae84174cbfc9429">epsilon</a> ()</td></tr>
+<tr class="separator:ga2a1e57fc5592b69cfae84174cbfc9429"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gad8fe2e6f90bce9d829e9723b649fbd42">euler</a> ()</td></tr>
+<tr class="separator:gad8fe2e6f90bce9d829e9723b649fbd42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga753950e5140e4ea6a88e4a18ba61dc09">four_over_pi</a> ()</td></tr>
+<tr class="separator:ga753950e5140e4ea6a88e4a18ba61dc09"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga748cf8642830657c5b7eae04d0a80899"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga748cf8642830657c5b7eae04d0a80899">golden_ratio</a> ()</td></tr>
+<tr class="separator:ga748cf8642830657c5b7eae04d0a80899"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga0c36b41d462e45641faf7d7938948bac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga0c36b41d462e45641faf7d7938948bac">half_pi</a> ()</td></tr>
+<tr class="separator:ga0c36b41d462e45641faf7d7938948bac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaca94292c839ed31a405ab7a81ae7e850"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaca94292c839ed31a405ab7a81ae7e850">ln_ln_two</a> ()</td></tr>
+<tr class="separator:gaca94292c839ed31a405ab7a81ae7e850"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaf97ebc6c059ffd788e6c4946f71ef66c">ln_ten</a> ()</td></tr>
+<tr class="separator:gaf97ebc6c059ffd788e6c4946f71ef66c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga24f4d27765678116f41a2f336ab7975c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga24f4d27765678116f41a2f336ab7975c">ln_two</a> ()</td></tr>
+<tr class="separator:ga24f4d27765678116f41a2f336ab7975c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga39c2fb227631ca25894326529bdd1ee5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga39c2fb227631ca25894326529bdd1ee5">one</a> ()</td></tr>
+<tr class="separator:ga39c2fb227631ca25894326529bdd1ee5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga555150da2b06d23c8738981d5013e0eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga555150da2b06d23c8738981d5013e0eb">one_over_pi</a> ()</td></tr>
+<tr class="separator:ga555150da2b06d23c8738981d5013e0eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788fa23a0939bac4d1d0205fb4f35818">one_over_root_two</a> ()</td></tr>
+<tr class="separator:ga788fa23a0939bac4d1d0205fb4f35818"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga7c922b427986cbb2e4c6ac69874eefbc">one_over_two_pi</a> ()</td></tr>
+<tr class="separator:ga7c922b427986cbb2e4c6ac69874eefbc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga94bafeb2a0f23ab6450fed1f98ee4e45">pi</a> ()</td></tr>
+<tr class="separator:ga94bafeb2a0f23ab6450fed1f98ee4e45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3c9df42bd73c519a995c43f0f99e77e0">quarter_pi</a> ()</td></tr>
+<tr class="separator:ga3c9df42bd73c519a995c43f0f99e77e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae9ebbded75b53d4faeb1e4ef8b3347a2">root_five</a> ()</td></tr>
+<tr class="separator:gae9ebbded75b53d4faeb1e4ef8b3347a2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4e276cb823cc5e612d4f89ed99c75039">root_half_pi</a> ()</td></tr>
+<tr class="separator:ga4e276cb823cc5e612d4f89ed99c75039"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4129412e96b33707a77c1a07652e23e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4129412e96b33707a77c1a07652e23e2">root_ln_four</a> ()</td></tr>
+<tr class="separator:ga4129412e96b33707a77c1a07652e23e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga261380796b2cd496f68d2cf1d08b8eb9">root_pi</a> ()</td></tr>
+<tr class="separator:ga261380796b2cd496f68d2cf1d08b8eb9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga4f286be4abe88be1eed7d2a9f6cb193e">root_three</a> ()</td></tr>
+<tr class="separator:ga4f286be4abe88be1eed7d2a9f6cb193e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74e607d29020f100c0d0dc46ce2ca950">root_two</a> ()</td></tr>
+<tr class="separator:ga74e607d29020f100c0d0dc46ce2ca950"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga2bcedc575039fe0cd765742f8bbb0bd3">root_two_pi</a> ()</td></tr>
+<tr class="separator:ga2bcedc575039fe0cd765742f8bbb0bd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3077c6311010a214b69ddc8214ec13b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga3077c6311010a214b69ddc8214ec13b5">third</a> ()</td></tr>
+<tr class="separator:ga3077c6311010a214b69ddc8214ec13b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae94950df74b0ce382b1fc1d978ef7394"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gae94950df74b0ce382b1fc1d978ef7394">three_over_two_pi</a> ()</td></tr>
+<tr class="separator:gae94950df74b0ce382b1fc1d978ef7394"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74eadc8a211253079683219a3ea0462a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga74eadc8a211253079683219a3ea0462a">two_over_pi</a> ()</td></tr>
+<tr class="separator:ga74eadc8a211253079683219a3ea0462a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5827301817640843cf02026a8d493894"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga5827301817640843cf02026a8d493894">two_over_root_pi</a> ()</td></tr>
+<tr class="separator:ga5827301817640843cf02026a8d493894"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa5276a4617566abcfe49286f40e3a256"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#gaa5276a4617566abcfe49286f40e3a256">two_pi</a> ()</td></tr>
+<tr class="separator:gaa5276a4617566abcfe49286f40e3a256"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga9b4d2f4322edcf63a6737b92a29dd1f5">two_thirds</a> ()</td></tr>
+<tr class="separator:ga9b4d2f4322edcf63a6737b92a29dd1f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00162.html#ga788f5a421fc0f40a1296ebc094cbaa8a">zero</a> ()</td></tr>
+<tr class="separator:ga788f5a421fc0f40a1296ebc094cbaa8a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>The core of GLM, which implements exactly and only the GLSL specification to the degree possible. </p>
-<p>The GLM core consists of <a class="el" href="a00163.html">C++ types that mirror GLSL types</a> and C++ functions that mirror the GLSL functions. It also includes <a class="el" href="a00164.html">a set of precision-based types</a> that can be used in the appropriate functions. The C++ types are all based on a basic set of <a class="el" href="a00165.html">template types</a>.</p>
-<p>The best documentation for GLM Core is the current GLSL specification, <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2 (pdf file)</a>.</p>
-<p>GLM core functionnalities require <<a class="el" href="a00040.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/glm.hpp</a>> to be included to be used. </p>
+<p>Provide a list of constants and precomputed useful values. </p>
+<p><<a class="el" href="a00018.html" title="GLM_GTC_constants ">glm/gtc/constants.hpp</a>> need to be included to use these features. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga4b7956eb6e2fbedfc7cf2e46e85c5139"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::e </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return e constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2a1e57fc5592b69cfae84174cbfc9429"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::epsilon </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the epsilon constant for floating point types. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad8fe2e6f90bce9d829e9723b649fbd42"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::euler </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return Euler's constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga753950e5140e4ea6a88e4a18ba61dc09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::four_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 4 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga748cf8642830657c5b7eae04d0a80899"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::golden_ratio </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the golden ratio constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0c36b41d462e45641faf7d7938948bac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::half_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaca94292c839ed31a405ab7a81ae7e850"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ln_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(ln(2)). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf97ebc6c059ffd788e6c4946f71ef66c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ten </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(10). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga24f4d27765678116f41a2f336ab7975c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return ln(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga39c2fb227631ca25894326529bdd1ee5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga555150da2b06d23c8738981d5013e0eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga788fa23a0939bac4d1d0205fb4f35818"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_root_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / sqrt(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7c922b427986cbb2e4c6ac69874eefbc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / (pi * 2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga94bafeb2a0f23ab6450fed1f98ee4e45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the pi constant. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3c9df42bd73c519a995c43f0f99e77e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::quarter_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 4. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9ebbded75b53d4faeb1e4ef8b3347a2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_five </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(5). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4e276cb823cc5e612d4f89ed99c75039"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_half_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(pi / 2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4129412e96b33707a77c1a07652e23e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_ln_four </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(ln(4)). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga261380796b2cd496f68d2cf1d08b8eb9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return square root of pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4f286be4abe88be1eed7d2a9f6cb193e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_three </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(3). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga74e607d29020f100c0d0dc46ce2ca950"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(2). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2bcedc575039fe0cd765742f8bbb0bd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return sqrt(2 * pi). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3077c6311010a214b69ddc8214ec13b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::third </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 1 / 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae94950df74b0ce382b1fc1d978ef7394"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::three_over_two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi / 2 * 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga74eadc8a211253079683219a3ea0462a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / pi. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5827301817640843cf02026a8d493894"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_root_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / sqrt(pi). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa5276a4617566abcfe49286f40e3a256"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_pi </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return pi * 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9b4d2f4322edcf63a6737b92a29dd1f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_thirds </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 2 / 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga788f5a421fc0f40a1296ebc094cbaa8a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL GLM_CONSTEXPR genType glm::zero </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return 0. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00162.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00163.html b/doc/api/a00163.html
index f2701be..9275053 100644
--- a/doc/api/a00163.html
+++ b/doc/api/a00163.html
@@ -1,808 +1,217 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Types</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#groups">Modules</a> |
-<a href="#typedef-members">Typedefs</a> </div>
- <div class="headertitle">
-<div class="title">Types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
-Modules</h2></td></tr>
-<tr class="memitem:a00164"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html">Precision types</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0e46aaaccc5e713eac5bfbc8d6885a60">bvec2</a></td></tr>
-<tr class="separator:ga0e46aaaccc5e713eac5bfbc8d6885a60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga150731e2a148eff8752114a0e450505e"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga150731e2a148eff8752114a0e450505e">bvec3</a></td></tr>
-<tr class="separator:ga150731e2a148eff8752114a0e450505e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memItemLeft" align="right" valign="top">typedef highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga444e8f61bfb3a6f037d019ac6933f8c6">bvec4</a></td></tr>
-<tr class="separator:ga444e8f61bfb3a6f037d019ac6933f8c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac7f51e23c8802d867f564dfd146bdb44"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac7f51e23c8802d867f564dfd146bdb44">dmat2</a></td></tr>
-<tr class="separator:gac7f51e23c8802d867f564dfd146bdb44"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacc27b39853a2ecb538c8b3afc20c359e">dmat2x2</a></td></tr>
-<tr class="separator:gacc27b39853a2ecb538c8b3afc20c359e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1cb3c561a32f0864733dfaf97c71f0c7">dmat2x3</a></td></tr>
-<tr class="separator:ga1cb3c561a32f0864733dfaf97c71f0c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaddd230c88fbd6ec33242329be3a1b738"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaddd230c88fbd6ec33242329be3a1b738">dmat2x4</a></td></tr>
-<tr class="separator:gaddd230c88fbd6ec33242329be3a1b738"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae174ff65e148bb7dec4bf10a63cb46ff">dmat3</a></td></tr>
-<tr class="separator:gae174ff65e148bb7dec4bf10a63cb46ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaec22f44dddbdadfe5dfca68eb3457ea8">dmat3x2</a></td></tr>
-<tr class="separator:gaec22f44dddbdadfe5dfca68eb3457ea8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gac44263f56ff3cbf0a9cc4e2405d5ecb8">dmat3x3</a></td></tr>
-<tr class="separator:gac44263f56ff3cbf0a9cc4e2405d5ecb8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga38d9bfca882ec542b1928cf77b5c2091">dmat3x4</a></td></tr>
-<tr class="separator:ga38d9bfca882ec542b1928cf77b5c2091"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga97b38ea24e9ebf58eac04a8d99dc3e27">dmat4</a></td></tr>
-<tr class="separator:ga97b38ea24e9ebf58eac04a8d99dc3e27"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6ddab280c735a2139133b4164b99a68a"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6ddab280c735a2139133b4164b99a68a">dmat4x2</a></td></tr>
-<tr class="separator:ga6ddab280c735a2139133b4164b99a68a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab6c8974496fc7c72dad09219118ba89e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gab6c8974496fc7c72dad09219118ba89e">dmat4x3</a></td></tr>
-<tr class="separator:gab6c8974496fc7c72dad09219118ba89e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41c2da87ca627c1b2da5e895435a508e"><td class="memItemLeft" align="right" valign="top">typedef highp_dmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga41c2da87ca627c1b2da5e895435a508e">dmat4x4</a></td></tr>
-<tr class="separator:ga41c2da87ca627c1b2da5e895435a508e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a></td></tr>
-<tr class="separator:ga15ade901680b29b78c1f9d1796db6e0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a></td></tr>
-<tr class="separator:gabebd0c7e3c5cd337d95c313c5e8b8db4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memItemLeft" align="right" valign="top">typedef highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a></td></tr>
-<tr class="separator:ga9503f809789bda7e8852a6abde3ae5c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a></td></tr>
-<tr class="separator:ga2ab812bd103527e2d6c62c2e2f5ee78f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34aee73784bcc247d426250540c1911c"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a></td></tr>
-<tr class="separator:ga34aee73784bcc247d426250540c1911c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memItemLeft" align="right" valign="top">typedef highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a></td></tr>
-<tr class="separator:gaaa26c41d168dc00be0fe55f4d0a34224"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memItemLeft" align="right" valign="top">typedef mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a></td></tr>
-<tr class="separator:ga6e30cfba068ebc3c71fe1f8b3110e450"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a></td></tr>
-<tr class="separator:ga0c84b211a5730357b63c6d2e4fb696d5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb063d734266e92915d87f8943560471"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafb063d734266e92915d87f8943560471">mat2x3</a></td></tr>
-<tr class="separator:gafb063d734266e92915d87f8943560471"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memItemLeft" align="right" valign="top">typedef highp_mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga4d2ac1a80c36fb5a1d15914035f792ac">mat2x4</a></td></tr>
-<tr class="separator:ga4d2ac1a80c36fb5a1d15914035f792ac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6dd3ec98a548755676267e59142911f8"><td class="memItemLeft" align="right" valign="top">typedef mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a></td></tr>
-<tr class="separator:ga6dd3ec98a548755676267e59142911f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga3839ca29d011a80ff3ede7f22ba602a4">mat3x2</a></td></tr>
-<tr class="separator:ga3839ca29d011a80ff3ede7f22ba602a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga378921b6a07bcdad946858b340f69ab1"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a></td></tr>
-<tr class="separator:ga378921b6a07bcdad946858b340f69ab1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memItemLeft" align="right" valign="top">typedef highp_mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga7876e0c3e3fcc3e2f4c0462c152e87cf">mat3x4</a></td></tr>
-<tr class="separator:ga7876e0c3e3fcc3e2f4c0462c152e87cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade0eb47c01f79384a6f38017ede17446"><td class="memItemLeft" align="right" valign="top">typedef mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a></td></tr>
-<tr class="separator:gade0eb47c01f79384a6f38017ede17446"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga1b3f6a5cbc17362141f9781262ed838f">mat4x2</a></td></tr>
-<tr class="separator:ga1b3f6a5cbc17362141f9781262ed838f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gacd9ff3b943b3d8bda4f4b388320420fd">mat4x3</a></td></tr>
-<tr class="separator:gacd9ff3b943b3d8bda4f4b388320420fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memItemLeft" align="right" valign="top">typedef highp_mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a></td></tr>
-<tr class="separator:ga089315d5a0c20ac6eaa17a854bbd2e81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a></td></tr>
-<tr class="separator:ga9bcffa2d49f28d16f680757b5c0e7c84"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a></td></tr>
-<tr class="separator:gae85537b672ffe0b3218cbdf1823e1c72"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memItemLeft" align="right" valign="top">typedef highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a></td></tr>
-<tr class="separator:gaa7c3a0e7ae50c34c3290415c115f251e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memItemLeft" align="right" valign="top">typedef highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a></td></tr>
-<tr class="separator:ga09d0200e8ff86391d8804b4fefd5f1da"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa8ea2429bb3cb41a715258a447f39897"><td class="memItemLeft" align="right" valign="top">typedef highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a></td></tr>
-<tr class="separator:gaa8ea2429bb3cb41a715258a447f39897"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafbab23070ca47932487d25332adc7d7c"><td class="memItemLeft" align="right" valign="top">typedef highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a></td></tr>
-<tr class="separator:gafbab23070ca47932487d25332adc7d7c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>The standard types defined by the specification. </p>
-<p>These types are all typedefs of more generalized, template types. To see the definiton of these template types, go to <a class="el" href="a00165.html">Template types</a>. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga0e46aaaccc5e713eac5bfbc8d6885a60"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_bvec2 bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00498">498</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga150731e2a148eff8752114a0e450505e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_bvec3 bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00503">503</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga444e8f61bfb3a6f037d019ac6933f8c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_bvec4 bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of boolean. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00508">508</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac7f51e23c8802d867f564dfd146bdb44"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat2x2 dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00733">733</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacc27b39853a2ecb538c8b3afc20c359e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat2x2 dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00748">748</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1cb3c561a32f0864733dfaf97c71f0c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat2x3 dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00753">753</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaddd230c88fbd6ec33242329be3a1b738"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat2x4 dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00758">758</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae174ff65e148bb7dec4bf10a63cb46ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat3x3 dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00738">738</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaec22f44dddbdadfe5dfca68eb3457ea8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat3x2 dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00763">763</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac44263f56ff3cbf0a9cc4e2405d5ecb8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat3x3 dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00768">768</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga38d9bfca882ec542b1928cf77b5c2091"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat3x4 dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00773">773</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga97b38ea24e9ebf58eac04a8d99dc3e27"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat4x4 dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00743">743</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6ddab280c735a2139133b4164b99a68a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat4x2 dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 2 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00778">778</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab6c8974496fc7c72dad09219118ba89e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat4x3 dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 3 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00783">783</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41c2da87ca627c1b2da5e895435a508e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dmat4x4 dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 * 4 matrix of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00788">788</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga15ade901680b29b78c1f9d1796db6e0e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dvec2 dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00417">417</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabebd0c7e3c5cd337d95c313c5e8b8db4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dvec3 dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00422">422</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9503f809789bda7e8852a6abde3ae5c1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_dvec4 dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00427">427</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2ab812bd103527e2d6c62c2e2f5ee78f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec2 ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00444">444</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga34aee73784bcc247d426250540c1911c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec3 ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00449">449</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaa26c41d168dc00be0fe55f4d0a34224"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ivec4 ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00454">454</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e30cfba068ebc3c71fe1f8b3110e450"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat2x2 mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00432">432</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c84b211a5730357b63c6d2e4fb696d5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x2 mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00385">385</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb063d734266e92915d87f8943560471"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x3 mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00390">390</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4d2ac1a80c36fb5a1d15914035f792ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat2x4 mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00395">395</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6dd3ec98a548755676267e59142911f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat3x3 mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00437">437</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3839ca29d011a80ff3ede7f22ba602a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x2 mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00400">400</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga378921b6a07bcdad946858b340f69ab1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x3 mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00405">405</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7876e0c3e3fcc3e2f4c0462c152e87cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat3x4 mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00410">410</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade0eb47c01f79384a6f38017ede17446"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mat4x4 mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00442">442</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b3f6a5cbc17362141f9781262ed838f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x2 mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00415">415</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacd9ff3b943b3d8bda4f4b388320420fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x3 mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00420">420</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga089315d5a0c20ac6eaa17a854bbd2e81"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_mat4x4 mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00425">425</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9bcffa2d49f28d16f680757b5c0e7c84"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec2 uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00471">471</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae85537b672ffe0b3218cbdf1823e1c72"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec3 uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00476">476</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa7c3a0e7ae50c34c3290415c115f251e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_uvec4 uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00481">481</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga09d0200e8ff86391d8804b4fefd5f1da"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec2 vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00390">390</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa8ea2429bb3cb41a715258a447f39897"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec3 vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00395">395</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafbab23070ca47932487d25332adc7d7c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_vec4 vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00400">400</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: GLM_GTC_epsilon</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">GLM_GTC_epsilon<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)</td></tr>
+<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &x, genType const &y, typename genType::value_type const &epsilon)</td></tr>
+<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00163.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
+<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Comparison functions for a user defined epsilon values. </p>
+<p><<a class="el" href="a00020.html" title="GLM_GTC_epsilon ">glm/gtc/epsilon.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaca9443f217dc36587624247245522331"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::epsilonEqual </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
+<p>True if this expression is satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa7f227999ca09e7ca994e8b35aba47bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::epsilonEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
+<p>True if this expression is satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga14e2888a304654ade8a3996024e2739c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
+<p>True if this expression is not satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50a92103fb0cbd796908e1bf20c79aaf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::epsilonNotEqual </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the component-wise comparison of |x - y| >= epsilon. </p>
+<p>True if this expression is not satisfied.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/a00164.html b/doc/api/a00164.html
index 46fc136..884eea2 100644
--- a/doc/api/a00164.html
+++ b/doc/api/a00164.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Precision types</title>
+<title>0.9.8: GLM_GTC_functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,2782 +37,92 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Precision types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a><a class="el" href="a00162.html">GLM Core</a> » | <a class="el" href="a00163.html">Types</a></div></div> </div>
+<div class="title">GLM_GTC_functions<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga829f39950549881a08c534946c0487e1"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga829f39950549881a08c534946c0487e1">highp_bvec2</a></td></tr>
-<tr class="separator:ga829f39950549881a08c534946c0487e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaca7c2a58eb926799c30ad547a290fccf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaca7c2a58eb926799c30ad547a290fccf">highp_bvec3</a></td></tr>
-<tr class="separator:gaca7c2a58eb926799c30ad547a290fccf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae5f9c57d04b338c9a51a9af39e50795b">highp_bvec4</a></td></tr>
-<tr class="separator:gae5f9c57d04b338c9a51a9af39e50795b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga65ae7d3b23155712ed8cbd3300be4ec8">highp_dmat2</a></td></tr>
-<tr class="separator:ga65ae7d3b23155712ed8cbd3300be4ec8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga518f28c64881fafaaf14ec0d867a9bba">highp_dmat2x2</a></td></tr>
-<tr class="separator:ga518f28c64881fafaaf14ec0d867a9bba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf98afd25f7e3e8f1d73bca020d0d8ea6">highp_dmat2x3</a></td></tr>
-<tr class="separator:gaf98afd25f7e3e8f1d73bca020d0d8ea6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac1c87c16d6dcb7449bc3c779ccdc5c30">highp_dmat2x4</a></td></tr>
-<tr class="separator:gac1c87c16d6dcb7449bc3c779ccdc5c30"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga605c7863807ac2e9c2db4cf13405f34d">highp_dmat3</a></td></tr>
-<tr class="separator:ga605c7863807ac2e9c2db4cf13405f34d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab2d4fd5cd286baff8364a7a3f60c8a21">highp_dmat3x2</a></td></tr>
-<tr class="separator:gab2d4fd5cd286baff8364a7a3f60c8a21"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d7911a43241a5ce2472421255e5930f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2d7911a43241a5ce2472421255e5930f">highp_dmat3x3</a></td></tr>
-<tr class="separator:ga2d7911a43241a5ce2472421255e5930f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51bfd2f3f5a12464d5934323db9116e7">highp_dmat3x4</a></td></tr>
-<tr class="separator:ga51bfd2f3f5a12464d5934323db9116e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga4607e33c40a3c03256e0bf9c586b456a">highp_dmat4</a></td></tr>
-<tr class="separator:ga4607e33c40a3c03256e0bf9c586b456a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5ee028f50629bf451973b3a910973357"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5ee028f50629bf451973b3a910973357">highp_dmat4x2</a></td></tr>
-<tr class="separator:ga5ee028f50629bf451973b3a910973357"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafe7eea5b2a20477b5634e340ea5ec28a">highp_dmat4x3</a></td></tr>
-<tr class="separator:gafe7eea5b2a20477b5634e340ea5ec28a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga83ab0b8b8b50cbf945237dc8f5322432">highp_dmat4x4</a></td></tr>
-<tr class="separator:ga83ab0b8b8b50cbf945237dc8f5322432"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga435eb408e8dfa4f7185368109d432c14"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga435eb408e8dfa4f7185368109d432c14">highp_dvec2</a></td></tr>
-<tr class="separator:ga435eb408e8dfa4f7185368109d432c14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga01d2c9b292e27518e4d6f8442607e8aa">highp_dvec3</a></td></tr>
-<tr class="separator:ga01d2c9b292e27518e4d6f8442607e8aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5d454f34d819d90b9bbb30dcb9ed7b39">highp_dvec4</a></td></tr>
-<tr class="separator:ga5d454f34d819d90b9bbb30dcb9ed7b39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e95694987ba35af6f736638be39626a"><td class="memItemLeft" align="right" valign="top">typedef highp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6e95694987ba35af6f736638be39626a">highp_float</a></td></tr>
-<tr class="separator:ga6e95694987ba35af6f736638be39626a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaabe7eb044941ebf308b53a447d692dc"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaabe7eb044941ebf308b53a447d692dc">highp_int</a></td></tr>
-<tr class="separator:gaaabe7eb044941ebf308b53a447d692dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa015a3707413de20c03948308dba2f2e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa015a3707413de20c03948308dba2f2e">highp_ivec2</a></td></tr>
-<tr class="separator:gaa015a3707413de20c03948308dba2f2e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8330bf0d7e6d03ca12ee2b1334c2c30f">highp_ivec3</a></td></tr>
-<tr class="separator:ga8330bf0d7e6d03ca12ee2b1334c2c30f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0424a75bb400571489b8528897f35258"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0424a75bb400571489b8528897f35258">highp_ivec4</a></td></tr>
-<tr class="separator:ga0424a75bb400571489b8528897f35258"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga11c1eb1d307846d5bee7d7c0d8c386f0">highp_mat2</a></td></tr>
-<tr class="separator:ga11c1eb1d307846d5bee7d7c0d8c386f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae6a747cfc33928652abcb1347712b231"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae6a747cfc33928652abcb1347712b231">highp_mat2x2</a></td></tr>
-<tr class="separator:gae6a747cfc33928652abcb1347712b231"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9dfd75b5b17b89ccbecbdd6201efc74b">highp_mat2x3</a></td></tr>
-<tr class="separator:ga9dfd75b5b17b89ccbecbdd6201efc74b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga03fe2f9a84c61cc0f08b324a27d9b493">highp_mat2x4</a></td></tr>
-<tr class="separator:ga03fe2f9a84c61cc0f08b324a27d9b493"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaac1bde847d053902c27bad811b76e9fd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac1bde847d053902c27bad811b76e9fd">highp_mat3</a></td></tr>
-<tr class="separator:gaac1bde847d053902c27bad811b76e9fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b00cd7956ac2ee3d4f3ab3b549b564a">highp_mat3x2</a></td></tr>
-<tr class="separator:ga6b00cd7956ac2ee3d4f3ab3b549b564a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga223de5d0549b215566dfb977d4bb45bd"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga223de5d0549b215566dfb977d4bb45bd">highp_mat3x3</a></td></tr>
-<tr class="separator:ga223de5d0549b215566dfb977d4bb45bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga117d8a040e738396a3d60368605623d2"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga117d8a040e738396a3d60368605623d2">highp_mat3x4</a></td></tr>
-<tr class="separator:ga117d8a040e738396a3d60368605623d2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabace1eeb2fac7d73a7faaecf33f352d0">highp_mat4</a></td></tr>
-<tr class="separator:gabace1eeb2fac7d73a7faaecf33f352d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeea75c96b308be4114e0badf49f58075"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaeea75c96b308be4114e0badf49f58075">highp_mat4x2</a></td></tr>
-<tr class="separator:gaeea75c96b308be4114e0badf49f58075"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga046e59c57aaa185a8b0b012164ce707f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga046e59c57aaa185a8b0b012164ce707f">highp_mat4x3</a></td></tr>
-<tr class="separator:ga046e59c57aaa185a8b0b012164ce707f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa72822d91f0dceb4dcaaec550cbfeead">highp_mat4x4</a></td></tr>
-<tr class="separator:gaa72822d91f0dceb4dcaaec550cbfeead"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memItemLeft" align="right" valign="top">typedef detail::highp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga73e8a694d7fc69143cf25161d18d1dcf">highp_uint</a></td></tr>
-<tr class="separator:ga73e8a694d7fc69143cf25161d18d1dcf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa0eed70387a998c3eca2f4e45f3efaad">highp_uvec2</a></td></tr>
-<tr class="separator:gaa0eed70387a998c3eca2f4e45f3efaad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf564d5be1e65bd2204754043b218c9a4"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf564d5be1e65bd2204754043b218c9a4">highp_uvec3</a></td></tr>
-<tr class="separator:gaf564d5be1e65bd2204754043b218c9a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga61359f5531550e45871a97589d8dcce1"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga61359f5531550e45871a97589d8dcce1">highp_uvec4</a></td></tr>
-<tr class="separator:ga61359f5531550e45871a97589d8dcce1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabfc3e9f63cc3e2ee0521405277ef3997">highp_vec2</a></td></tr>
-<tr class="separator:gabfc3e9f63cc3e2ee0521405277ef3997"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7b31b02c5558e2f8e5d8439ae3803d3a">highp_vec3</a></td></tr>
-<tr class="separator:ga7b31b02c5558e2f8e5d8439ae3803d3a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade7cb496ed3d78b2a11f1651cce77239"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gade7cb496ed3d78b2a11f1651cce77239">highp_vec4</a></td></tr>
-<tr class="separator:gade7cb496ed3d78b2a11f1651cce77239"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga28dcda102dd8c94ec500ee786af7a30a">lowp_bvec2</a></td></tr>
-<tr class="separator:ga28dcda102dd8c94ec500ee786af7a30a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76c0948546deeeb18bfda36f18b3e673"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga76c0948546deeeb18bfda36f18b3e673">lowp_bvec3</a></td></tr>
-<tr class="separator:ga76c0948546deeeb18bfda36f18b3e673"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafa2087ead0d0e2a3c907e3fbd99f4d85">lowp_bvec4</a></td></tr>
-<tr class="separator:gafa2087ead0d0e2a3c907e3fbd99f4d85"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae0a526a0143fc69d7b317c078d591654"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae0a526a0143fc69d7b317c078d591654">lowp_dmat2</a></td></tr>
-<tr class="separator:gae0a526a0143fc69d7b317c078d591654"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga000c064e4eba15bf83f8e1e393a8e7fd">lowp_dmat2x2</a></td></tr>
-<tr class="separator:ga000c064e4eba15bf83f8e1e393a8e7fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaaf2d7cf98b74a43fc432725887685dc0">lowp_dmat2x3</a></td></tr>
-<tr class="separator:gaaf2d7cf98b74a43fc432725887685dc0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ac69e9ed1addf122f51396f73cdbbf3">lowp_dmat2x4</a></td></tr>
-<tr class="separator:ga8ac69e9ed1addf122f51396f73cdbbf3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19b0c9580b447443cf3fe589bd661e03"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga19b0c9580b447443cf3fe589bd661e03">lowp_dmat3</a></td></tr>
-<tr class="separator:ga19b0c9580b447443cf3fe589bd661e03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27ccd1bcb24920508a7b6a24bd9265ab">lowp_dmat3x2</a></td></tr>
-<tr class="separator:ga27ccd1bcb24920508a7b6a24bd9265ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae37a4275ffa68d0c3527a345e76598c0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae37a4275ffa68d0c3527a345e76598c0">lowp_dmat3x3</a></td></tr>
-<tr class="separator:gae37a4275ffa68d0c3527a345e76598c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga813bff547772bcefebc026e5deba0fe3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga813bff547772bcefebc026e5deba0fe3">lowp_dmat3x4</a></td></tr>
-<tr class="separator:ga813bff547772bcefebc026e5deba0fe3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaac3aee10bee5fa5206de8bf024a8b301">lowp_dmat4</a></td></tr>
-<tr class="separator:gaac3aee10bee5fa5206de8bf024a8b301"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05c2d27aeca091e369fca027e72177e8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga05c2d27aeca091e369fca027e72177e8">lowp_dmat4x2</a></td></tr>
-<tr class="separator:ga05c2d27aeca091e369fca027e72177e8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2b5b1b810f3b9988f49f985387e35e03">lowp_dmat4x3</a></td></tr>
-<tr class="separator:ga2b5b1b810f3b9988f49f985387e35e03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaea9e20c3668305cf0de5334d217408d9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaea9e20c3668305cf0de5334d217408d9">lowp_dmat4x4</a></td></tr>
-<tr class="separator:gaea9e20c3668305cf0de5334d217408d9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96eb13864627c7c832b5af36aa73bda6"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga96eb13864627c7c832b5af36aa73bda6">lowp_dvec2</a></td></tr>
-<tr class="separator:ga96eb13864627c7c832b5af36aa73bda6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf7ec7b1cefeeaf63659460ef52fd06a9">lowp_dvec3</a></td></tr>
-<tr class="separator:gaf7ec7b1cefeeaf63659460ef52fd06a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab5d6a45e1bbb13314b47793865a4c072"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab5d6a45e1bbb13314b47793865a4c072">lowp_dvec4</a></td></tr>
-<tr class="separator:gab5d6a45e1bbb13314b47793865a4c072"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memItemLeft" align="right" valign="top">typedef lowp_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga358d69e11b1c0f6c7c469e0d39ab7fd1">lowp_float</a></td></tr>
-<tr class="separator:ga358d69e11b1c0f6c7c469e0d39ab7fd1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad0fa1e32e8b3552ed63556eca51c620e">lowp_int</a></td></tr>
-<tr class="separator:gad0fa1e32e8b3552ed63556eca51c620e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3c6aeb4cd3e9a14c85dd4c6f311b1e57">lowp_ivec2</a></td></tr>
-<tr class="separator:ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa040f25233c314adc9560dcdb9dadac2"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa040f25233c314adc9560dcdb9dadac2">lowp_ivec3</a></td></tr>
-<tr class="separator:gaa040f25233c314adc9560dcdb9dadac2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8b7483dc67dc332f9d874c6cf7172203">lowp_ivec4</a></td></tr>
-<tr class="separator:ga8b7483dc67dc332f9d874c6cf7172203"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8ed94bfb5f4e0b2c3b0d49c5be478c85">lowp_mat2</a></td></tr>
-<tr class="separator:ga8ed94bfb5f4e0b2c3b0d49c5be478c85"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab1a0d4d8fd3bb85f6616dac9dbef2981">lowp_mat2x2</a></td></tr>
-<tr class="separator:gab1a0d4d8fd3bb85f6616dac9dbef2981"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8fe30d421bc141fa84ad414b803947d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae8fe30d421bc141fa84ad414b803947d">lowp_mat2x3</a></td></tr>
-<tr class="separator:gae8fe30d421bc141fa84ad414b803947d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad64a0179b75508142a72917854034b9b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad64a0179b75508142a72917854034b9b">lowp_mat2x4</a></td></tr>
-<tr class="separator:gad64a0179b75508142a72917854034b9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6a66118df7e2398a36ca4a8e98ce6783">lowp_mat3</a></td></tr>
-<tr class="separator:ga6a66118df7e2398a36ca4a8e98ce6783"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2542e884ac7d05ada8ebb078b721924"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaa2542e884ac7d05ada8ebb078b721924">lowp_mat3x2</a></td></tr>
-<tr class="separator:gaa2542e884ac7d05ada8ebb078b721924"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab7ca36023fa56d8006341a192ee09260"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gab7ca36023fa56d8006341a192ee09260">lowp_mat3x3</a></td></tr>
-<tr class="separator:gab7ca36023fa56d8006341a192ee09260"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2938621d14e70bc3dc576b4fc1547a7e">lowp_mat3x4</a></td></tr>
-<tr class="separator:ga2938621d14e70bc3dc576b4fc1547a7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gabb754302a1ff8736ec7814d860c9a3c0">lowp_mat4</a></td></tr>
-<tr class="separator:gabb754302a1ff8736ec7814d860c9a3c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac6d04a9590cb7ab62cbe29203dbb9b93">lowp_mat4x2</a></td></tr>
-<tr class="separator:gac6d04a9590cb7ab62cbe29203dbb9b93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafb3dbbc82f8b166867fd21c76eb8db4f">lowp_mat4x3</a></td></tr>
-<tr class="separator:gafb3dbbc82f8b166867fd21c76eb8db4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gafff11cbd0abc762e8a340870a31d5bfa">lowp_mat4x4</a></td></tr>
-<tr class="separator:gafff11cbd0abc762e8a340870a31d5bfa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memItemLeft" align="right" valign="top">typedef detail::lowp_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga25ebc60727fc8b4a1167665f9ecdca97">lowp_uint</a></td></tr>
-<tr class="separator:ga25ebc60727fc8b4a1167665f9ecdca97"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6bfb90b936bbbc67e438bb9ac6910309">lowp_uvec2</a></td></tr>
-<tr class="separator:ga6bfb90b936bbbc67e438bb9ac6910309"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf0049c860a612da9bd3ba9ac9e49e820">lowp_uvec3</a></td></tr>
-<tr class="separator:gaf0049c860a612da9bd3ba9ac9e49e820"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6efcd4574e112cfcda320db58e649ee3"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6efcd4574e112cfcda320db58e649ee3">lowp_uvec4</a></td></tr>
-<tr class="separator:ga6efcd4574e112cfcda320db58e649ee3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51e835b2aa735782f0174328acffa521"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga51e835b2aa735782f0174328acffa521">lowp_vec2</a></td></tr>
-<tr class="separator:ga51e835b2aa735782f0174328acffa521"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaf89f8fb5a06848ea4ec1c3a02813454e">lowp_vec3</a></td></tr>
-<tr class="separator:gaf89f8fb5a06848ea4ec1c3a02813454e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8f9002d3ab660e3171f5cdea1aab8395">lowp_vec4</a></td></tr>
-<tr class="separator:ga8f9002d3ab660e3171f5cdea1aab8395"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1f4f68346474246eb4a9952af49e72b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gae1f4f68346474246eb4a9952af49e72b">mediump_bvec2</a></td></tr>
-<tr class="separator:gae1f4f68346474246eb4a9952af49e72b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0d1778766f17c4329a8c3f2b37f5fab0">mediump_bvec3</a></td></tr>
-<tr class="separator:ga0d1778766f17c4329a8c3f2b37f5fab0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memItemLeft" align="right" valign="top">typedef tvec4< bool, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3f0c27f7ab42f004054a247c93a7bf57">mediump_bvec4</a></td></tr>
-<tr class="separator:ga3f0c27f7ab42f004054a247c93a7bf57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga330077a4cb3707329120b5bddcd7db2d"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga330077a4cb3707329120b5bddcd7db2d">mediump_dmat2</a></td></tr>
-<tr class="separator:ga330077a4cb3707329120b5bddcd7db2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga78987759d40d7cb03ebe948fb1dcd879">mediump_dmat2x2</a></td></tr>
-<tr class="separator:ga78987759d40d7cb03ebe948fb1dcd879"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2569a68be3f1cf56e7e5e0920fe5a246">mediump_dmat2x3</a></td></tr>
-<tr class="separator:ga2569a68be3f1cf56e7e5e0920fe5a246"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaccf963b117beeadf8c5c057000762dd3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaccf963b117beeadf8c5c057000762dd3">mediump_dmat2x4</a></td></tr>
-<tr class="separator:gaccf963b117beeadf8c5c057000762dd3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8091edef9fdf54b1996ae5bd00f847e5">mediump_dmat3</a></td></tr>
-<tr class="separator:ga8091edef9fdf54b1996ae5bd00f847e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6b81830ed1ce3862bcbbf41eccc3890b">mediump_dmat3x2</a></td></tr>
-<tr class="separator:ga6b81830ed1ce3862bcbbf41eccc3890b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5e5de055b7af150796e1c017de84cdb1"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga5e5de055b7af150796e1c017de84cdb1">mediump_dmat3x3</a></td></tr>
-<tr class="separator:ga5e5de055b7af150796e1c017de84cdb1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga187d10ddab0492545b78ea1dd108f28d"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga187d10ddab0492545b78ea1dd108f28d">mediump_dmat3x4</a></td></tr>
-<tr class="separator:ga187d10ddab0492545b78ea1dd108f28d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27be34d618d20fbd70d4c62c21256b0c">mediump_dmat4</a></td></tr>
-<tr class="separator:ga27be34d618d20fbd70d4c62c21256b0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gad4a5b294c54702b7c8e9ee32a451dea9">mediump_dmat4x2</a></td></tr>
-<tr class="separator:gad4a5b294c54702b7c8e9ee32a451dea9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga27b55deeb16fda7262d64dc1fd1a56bc">mediump_dmat4x3</a></td></tr>
-<tr class="separator:ga27b55deeb16fda7262d64dc1fd1a56bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga857947b2eef2c9144c34b8e3031f2f12">mediump_dmat4x4</a></td></tr>
-<tr class="separator:ga857947b2eef2c9144c34b8e3031f2f12"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga388fd99d9ffc7190a4732c35b0c7bfc9">mediump_dvec2</a></td></tr>
-<tr class="separator:ga388fd99d9ffc7190a4732c35b0c7bfc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b4741d444b131ef1fc54b19c37f72be">mediump_dvec3</a></td></tr>
-<tr class="separator:ga0b4741d444b131ef1fc54b19c37f72be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e804226444dfe246133fc6ec4a3912f"><td class="memItemLeft" align="right" valign="top">typedef tvec4< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga3e804226444dfe246133fc6ec4a3912f">mediump_dvec4</a></td></tr>
-<tr class="separator:ga3e804226444dfe246133fc6ec4a3912f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga280c68f537f4b1e03a00b23e62573b98"><td class="memItemLeft" align="right" valign="top">typedef mediump_float_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga280c68f537f4b1e03a00b23e62573b98">mediump_float</a></td></tr>
-<tr class="separator:ga280c68f537f4b1e03a00b23e62573b98"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga212ef8f883878cb7430228a279a7d866"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga212ef8f883878cb7430228a279a7d866">mediump_int</a></td></tr>
-<tr class="separator:ga212ef8f883878cb7430228a279a7d866"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga199cc7c4cfa7c7cadad0c74d2f059aef">mediump_ivec2</a></td></tr>
-<tr class="separator:ga199cc7c4cfa7c7cadad0c74d2f059aef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9b7843453f7ad6ebfa26e50408b8dcf0">mediump_ivec3</a></td></tr>
-<tr class="separator:ga9b7843453f7ad6ebfa26e50408b8dcf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14614613c8e79772c8a6d25dd1c45995"><td class="memItemLeft" align="right" valign="top">typedef tvec4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga14614613c8e79772c8a6d25dd1c45995">mediump_ivec4</a></td></tr>
-<tr class="separator:ga14614613c8e79772c8a6d25dd1c45995"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga57b1e6c49a1432cefa518f13a56c5d47">mediump_mat2</a></td></tr>
-<tr class="separator:ga57b1e6c49a1432cefa518f13a56c5d47"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga1b77963ca2812ac2653624fa0f81ba74">mediump_mat2x2</a></td></tr>
-<tr class="separator:ga1b77963ca2812ac2653624fa0f81ba74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga8c17198123baf6bfb59582ec42a3ca09">mediump_mat2x3</a></td></tr>
-<tr class="separator:ga8c17198123baf6bfb59582ec42a3ca09"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga7e95e348c99ef3d56b87ede14bc90bfe">mediump_mat2x4</a></td></tr>
-<tr class="separator:ga7e95e348c99ef3d56b87ede14bc90bfe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga29d313adfc82fd4179d29a9fd98b1b5b">mediump_mat3</a></td></tr>
-<tr class="separator:ga29d313adfc82fd4179d29a9fd98b1b5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga9fa569295a9bd6ce0825ccb832c8aac9">mediump_mat3x2</a></td></tr>
-<tr class="separator:ga9fa569295a9bd6ce0825ccb832c8aac9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga2f02cb49e386f65817c10ead9bbe7dec">mediump_mat3x3</a></td></tr>
-<tr class="separator:ga2f02cb49e386f65817c10ead9bbe7dec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac7afc5b81d320dbd7bd6a6f07d587e24">mediump_mat3x4</a></td></tr>
-<tr class="separator:gac7afc5b81d320dbd7bd6a6f07d587e24"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6259813853e4253f80c2a08672e9fb6a"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga6259813853e4253f80c2a08672e9fb6a">mediump_mat4</a></td></tr>
-<tr class="separator:ga6259813853e4253f80c2a08672e9fb6a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22194c68bc3d798bb68a22f635558c8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga22194c68bc3d798bb68a22f635558c8d">mediump_mat4x2</a></td></tr>
-<tr class="separator:ga22194c68bc3d798bb68a22f635558c8d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38a01cba69e3db9b1a1056b362519acb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga38a01cba69e3db9b1a1056b362519acb">mediump_mat4x3</a></td></tr>
-<tr class="separator:ga38a01cba69e3db9b1a1056b362519acb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga535614d97234065ab44b2513667c8563"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga535614d97234065ab44b2513667c8563">mediump_mat4x4</a></td></tr>
-<tr class="separator:ga535614d97234065ab44b2513667c8563"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memItemLeft" align="right" valign="top">typedef detail::mediump_uint_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b7e01c52b9e5bf3369761b79b5f4f8e">mediump_uint</a></td></tr>
-<tr class="separator:ga0b7e01c52b9e5bf3369761b79b5f4f8e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga392c0761c8bef616801e0d81a6867ed7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga392c0761c8bef616801e0d81a6867ed7">mediump_uvec2</a></td></tr>
-<tr class="separator:ga392c0761c8bef616801e0d81a6867ed7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga54ae0b7b207b8e7e88841d146d2de12e">mediump_uvec3</a></td></tr>
-<tr class="separator:ga54ae0b7b207b8e7e88841d146d2de12e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memItemLeft" align="right" valign="top">typedef tvec4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga631f5767b9d45c5cd3d0bcd67565b3f7">mediump_uvec4</a></td></tr>
-<tr class="separator:ga631f5767b9d45c5cd3d0bcd67565b3f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac37a3fd0ecdcab044853c039409c9af7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gac37a3fd0ecdcab044853c039409c9af7">mediump_vec2</a></td></tr>
-<tr class="separator:gac37a3fd0ecdcab044853c039409c9af7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga591478a77e4324e0836abc17cbb13e83"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga591478a77e4324e0836abc17cbb13e83">mediump_vec3</a></td></tr>
-<tr class="separator:ga591478a77e4324e0836abc17cbb13e83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memItemLeft" align="right" valign="top">typedef tvec4< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gaae72e97529b8fa4e0341b425d4fe03ae">mediump_vec4</a></td></tr>
-<tr class="separator:gaae72e97529b8fa4e0341b425d4fe03ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
-<tr class="separator:ga91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga0b50b197ff74261a0fad90f4b8d24702">gauss</a> (T x, T ExpectedValue, T StandardDeviation)</td></tr>
+<tr class="separator:ga0b50b197ff74261a0fad90f4b8d24702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00164.html#ga7448f9eb74bb5924f6330ab532f2899c">gauss</a> (tvec2< T, P > const &Coord, tvec2< T, P > const &ExpectedValue, tvec2< T, P > const &StandardDeviation)</td></tr>
+<tr class="separator:ga7448f9eb74bb5924f6330ab532f2899c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Non-GLSL types that are used to define precision-based types. </p>
-<p>The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they <em>do</em> have an effect.</p>
-<p>C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the <a class="el" href="a00165.html">Template types</a> that use a particular precision.</p>
-<p>None of these types make any guarantees about the actual precision used. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga829f39950549881a08c534946c0487e1"></a>
+<p>List of useful common functions. </p>
+<p><<a class="el" href="a00037.html" title="GLM_GTC_functions ">glm/gtc/functions.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga0b50b197ff74261a0fad90f4b8d24702"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2<bool, highp> highp_bvec2</td>
+ <td class="memname">GLM_FUNC_DECL T glm::gauss </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00153">153</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaca7c2a58eb926799c30ad547a290fccf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<bool, highp> highp_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00262">262</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae5f9c57d04b338c9a51a9af39e50795b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<bool, highp> highp_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00357">357</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga65ae7d3b23155712ed8cbd3300be4ec8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, highp> highp_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00466">466</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga518f28c64881fafaaf14ec0d867a9bba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, highp> highp_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00484">484</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf98afd25f7e3e8f1d73bca020d0d8ea6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<double, highp> highp_dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00507">507</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac1c87c16d6dcb7449bc3c779ccdc5c30"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<double, highp> highp_dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00530">530</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga605c7863807ac2e9c2db4cf13405f34d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<double, highp> highp_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00576">576</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab2d4fd5cd286baff8364a7a3f60c8a21"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<double, highp> highp_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00553">553</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2d7911a43241a5ce2472421255e5930f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<double, highp> highp_dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00594">594</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga51bfd2f3f5a12464d5934323db9116e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<double, highp> highp_dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00617">617</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4607e33c40a3c03256e0bf9c586b456a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, highp> highp_dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00686">686</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5ee028f50629bf451973b3a910973357"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<double, highp> highp_dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00640">640</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafe7eea5b2a20477b5634e340ea5ec28a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<double, highp> highp_dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00663">663</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga83ab0b8b8b50cbf945237dc8f5322432"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, highp> highp_dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00704">704</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga435eb408e8dfa4f7185368109d432c14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<double, highp> highp_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00090">90</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga01d2c9b292e27518e4d6f8442607e8aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<double, highp> highp_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00200">200</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5d454f34d819d90b9bbb30dcb9ed7b39"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<double, highp> highp_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00303">303</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e95694987ba35af6f736638be39626a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_float_t highp_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00070">70</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaabe7eb044941ebf308b53a447d692dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::highp_int_t highp_int</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00258">258</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa015a3707413de20c03948308dba2f2e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<int, highp> highp_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00111">111</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8330bf0d7e6d03ca12ee2b1334c2c30f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<int, highp> highp_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00221">221</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0424a75bb400571489b8528897f35258"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<int, highp> highp_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00321">321</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga11c1eb1d307846d5bee7d7c0d8c386f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, highp > highp_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00079">79</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae6a747cfc33928652abcb1347712b231"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, highp > highp_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00100">100</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9dfd75b5b17b89ccbecbdd6201efc74b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3< float, highp > highp_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00126">126</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga03fe2f9a84c61cc0f08b324a27d9b493"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4< float, highp > highp_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00152">152</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaac1bde847d053902c27bad811b76e9fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, highp > highp_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00204">204</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6b00cd7956ac2ee3d4f3ab3b549b564a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2< float, highp > highp_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00178">178</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga223de5d0549b215566dfb977d4bb45bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, highp > highp_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00225">225</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga117d8a040e738396a3d60368605623d2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4< float, highp > highp_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00251">251</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabace1eeb2fac7d73a7faaecf33f352d0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, highp > highp_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00330">330</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaeea75c96b308be4114e0badf49f58075"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2< float, highp > highp_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00277">277</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga046e59c57aaa185a8b0b012164ce707f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3< float, highp > highp_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00303">303</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa72822d91f0dceb4dcaaec550cbfeead"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, highp > highp_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of high precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00351">351</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73e8a694d7fc69143cf25161d18d1dcf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::highp_uint_t highp_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00279">279</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa0eed70387a998c3eca2f4e45f3efaad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<uint, highp> highp_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00132">132</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf564d5be1e65bd2204754043b218c9a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<uint, highp> highp_uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00242">242</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga61359f5531550e45871a97589d8dcce1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<uint, highp> highp_uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00339">339</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabfc3e9f63cc3e2ee0521405277ef3997"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< float, highp > highp_vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00069">69</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b31b02c5558e2f8e5d8439ae3803d3a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< float, highp > highp_vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00179">179</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade7cb496ed3d78b2a11f1651cce77239"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< float, highp > highp_vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of high single-precision floating-point numbers. </p>
-<p>High Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00285">285</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28dcda102dd8c94ec500ee786af7a30a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<bool, lowp> lowp_bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00167">167</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga76c0948546deeeb18bfda36f18b3e673"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<bool, lowp> lowp_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00274">274</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafa2087ead0d0e2a3c907e3fbd99f4d85"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<bool, lowp> lowp_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00369">369</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae0a526a0143fc69d7b317c078d591654"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, lowp> lowp_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00454">454</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga000c064e4eba15bf83f8e1e393a8e7fd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, lowp> lowp_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00472">472</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaf2d7cf98b74a43fc432725887685dc0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<double, lowp> lowp_dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00495">495</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ac69e9ed1addf122f51396f73cdbbf3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<double, lowp> lowp_dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00518">518</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga19b0c9580b447443cf3fe589bd661e03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<float, lowp> lowp_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00564">564</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27ccd1bcb24920508a7b6a24bd9265ab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<double, lowp> lowp_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00541">541</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae37a4275ffa68d0c3527a345e76598c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<double, lowp> lowp_dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00582">582</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga813bff547772bcefebc026e5deba0fe3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<double, lowp> lowp_dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00605">605</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaac3aee10bee5fa5206de8bf024a8b301"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, lowp> lowp_dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00674">674</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga05c2d27aeca091e369fca027e72177e8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<double, lowp> lowp_dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00628">628</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2b5b1b810f3b9988f49f985387e35e03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<double, lowp> lowp_dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00651">651</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaea9e20c3668305cf0de5334d217408d9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, lowp> lowp_dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00692">692</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96eb13864627c7c832b5af36aa73bda6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<double, lowp> lowp_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00104">104</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf7ec7b1cefeeaf63659460ef52fd06a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<double, lowp> lowp_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00214">214</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab5d6a45e1bbb13314b47793865a4c072"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<double, lowp> lowp_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00315">315</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga358d69e11b1c0f6c7c469e0d39ab7fd1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef lowp_float_t lowp_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00056">56</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad0fa1e32e8b3552ed63556eca51c620e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::lowp_int_t lowp_int</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00244">244</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c6aeb4cd3e9a14c85dd4c6f311b1e57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<int, lowp> lowp_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00125">125</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa040f25233c314adc9560dcdb9dadac2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<int, lowp> lowp_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00235">235</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8b7483dc67dc332f9d874c6cf7172203"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<int, lowp> lowp_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00333">333</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ed94bfb5f4e0b2c3b0d49c5be478c85"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, lowp > lowp_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00065">65</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab1a0d4d8fd3bb85f6616dac9dbef2981"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, lowp > lowp_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00086">86</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8fe30d421bc141fa84ad414b803947d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3< float, lowp > lowp_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00112">112</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad64a0179b75508142a72917854034b9b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4< float, lowp > lowp_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00138">138</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6a66118df7e2398a36ca4a8e98ce6783"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, lowp > lowp_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00190">190</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa2542e884ac7d05ada8ebb078b721924"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2< float, lowp > lowp_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00164">164</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab7ca36023fa56d8006341a192ee09260"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, lowp > lowp_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00211">211</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2938621d14e70bc3dc576b4fc1547a7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4< float, lowp > lowp_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00237">237</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabb754302a1ff8736ec7814d860c9a3c0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, lowp > lowp_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00316">316</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac6d04a9590cb7ab62cbe29203dbb9b93"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2< float, lowp > lowp_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00263">263</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb3dbbc82f8b166867fd21c76eb8db4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3< float, lowp > lowp_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00289">289</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafff11cbd0abc762e8a340870a31d5bfa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, lowp > lowp_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of low precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00337">337</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga25ebc60727fc8b4a1167665f9ecdca97"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::lowp_uint_t lowp_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00265">265</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6bfb90b936bbbc67e438bb9ac6910309"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<uint, lowp> lowp_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00146">146</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf0049c860a612da9bd3ba9ac9e49e820"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<uint, lowp> lowp_uvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00256">256</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6efcd4574e112cfcda320db58e649ee3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<uint, lowp> lowp_uvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00351">351</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga51e835b2aa735782f0174328acffa521"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< float, lowp > lowp_vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00083">83</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf89f8fb5a06848ea4ec1c3a02813454e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< float, lowp > lowp_vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00193">193</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8f9002d3ab660e3171f5cdea1aab8395"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< float, lowp > lowp_vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of low single-precision floating-point numbers. </p>
-<p>Low single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00297">297</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae1f4f68346474246eb4a9952af49e72b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<bool, mediump> mediump_bvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision bool numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00160">160</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0d1778766f17c4329a8c3f2b37f5fab0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<bool, mediump> mediump_bvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00268">268</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f0c27f7ab42f004054a247c93a7bf57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<bool, mediump> mediump_bvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium precision bool numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00363">363</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga330077a4cb3707329120b5bddcd7db2d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, mediump> mediump_dmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00460">460</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga78987759d40d7cb03ebe948fb1dcd879"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<double, mediump> mediump_dmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00478">478</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2569a68be3f1cf56e7e5e0920fe5a246"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<double, mediump> mediump_dmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00501">501</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaccf963b117beeadf8c5c057000762dd3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<double, mediump> mediump_dmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00524">524</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8091edef9fdf54b1996ae5bd00f847e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<double, mediump> mediump_dmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00570">570</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6b81830ed1ce3862bcbbf41eccc3890b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<double, mediump> mediump_dmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00547">547</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5e5de055b7af150796e1c017de84cdb1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<double, mediump> mediump_dmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00588">588</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga187d10ddab0492545b78ea1dd108f28d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<double, mediump> mediump_dmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00611">611</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27be34d618d20fbd70d4c62c21256b0c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, mediump> mediump_dmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00680">680</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad4a5b294c54702b7c8e9ee32a451dea9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<double, mediump> mediump_dmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00634">634</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga27b55deeb16fda7262d64dc1fd1a56bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<double, mediump> mediump_dmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00657">657</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga857947b2eef2c9144c34b8e3031f2f12"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<double, mediump> mediump_dmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00698">698</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga388fd99d9ffc7190a4732c35b0c7bfc9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<double, mediump> mediump_dvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00097">97</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0b4741d444b131ef1fc54b19c37f72be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<double, mediump> mediump_dvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium double-precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00207">207</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3e804226444dfe246133fc6ec4a3912f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<double, mediump> mediump_dvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00309">309</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga280c68f537f4b1e03a00b23e62573b98"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_float_t mediump_float</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.4 Floats</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00063">63</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga212ef8f883878cb7430228a279a7d866"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::mediump_int_t mediump_int</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>ExpectedValue</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision signed integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00251">251</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga199cc7c4cfa7c7cadad0c74d2f059aef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<int, mediump> mediump_ivec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00118">118</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9b7843453f7ad6ebfa26e50408b8dcf0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3<int, mediump> mediump_ivec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision signed integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00228">228</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga14614613c8e79772c8a6d25dd1c45995"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4<int, mediump> mediump_ivec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium precision signed integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00327">327</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga57b1e6c49a1432cefa518f13a56c5d47"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, mediump > mediump_mat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00072">72</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b77963ca2812ac2653624fa0f81ba74"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< float, mediump > mediump_mat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00093">93</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8c17198123baf6bfb59582ec42a3ca09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3< float, mediump > mediump_mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00119">119</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7e95e348c99ef3d56b87ede14bc90bfe"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4< float, mediump > mediump_mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00145">145</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga29d313adfc82fd4179d29a9fd98b1b5b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, mediump > mediump_mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00197">197</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9fa569295a9bd6ce0825ccb832c8aac9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2< float, mediump > mediump_mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00171">171</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2f02cb49e386f65817c10ead9bbe7dec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< float, mediump > mediump_mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00218">218</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac7afc5b81d320dbd7bd6a6f07d587e24"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4< float, mediump > mediump_mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00244">244</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6259813853e4253f80c2a08672e9fb6a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, mediump > mediump_mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00323">323</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga22194c68bc3d798bb68a22f635558c8d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2< float, mediump > mediump_mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 2 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00270">270</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga38a01cba69e3db9b1a1056b362519acb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3< float, mediump > mediump_mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 3 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00296">296</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga535614d97234065ab44b2513667c8563"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< float, mediump > mediump_mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 columns of 4 components matrix of medium precision floating-point numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.6 Matrices</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00120_source.html#l00344">344</a> of file <a class="el" href="a00120_source.html">type_mat.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0b7e01c52b9e5bf3369761b79b5f4f8e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::mediump_uint_t mediump_uint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision unsigned integer. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00272">272</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga392c0761c8bef616801e0d81a6867ed7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2<uint, mediump> mediump_uvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00139">139</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga54ae0b7b207b8e7e88841d146d2de12e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3<uint, mediump> mediump_uvec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>StandardDeviation</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium precision unsigned integer numbers. </p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00249">249</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga631f5767b9d45c5cd3d0bcd67565b3f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4<uint, mediump> mediump_uvec4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>4 components vector of medium precision unsigned integer numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00345">345</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
+<p>1D gauss function </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac37a3fd0ecdcab044853c039409c9af7"></a>
+<a class="anchor" id="ga7448f9eb74bb5924f6330ab532f2899c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2< float, mediump > mediump_vec2</td>
+ <td class="memname">GLM_FUNC_DECL T glm::gauss </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Coord</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>2 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 2 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00076">76</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga591478a77e4324e0836abc17cbb13e83"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3< float, mediump > mediump_vec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>ExpectedValue</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>3 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 3 components.</p>
-<p>There is no guarantee on the actual precision.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00186">186</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaae72e97529b8fa4e0341b425d4fe03ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4< float, mediump > mediump_vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>StandardDeviation</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>4 components vector of medium single-precision floating-point numbers. </p>
-<p>Medium Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.5 Vectors</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier</a></dd>
-<dd>
-<a class="el" href="a00164.html" title="Non-GLSL types that are used to define precision-based types. ">Precision types</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00132_source.html#l00291">291</a> of file <a class="el" href="a00132_source.html">type_vec.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91ad9478d81a7aaf2593e8d9c3d06a14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef unsigned int uint</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 4.1.3 Integers</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00308">308</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
+<p>2D gauss function </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00163.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00165.html b/doc/api/a00165.html
index 923fb4c..5cde36e 100644
--- a/doc/api/a00165.html
+++ b/doc/api/a00165.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Template types</title>
+<title>0.9.8: GLM_GTC_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,249 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">Template types<div class="ingroups"><a class="el" href="a00162.html">GLM Core</a></div></div> </div>
+<div class="title">GLM_GTC_integer<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>The generic template types used as the basis for the core types. </p>
-<p>These types are all templates used to define the actual <a class="el" href="a00163.html">Types</a>. These templetes are implementation details of GLM types and should not be used explicitly. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< int, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga0a42ffb863cc980e91f98d2f5766de20">iround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga0a42ffb863cc980e91f98d2f5766de20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
+<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
+<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
+<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gab61b8546aafdf58f119eb892b212607c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00165.html#gab61b8546aafdf58f119eb892b212607c">uround</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gab61b8546aafdf58f119eb892b212607c"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Allow to perform bit operations on integer values. </p>
+<p><<a class="el" href="a00044.html" title="GLM_GTC_integer ">glm/gtc/integer.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga0a42ffb863cc980e91f98d2f5766de20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<int, P> glm::iround </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>The values of the argument must be greater or equal to zero. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>floating point scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9bd682e74bfacb005c735305207ec417"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::log2 </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the log2 of x for integer values. </p>
+<p>Can be reliably using to compute mipmap count from the texture size. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75c6fd2a143fc44e5f7b871abad539e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::mod </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genIUType</td><td>Integer-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac76ae7d82ff22526bcf6d6a1b51af6c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType< T, P > mod </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf5ae5330f6b30b4a35fb95f9a73d6134"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType< T, P > mod </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modulus. </p>
+<p>Returns x % y for each component in x using the floating point value y.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab61b8546aafdf58f119eb892b212607c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<uint, P> glm::uround </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a value equal to the nearest integer to x. </p>
+<p>The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>The values of the argument must be greater or equal to zero. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>floating point scalar types. </td></tr>
+ <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a> </dd>
+<dd>
+<a class="el" href="a00165.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00166.html b/doc/api/a00166.html
index 9b847ec..cc9c799 100644
--- a/doc/api/a00166.html
+++ b/doc/api/a00166.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_bitfield</title>
+<title>0.9.8: GLM_GTC_matrix_access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,456 +39,44 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_bitfield<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_access<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad789042e84e8292ae95dc1af856f2ad5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad789042e84e8292ae95dc1af856f2ad5">bitfieldFillOne</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:gad789042e84e8292ae95dc1af856f2ad5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaddba3196316b0bd240295b09b43c2958"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaddba3196316b0bd240295b09b43c2958">bitfieldFillZero</a> (vecType< T, P > const &Value, int FirstBit, int BitCount)</td></tr>
-<tr class="separator:gaddba3196316b0bd240295b09b43c2958"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
-<tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
-<tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
-<tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
-<tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
-<tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
-<tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
-<tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
-<tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
-<tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
-<tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
-<tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
-<tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
-<tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
-<tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
-<tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00166.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
-<tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
-<tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga410d130917d85b865718e3ebc32cf0ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga410d130917d85b865718e3ebc32cf0ef">bitfieldRotateLeft</a> (vecType< T, P > const &In, int Shift)</td></tr>
-<tr class="separator:ga410d130917d85b865718e3ebc32cf0ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
-<tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96b56fd2adad1eeaee9e10dfe83904ba">bitfieldRotateRight</a> (vecType< T, P > const &In, int Shift)</td></tr>
-<tr class="separator:ga96b56fd2adad1eeaee9e10dfe83904ba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
-<tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecIUType> </td></tr>
-<tr class="memitem:ga073dbd8642f550b51da3572541431c1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecIUType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga073dbd8642f550b51da3572541431c1c">mask</a> (vecIUType< T, P > const &v)</td></tr>
-<tr class="separator:ga073dbd8642f550b51da3572541431c1c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &m, length_t index, typename genType::col_type const &x)</td></tr>
+<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &m, length_t index)</td></tr>
+<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00166.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &m, length_t index, typename genType::row_type const &x)</td></tr>
+<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p><<a class="el" href="a00009.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/bitfield.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defines functions to access rows or columns of a matrix easily. </p>
+<p><<a class="el" href="a00061.html" title="GLM_GTC_matrix_access ">glm/gtc/matrix_access.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga46f9295abe3b5c7658f5b13c7f819f0a"></a>
+<a class="anchor" id="ga96022eb0d3fae39d89fc7a954e59b374"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillOne </td>
+ <td class="memname">GLM_FUNC_DECL genType::col_type glm::column </td>
<td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>BitCount</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 1 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad789042e84e8292ae95dc1af856f2ad5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillOne </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>BitCount</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 1 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga697b86998b7d74ee0a69d8e9f8819fee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldFillZero </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>BitCount</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 0 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaddba3196316b0bd240295b09b43c2958"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldFillZero </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>FirstBit</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>BitCount</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Set to 0 a range of bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga24cad0069f9a0450abd80b3e89501adf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int16 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9a4976a529aec2cee56525e1165da484"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac51c33a394593f0631fa3aa5bb778809"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga94f3646a5667f4be56f8dcf3310e963f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaebb756a24a0784e3d6fba8bd011ab77a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2f1e2b3fe699e7d897ae38b2115ddcbd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x and y. </p>
-<p>The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8fdb724dccd4a07d57efc01147102137"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9fc2a0dd5dcf8b00e113f272a5feca93"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>z</em> </td>
+ <td class="paramtype">length_t </td>
+ <td class="paramname"><em>index</em> </td>
</tr>
<tr>
<td></td>
@@ -498,33 +86,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Get a specific column of a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa901c36a842fa5d126ea650549f17b24"></a>
+<a class="anchor" id="ga9e757377523890e8b80c5843dbe4dd15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::column </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">length_t </td>
+ <td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>z</em> </td>
+ <td class="paramtype">typename genType::col_type const & </td>
+ <td class="paramname"><em>x</em> </td>
</tr>
<tr>
<td></td>
@@ -534,189 +121,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Set a specific column to a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3afd6d38881fe3948c53d4214d2197fd"></a>
+<a class="anchor" id="ga259e5ebd0f31ec3f83440f8cae7f5dba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType::row_type glm::row </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad2075d96a6640121edaa98ea534102ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab19fbc739fc0cf7247978602c36f7da8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y and z. </p>
-<p>The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8a44ae22f5c953b296c42d067dccbe6d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga14bb274d54a3c26f4919dd7ed0dd0c36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>w</em> </td>
+ <td class="paramtype">length_t </td>
+ <td class="paramname"><em>index</em> </td>
</tr>
<tr>
<td></td>
@@ -726,39 +150,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Get a specific row of a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga180a63161e1319fbd5a53c84d0429c7a"></a>
+<a class="anchor" id="gaadcc64829aadf4103477679e48c7594f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int64 glm::bitfieldInterleave </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::row </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">length_t </td>
+ <td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname"><em>w</em> </td>
+ <td class="paramtype">typename genType::row_type const & </td>
+ <td class="paramname"><em>x</em> </td>
</tr>
<tr>
<td></td>
@@ -768,209 +185,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafca8768671a14c8016facccb66a89f26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::bitfieldInterleave </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Interleaves the bits of x, y, z and w. </p>
-<p>The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2eb49678a344ce1495bdb5586d9896b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Shift</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the left. </p>
-<p>All the bits dropped in the left side are inserted back on the right side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga410d130917d85b865718e3ebc32cf0ef"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateLeft </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Shift</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the left. </p>
-<p>All the bits dropped in the left side are inserted back on the right side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1c33d075c5fb8bd8dbfd5092bfc851ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::bitfieldRotateRight </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Shift</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the right. </p>
-<p>All the bits dropped in the right side are inserted back on the left side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga96b56fd2adad1eeaee9e10dfe83904ba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::bitfieldRotateRight </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>In</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>Shift</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate all bits to the right. </p>
-<p>All the bits dropped in the right side are inserted back on the left side.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad7eba518a0b71662114571ee76939f8a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::mask </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Bits</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a mask of 'count' bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga073dbd8642f550b51da3572541431c1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecIUType<T, P> glm::mask </td>
- <td>(</td>
- <td class="paramtype">vecIUType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a mask of 'count' bits. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_bitfield</a> </dd></dl>
+<p>Set a specific row to a matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00166.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00167.html b/doc/api/a00167.html
index 56226c3..8e44c1b 100644
--- a/doc/api/a00167.html
+++ b/doc/api/a00167.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_color_space</title>
+<title>0.9.8: GLM_GTC_matrix_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,34 +37,1843 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_color_space<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_integer<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad813dcd99644cafc775e83d6504ccb93"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad813dcd99644cafc775e83d6504ccb93"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#gad813dcd99644cafc775e83d6504ccb93">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear)</td></tr>
-<tr class="separator:gad813dcd99644cafc775e83d6504ccb93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63f8b003da7acf44370eb47bfb8b3d42"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga63f8b003da7acf44370eb47bfb8b3d42">convertLinearToSRGB</a> (vecType< T, P > const &ColorLinear, T Gamma)</td></tr>
-<tr class="separator:ga63f8b003da7acf44370eb47bfb8b3d42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga28e98e64347cf385cadc1ceb4def55c9"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga28e98e64347cf385cadc1ceb4def55c9">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB)</td></tr>
-<tr class="separator:ga28e98e64347cf385cadc1ceb4def55c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga61c4f0efdf55c29d9cfbd26141fddef8"></a>
-template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00167.html#ga61c4f0efdf55c29d9cfbd26141fddef8">convertSRGBToLinear</a> (vecType< T, P > const &ColorSRGB, T Gamma)</td></tr>
-<tr class="separator:ga61c4f0efdf55c29d9cfbd26141fddef8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
+<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
+<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
+<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
+<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
+<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
+<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
+<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
+<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
+<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
+<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
+<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
+<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
+<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
+<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
+<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
+<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
+<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
+<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
+<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
+<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
+<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
+<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
+<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
+<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
+<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
+<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
+<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
+<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
+<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
+<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
+<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
+<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
+<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
+<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
+<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
+<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
+<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
+<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
+<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
+<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
+<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
+<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
+<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
+<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
+<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
+<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
+<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
+<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
+<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
+<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
+<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
+<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
+<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
+<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
+<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
+<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
+<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
+<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
+<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
+<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
+<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
+<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
+<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
+<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
+<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
+<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
+<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
+<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
+<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
+<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
+<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
+<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
+<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
+<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
+<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
+<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
+<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
+<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
+<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
+<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
+<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
+<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
+<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
+<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
+<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
+<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
+<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
+<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
+<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
+<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
+<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
+<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
+<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
+<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
+<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00167.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
+<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p><glm/gtc/color.hpp> need to be included to use these functionalities. </p>
+<p>Defines a number of matrices with integer types. </p>
+<p><<a class="el" href="a00064.html" title="GLM_GTC_matrix_integer ">glm/gtc/matrix_integer.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gaa9f8144beebdefd85e2a9ac480e7608a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, highp> highp_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00036">36</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac455e55e7cb32e31396a9d4613da046a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, highp> highp_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00048">48</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5f5f1e6dc06b72216463a425b2f7613e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<int, highp> highp_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00052">52</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73b855cc40e5d8202b7ab38461326d65"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<int, highp> highp_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00056">56</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4efd6470c0edf9704d2244fc92dbc2a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, highp> highp_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00040">40</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0413bf87605b9247be2533c439127a1c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<int, highp> highp_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00060">60</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacce460d54216438bb577bf8c9d68299c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, highp> highp_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00064">64</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4fea24b4100e21ed7742c91e5458d49"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<int, highp> highp_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00068">68</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga159ce04cc638ff4db755542cd8f758cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, highp> highp_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00044">44</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7d43dd8332000f7f19379efa1b303599"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<int, highp> highp_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00072">72</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c66b9b7c10a6017a58a03489c8d4c73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<int, highp> highp_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00076">76</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae53db595d36f49a299e180302795e3c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, highp> highp_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00080">80</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae7b96c808a36fbe87f41af1c77b7941c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, highp> highp_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00185">185</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4860b4b01430bdb70643808c8d3bf5cb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, highp> highp_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00197">197</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac351446661e5a8168473ff7b3b5ac3b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<uint, highp> highp_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00201">201</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga815eb9fdf70edc45687cbcda07e97213"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<uint, highp> highp_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00205">205</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa60b19d7cadbaa56bed1e6e0047af147"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, highp> highp_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00189">189</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab1d8e627b6a0b21c9b5e599a89132d8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<uint, highp> highp_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00209">209</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf71e9abe57bcfd18b4b003421e306aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, highp> highp_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00213">213</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6edbf193ad6c4309e31262165f2655e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<uint, highp> highp_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00217">217</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8368cb49cb0bd5ac682a71d1eccc9a8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, highp> highp_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00193">193</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaaba8a59eac3e5c0b3aaa9b35c1f10292"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<uint, highp> highp_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00221">221</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga899a376888652fe3c03718641812bb27"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<uint, highp> highp_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00225">225</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab8068521c0ad6990373d27d87d333084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, highp> highp_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00229">229</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2 imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00361">361</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x2 imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00373">373</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x3 imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00377">377</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat2x4 imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00381">381</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3 imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00365">365</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x2 imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00385">385</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x3 imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00389">389</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat3x4 imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00393">393</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4 imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00369">369</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x2 imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00397">397</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x3 imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00401">401</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_imat4x4 imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00405">405</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c035fec7db0d671ec8f9f1f0d05bed0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, lowp> lowp_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00135">135</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5bfe58853451fbc1f1ef6ce1f93c5e31"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, lowp> lowp_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00148">148</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f8fb92b62e31528886cc728d3404ecc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<int, lowp> lowp_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00152">152</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga892b53e26d36763f380b08a5768dee6b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<int, lowp> lowp_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00156">156</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga148f3a81d15a570b9460158e6964f41c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, lowp> lowp_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00139">139</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7655dfee0d726e80d7a3b72f46d5fd35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<int, lowp> lowp_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00160">160</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab3d5c6aaeb5815f8f080305888f6828f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, lowp> lowp_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00164">164</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3d913d70c629aa7ad504739286328f1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<int, lowp> lowp_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00168">168</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad3d7b23bdb4ed9b7d53c9db792db9bb4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, lowp> lowp_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00143">143</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3fdfce509d30bdd7778b8b156cb968df"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<int, lowp> lowp_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00172">172</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6a9945878f99294cfde40c6c3a867d69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<int, lowp> lowp_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00176">176</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga330140b22a9449caab308f2c69bf4c80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, lowp> lowp_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00180">180</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1406406e396b56bde3c7c0722f657064"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, lowp> lowp_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00284">284</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1f0cea730f6c13b16e511bd2d63507a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, lowp> lowp_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00297">297</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa86bd9dc8463b46a46ee944948111676"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<uint, lowp> lowp_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00301">301</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b6c64600bad79d735fa6bec843b2bb4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<uint, lowp> lowp_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00305">305</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7fc1f795f2abd0020c7b5204f4c83033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, lowp> lowp_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00288">288</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad73943020bb49a072317ecfc52d587f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<uint, lowp> lowp_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00309">309</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga402d169fc3cdca5f3ea47a358a7b7c67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, lowp> lowp_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00313">313</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2dce1c00ed50fd09fe349de3713d96db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<uint, lowp> lowp_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00317">317</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafe68c1cf2b379a9a11d1a11c9c2f8884"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, lowp> lowp_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00292">292</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga76cab31d492ea214c693ab9132b4de95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<uint, lowp> lowp_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00321">321</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae3ca9e28a9d2e5fce5e28593d27e370d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<uint, lowp> lowp_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00325">325</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga742be484e56e08ef637f8ec4ab7c8bb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, lowp> lowp_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00329">329</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3f8e55e14a6fc61850f8c0df9b4ff655"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, mediump> mediump_imat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00085">85</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabc572d47b60f7e595d7aad945f5d13a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<int, mediump> mediump_imat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00098">98</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5b7e9af5024e1a164db6419f67ecfc9a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<int, mediump> mediump_imat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00102">102</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa08e27efc514088315ccbaf818f01880"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<int, mediump> mediump_imat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00106">106</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac2b0985b576fe0eba47227499aed2b3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, mediump> mediump_imat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00089">89</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1a61c706b31aa60fd7012b2b27765983"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<int, mediump> mediump_imat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00110">110</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga05064e28b911be1af0503ddf6e6204a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<int, mediump> mediump_imat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00114">114</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e0f797a57fec255f0eec7da1511bc38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<int, mediump> mediump_imat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00118">118</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga551ad2e4e0304c67451ffbadeef0d615"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, mediump> mediump_imat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00093">93</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1582c5dc83e49a7e53bb0b94bef9de54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<int, mediump> mediump_imat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00122">122</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1526c62951b04f5cd73f541f7b3b7d8d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<int, mediump> mediump_imat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00126">126</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga655bfcca624f422aff308dcc99688ce8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<int, mediump> mediump_imat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision signed integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00130">130</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7322b97f1be10c83290ab57ef784d493"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, mediump> mediump_umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00234">234</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0ffed083b64e4f764db0f446d2c49163"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2<uint, mediump> mediump_umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00247">247</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7ecc585b71766cfa96bd54a595bea1fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3<uint, mediump> mediump_umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00251">251</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac4abd549f2e521c7f40f53b6235c450e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4<uint, mediump> mediump_umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00255">255</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga93961d3aac6efa36dc3f9cfa7e9056e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, mediump> mediump_umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00238">238</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3fb358a947f8ceaefddd75bce22cd947"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2<uint, mediump> mediump_umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00259">259</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad4809dbfb1bfcf222d7b34a97a8eafe5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3<uint, mediump> mediump_umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00263">263</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5a9d62e44668ca2222f0362f9c99d9cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4<uint, mediump> mediump_umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00267">267</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac23667a99ae1ec649b5e55cd5a05b833"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, mediump> mediump_umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00242">242</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac8d1db85d62244fd90d240227c7f51ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2<uint, mediump> mediump_umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00271">271</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7d332d462f2c1ad5a65dc580d3d1aa39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3<uint, mediump> mediump_umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00275">275</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga24716579cf155f4e042542808f83978c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4<uint, mediump> mediump_umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium-precision unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00279">279</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2 umat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00438">438</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x2 umat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00450">450</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x3 umat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00454">454</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat2x4 umat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00458">458</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3 umat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00442">442</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x2 umat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00462">462</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x3 umat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00466">466</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat3x4 umat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00470">470</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4 umat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00446">446</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x2 umat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00474">474</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x3 umat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00478">478</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef mediump_umat4x4 umat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unsigned integer 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00167.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00064_source.html#l00482">482</a> of file <a class="el" href="a00064_source.html">matrix_integer.hpp</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00168.html b/doc/api/a00168.html
index ddf1366..b821ea3 100644
--- a/doc/api/a00168.html
+++ b/doc/api/a00168.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_constants</title>
+<title>0.9.8: GLM_GTC_matrix_inverse</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,623 +39,82 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_constants<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_inverse<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab83fb6de0f05d6c0d11bdf0479f8319e">e</a> ()</td></tr>
-<tr class="separator:gab83fb6de0f05d6c0d11bdf0479f8319e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gacb41049b8d22c8aa90e362b96c524feb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gacb41049b8d22c8aa90e362b96c524feb">epsilon</a> ()</td></tr>
-<tr class="separator:gacb41049b8d22c8aa90e362b96c524feb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga6f14b46653b7ead1edcbd0fc6c9c5289">euler</a> ()</td></tr>
-<tr class="separator:ga6f14b46653b7ead1edcbd0fc6c9c5289"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafb68d06c9c9dc234210ce91d6707faac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafb68d06c9c9dc234210ce91d6707faac">four_over_pi</a> ()</td></tr>
-<tr class="separator:gafb68d06c9c9dc234210ce91d6707faac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafd53093ef2d756333865d774bea3cdf9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gafd53093ef2d756333865d774bea3cdf9">golden_ratio</a> ()</td></tr>
-<tr class="separator:gafd53093ef2d756333865d774bea3cdf9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga7f7a1050729f3b03b1873a06ba4a472f">half_pi</a> ()</td></tr>
-<tr class="separator:ga7f7a1050729f3b03b1873a06ba4a472f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga650774609debe4a90bcac449b574de2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga650774609debe4a90bcac449b574de2c">ln_ln_two</a> ()</td></tr>
-<tr class="separator:ga650774609debe4a90bcac449b574de2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga48addf0cb0980277d208a71a1c59c073"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga48addf0cb0980277d208a71a1c59c073">ln_ten</a> ()</td></tr>
-<tr class="separator:ga48addf0cb0980277d208a71a1c59c073"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga22fae798430edc3022766af4fd83e8a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga22fae798430edc3022766af4fd83e8a4">ln_two</a> ()</td></tr>
-<tr class="separator:ga22fae798430edc3022766af4fd83e8a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga8186ec2c330457d41d9686c47cd3b2d1">one</a> ()</td></tr>
-<tr class="separator:ga8186ec2c330457d41d9686c47cd3b2d1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9ba09a027db6d4f4e259b01cf5d6c178">one_over_pi</a> ()</td></tr>
-<tr class="separator:ga9ba09a027db6d4f4e259b01cf5d6c178"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1a9b3248357fd9e9b740bed90e0b1b7">one_over_root_two</a> ()</td></tr>
-<tr class="separator:gac1a9b3248357fd9e9b740bed90e0b1b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gac1e7dcb42b09c66df7a299c0f007b27d">one_over_two_pi</a> ()</td></tr>
-<tr class="separator:gac1e7dcb42b09c66df7a299c0f007b27d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae671930537266a9a650ccb4b88757692"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae671930537266a9a650ccb4b88757692">pi</a> ()</td></tr>
-<tr class="separator:gae671930537266a9a650ccb4b88757692"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga0148d757b4bfda4d86251b8d1ea1dad3">quarter_pi</a> ()</td></tr>
-<tr class="separator:ga0148d757b4bfda4d86251b8d1ea1dad3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gace2b8dfed1ab9fabbb67dde08e7e5b58">root_five</a> ()</td></tr>
-<tr class="separator:gace2b8dfed1ab9fabbb67dde08e7e5b58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaec5af85e2148c118aad7e797430fdeb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gaec5af85e2148c118aad7e797430fdeb0">root_half_pi</a> ()</td></tr>
-<tr class="separator:gaec5af85e2148c118aad7e797430fdeb0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9cae3fad9314e34c1d3aab71fcdef05f">root_ln_four</a> ()</td></tr>
-<tr class="separator:ga9cae3fad9314e34c1d3aab71fcdef05f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga1cfeb345f34f72697d14f4db8d5d4c6c">root_pi</a> ()</td></tr>
-<tr class="separator:ga1cfeb345f34f72697d14f4db8d5d4c6c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab3183635ac615473e2f95852f491be83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab3183635ac615473e2f95852f491be83">root_three</a> ()</td></tr>
-<tr class="separator:gab3183635ac615473e2f95852f491be83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab91b7799f88f9f2be33e385dec11b9c2">root_two</a> ()</td></tr>
-<tr class="separator:gab91b7799f88f9f2be33e385dec11b9c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae991b4d39c57b57990054eec3677597c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae991b4d39c57b57990054eec3677597c">root_two_pi</a> ()</td></tr>
-<tr class="separator:gae991b4d39c57b57990054eec3677597c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabf280496105e0ad070287417f840ebd8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gabf280496105e0ad070287417f840ebd8">third</a> ()</td></tr>
-<tr class="separator:gabf280496105e0ad070287417f840ebd8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga9f3732bc75c0d0892f72e21cfe4f938b">three_over_two_pi</a> ()</td></tr>
-<tr class="separator:ga9f3732bc75c0d0892f72e21cfe4f938b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga85729d38c47351686e8659f80447a7ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga85729d38c47351686e8659f80447a7ea">two_over_pi</a> ()</td></tr>
-<tr class="separator:ga85729d38c47351686e8659f80447a7ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga767e539c20585bf60aa63595b0f0b259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga767e539c20585bf60aa63595b0f0b259">two_over_root_pi</a> ()</td></tr>
-<tr class="separator:ga767e539c20585bf60aa63595b0f0b259"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga00c3f7bc750ff62bbf47c8913a53daa5">two_pi</a> ()</td></tr>
-<tr class="separator:ga00c3f7bc750ff62bbf47c8913a53daa5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gadde7f2efce3b14c8b26944fbafed4a10">two_thirds</a> ()</td></tr>
-<tr class="separator:gadde7f2efce3b14c8b26944fbafed4a10"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5cc97dd01d37fc199264ff6030578435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#ga5cc97dd01d37fc199264ff6030578435">zero</a> ()</td></tr>
-<tr class="separator:ga5cc97dd01d37fc199264ff6030578435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &m)</td></tr>
+<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00168.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &m)</td></tr>
+<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide a list of constants and precomputed useful values. </p>
-<p><<a class="el" href="a00018.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/constants.hpp</a>> need to be included to use these features. </p>
+<p>Defines additional matrix inverting functions. </p>
+<p><<a class="el" href="a00066.html" title="GLM_GTC_matrix_inverse ">glm/gtc/matrix_inverse.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab83fb6de0f05d6c0d11bdf0479f8319e"></a>
+<a class="anchor" id="gae0fcc5fc8783291f9702272de428fa0e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::e </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::affineInverse </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return e constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+<p>Fast matrix inverse for affine matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix to invert. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gacb41049b8d22c8aa90e362b96c524feb"></a>
+<a class="anchor" id="gab213cd0e3ead5f316d583f99d6312008"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::epsilon </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::inverseTranspose </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the epsilon constant for floating point types. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6f14b46653b7ead1edcbd0fc6c9c5289"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::euler </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return Euler's constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafb68d06c9c9dc234210ce91d6707faac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::four_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 4 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd53093ef2d756333865d774bea3cdf9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::golden_ratio </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the golden ratio constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f7a1050729f3b03b1873a06ba4a472f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::half_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga650774609debe4a90bcac449b574de2c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_ln_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(ln(2)). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga48addf0cb0980277d208a71a1c59c073"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_ten </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(10). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22fae798430edc3022766af4fd83e8a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ln_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return ln(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8186ec2c330457d41d9686c47cd3b2d1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ba09a027db6d4f4e259b01cf5d6c178"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac1a9b3248357fd9e9b740bed90e0b1b7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_root_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / sqrt(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac1e7dcb42b09c66df7a299c0f007b27d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::one_over_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / (pi * 2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae671930537266a9a650ccb4b88757692"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the pi constant. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0148d757b4bfda4d86251b8d1ea1dad3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::quarter_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 4. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gace2b8dfed1ab9fabbb67dde08e7e5b58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_five </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(5). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaec5af85e2148c118aad7e797430fdeb0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_half_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(pi / 2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9cae3fad9314e34c1d3aab71fcdef05f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_ln_four </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(ln(4)). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1cfeb345f34f72697d14f4db8d5d4c6c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return square root of pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3183635ac615473e2f95852f491be83"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_three </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(3). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab91b7799f88f9f2be33e385dec11b9c2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_two </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(2). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae991b4d39c57b57990054eec3677597c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::root_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return sqrt(2 * pi). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabf280496105e0ad070287417f840ebd8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::third </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 1 / 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9f3732bc75c0d0892f72e21cfe4f938b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::three_over_two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi / 2 * 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga85729d38c47351686e8659f80447a7ea"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_over_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 2 / pi. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga767e539c20585bf60aa63595b0f0b259"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_over_root_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 2 / sqrt(pi). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga00c3f7bc750ff62bbf47c8913a53daa5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_pi </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return pi * 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadde7f2efce3b14c8b26944fbafed4a10"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::two_thirds </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 2 / 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5cc97dd01d37fc199264ff6030578435"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::zero </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return 0. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Provide a list of constants and precomputed useful values. ">GLM_GTC_constants</a> </dd></dl>
+<p>Compute the inverse transpose of a matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix to invert transpose. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00168.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00169.html b/doc/api/a00169.html
index 7a39e4a..832b7c1 100644
--- a/doc/api/a00169.html
+++ b/doc/api/a00169.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_epsilon</title>
+<title>0.9.8: GLM_GTC_matrix_transform</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,50 +39,1444 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_epsilon<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_matrix_transform<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaca9443f217dc36587624247245522331"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaca9443f217dc36587624247245522331">epsilonEqual</a> (vecType< T, P > const &x, vecType< T, P > const &y, T const &epsilon)</td></tr>
-<tr class="separator:gaca9443f217dc36587624247245522331"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa7f227999ca09e7ca994e8b35aba47bb">epsilonEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
-<tr class="separator:gaa7f227999ca09e7ca994e8b35aba47bb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga14e2888a304654ade8a3996024e2739c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::boolType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga14e2888a304654ade8a3996024e2739c">epsilonNotEqual</a> (genType const &x, genType const &y, typename genType::value_type const &epsilon)</td></tr>
-<tr class="separator:ga14e2888a304654ade8a3996024e2739c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga50a92103fb0cbd796908e1bf20c79aaf">epsilonNotEqual</a> (genType const &x, genType const &y, genType const &epsilon)</td></tr>
-<tr class="separator:ga50a92103fb0cbd796908e1bf20c79aaf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga75b1c1d0ee1f80c1e873605adeb1838c">frustumLH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:ga75b1c1d0ee1f80c1e873605adeb1838c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad0e184273bdacbe769e5cd81069e48ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad0e184273bdacbe769e5cd81069e48ed">frustumRH</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
+<tr class="separator:gad0e184273bdacbe769e5cd81069e48ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga47af534da2b28effa4c7945ec82ccd9d">infinitePerspectiveLH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga47af534da2b28effa4c7945ec82ccd9d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga79575023763df88dff1bf8255a42d0be"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga79575023763df88dff1bf8255a42d0be">infinitePerspectiveRH</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:ga79575023763df88dff1bf8255a42d0be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
+<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
+<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga71503df1e691b12cc2d45e64fd0628fe">orthoLH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:ga71503df1e691b12cc2d45e64fd0628fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gada0aaaee76f1fd3c272698c8eca735a1">orthoRH</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
+<tr class="separator:gada0aaaee76f1fd3c272698c8eca735a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
+<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
+<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template<typename T , precision P, typename U > </td></tr>
+<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
+<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
+<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00169.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
+<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Comparison functions for a user defined epsilon values. </p>
-<p><<a class="el" href="a00020.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/epsilon.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defines functions that generate common transformation matrices. </p>
+<p>The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.</p>
+<p><<a class="el" href="a00070.html" title="GLM_GTC_matrix_transform ">glm/gtc/matrix_transform.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaca9443f217dc36587624247245522331"></a>
+<a class="anchor" id="gada6deb989d4b553fe0f7e3279f3afae1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::epsilonEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::frustum </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a frustum matrix with default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75b1c1d0ee1f80c1e873605adeb1838c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::frustumLH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a left handed frustum matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad0e184273bdacbe769e5cd81069e48ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::frustumRH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a right handed frustum matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">near</td><td></td></tr>
+ <tr><td class="paramname">far</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga79f704ad91a5f0d68abd88c66c8186e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::infinitePerspective </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga47af534da2b28effa4c7945ec82ccd9d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::infinitePerspectiveLH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga79575023763df88dff1bf8255a42d0be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::infinitePerspectiveRH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf8eef81da1ad09f6a8920101c01eaae4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAt </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>up</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a look at view matrix based on the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacd0c077ec7b58a575855e29cb5fb586d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAtLH </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>up</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a left handed look at view matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2876d9313334980b94292d2ec169088e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAtRH </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>eye</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>up</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a right handed look at view matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
+ <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
+ <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga65280251de6e38580110a0577a43d8f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zFar</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga45b1b64f99255c07119b4f1aaed04dd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga71503df1e691b12cc2d45e64fd0628fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::orthoLH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zFar</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using left-handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada0aaaee76f1fd3c272698c8eca735a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::orthoRH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zNear</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>zFar</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for an orthographic parallel viewing volume, using right-handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">left</td><td></td></tr>
+ <tr><td class="paramname">right</td><td></td></tr>
+ <tr><td class="paramname">bottom</td><td></td></tr>
+ <tr><td class="paramname">top</td><td></td></tr>
+ <tr><td class="paramname">zNear</td><td></td></tr>
+ <tr><td class="paramname">zFar</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- glm::ortho(T const & left, T const & right, T const & bottom, T const & top) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac3613dcb6c6916465ad5b7ad5a786175"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspective </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a symetric perspective-view frustum based on the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae9146e2c550fc8646299e4b900238145"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFov </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a perspective projection matrix based on a field of view and the default handedness. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae705a2f19c3ef5ef880bd6c92759cf2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFovLH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a left handed perspective projection matrix based on a field of view. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07cd8df791bf90dcb782645fe0b21261"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFovRH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fov</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>width</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>height</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a right handed perspective projection matrix based on a field of view. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
+ <tr><td class="paramname">width</td><td></td></tr>
+ <tr><td class="paramname">height</td><td></td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga34048da27c559f1ac8e9550d169dd6f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveLH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a left handed, symetric perspective-view frustum. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveRH </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>far</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a matrix for a right handed, symetric perspective-view frustum. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9026c77505b99990f68826f27c267dc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::pickMatrix </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>center</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>delta</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< U, P > const & </td>
+ <td class="paramname"><em>viewport</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Define a picking region. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">center</td><td></td></tr>
+ <tr><td class="paramname">delta</td><td></td></tr>
+ <tr><td class="paramname">viewport</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad743556abd138264d4f06f4ca27f1d7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::project </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>obj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>model</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>proj</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< U, P > const & </td>
+ <td class="paramname"><em>viewport</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">obj</td><td>Specify the object coordinates. </td></tr>
+ <tr><td class="paramname">model</td><td>Specifies the current modelview matrix </td></tr>
+ <tr><td class="paramname">proj</td><td>Specifies the current projection matrix </td></tr>
+ <tr><td class="paramname">viewport</td><td>Specifies the current viewport </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Return the computed window coordinates. </dd></dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga161b1df124348f232d994ba7958e4815"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Rotation axis, recommended to be normalized. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(T angle, tvec3<T, P> const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8f062fcc07e2445500793f2803afebb0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::scale </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this scale matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Ratio of scaling for each axis. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- scale(tmat4x4<T, P> const & m, T x, T y, T z) </dd>
+<dd>
+- scale(tvec3<T, P> const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaee134ab77c6c5548a6ebf4e8e476c6ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
</tr>
<tr>
<td></td>
@@ -92,33 +1486,57 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
-<p>True if this expression is satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. <div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="a00040.html">glm/glm.hpp</a>></span></div>
+<div class="line"><span class="preprocessor">#include <<a class="code" href="a00070.html">glm/gtc/matrix_transform.hpp</a>></span></div>
+<div class="line">...</div>
+<div class="line">glm::mat4 m = <a class="code" href="a00169.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a>(<a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a>(1.0f), <a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a>(1.0f));</div>
+<div class="line"><span class="comment">// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f</span></div>
+<div class="line"><span class="comment">// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f</span></div>
+</div><!-- fragment --> </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+- translate(tmat4x4<T, P> const & m, T x, T y, T z) </dd>
+<dd>
+- translate(tvec3<T, P> const & v) </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7f227999ca09e7ca994e8b35aba47bb"></a>
+<a class="anchor" id="gaed64bd81f5ecdab52fecbdf7f6b58194"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::epsilonEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>epsilon</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em> </td>
</tr>
<tr>
<td></td>
@@ -128,33 +1546,52 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
-<p>True if this expression is satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga14e2888a304654ade8a3996024e2739c"></a>
+<a class="anchor" id="gaa50fce7f50b5d5da881ed30f5532a921"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::boolType glm::epsilonNotEqual </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>fovy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>aspect</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const & </td>
- <td class="paramname"><em>epsilon</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>near</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>ep</em> </td>
</tr>
<tr>
<td></td>
@@ -164,33 +1601,53 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| < epsilon. </p>
-<p>True if this expression is not satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
+ <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
+ <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
+ <tr><td class="paramname">ep</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga50a92103fb0cbd796908e1bf20c79aaf"></a>
+<a class="anchor" id="ga82a558de3ce42cbeed0f6ec292a4e1b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::epsilonNotEqual </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::unProject </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>win</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>proj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>epsilon</em> </td>
+ <td class="paramtype">tvec4< U, P > const & </td>
+ <td class="paramname"><em>viewport</em> </td>
</tr>
<tr>
<td></td>
@@ -200,9 +1657,25 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of |x - y| >= epsilon. </p>
-<p>True if this expression is not satisfied.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Comparison functions for a user defined epsilon values. ">GLM_GTC_epsilon</a> </dd></dl>
+<p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">win</td><td>Specify the window coordinates to be mapped. </td></tr>
+ <tr><td class="paramname">model</td><td>Specifies the modelview matrix </td></tr>
+ <tr><td class="paramname">proj</td><td>Specifies the projection matrix </td></tr>
+ <tr><td class="paramname">viewport</td><td>Specifies the viewport </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Returns the computed object coordinates. </dd></dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00170.html b/doc/api/a00170.html
index d24fc5e..100dc15 100644
--- a/doc/api/a00170.html
+++ b/doc/api/a00170.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_integer</title>
+<title>0.9.8: GLM_GTC_noise</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,103 +39,59 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_integer<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_noise<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga9bd682e74bfacb005c735305207ec417"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga9bd682e74bfacb005c735305207ec417">log2</a> (genIUType x)</td></tr>
-<tr class="separator:ga9bd682e74bfacb005c735305207ec417"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga75c6fd2a143fc44e5f7b871abad539e0">mod</a> (genIUType x, genIUType y)</td></tr>
-<tr class="separator:ga75c6fd2a143fc44e5f7b871abad539e0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gac76ae7d82ff22526bcf6d6a1b51af6c3">mod</a> (vecType< T, P > const &x, T y)</td></tr>
-<tr class="separator:gac76ae7d82ff22526bcf6d6a1b51af6c3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#gaf5ae5330f6b30b4a35fb95f9a73d6134">mod</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaf5ae5330f6b30b4a35fb95f9a73d6134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType< T, P > const &p)</td></tr>
+<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType< T, P > const &p, vecType< T, P > const &rep)</td></tr>
+<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00170.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType< T, P > const &p)</td></tr>
+<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p><<a class="el" href="a00044.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/integer.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> <<a class="el" href="a00073.html" title="GLM_GTC_noise ">glm/gtc/noise.hpp</a>& [...]
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9bd682e74bfacb005c735305207ec417"></a>
+<a class="anchor" id="ga14e5975486b2b36e747861d3c65b16c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::log2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
<td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the log2 of x for integer values. </p>
-<p>Can be reliably using to compute mipmap count from the texture size. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga75c6fd2a143fc44e5f7b871abad539e0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::mod </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genIUType</td><td>Integer-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Classic perlin noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac76ae7d82ff22526bcf6d6a1b51af6c3"></a>
+<a class="anchor" id="ga7e103ffffacb322fe2d4863c372ae2fd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType< T, P > mod </td>
+ <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>rep</em> </td>
</tr>
<tr>
<td></td>
@@ -145,61 +101,27 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
- <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Periodic perlin noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf5ae5330f6b30b4a35fb95f9a73d6134"></a>
+<a class="anchor" id="ga05f5ab240c9a3fdeee353636e464c285"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType< T, P > mod </td>
+ <td class="memname">GLM_FUNC_DECL T glm::simplex </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modulus. </p>
-<p>Returns x % y for each component in x using the floating point value y.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Integer scalar types. </td></tr>
- <tr><td class="paramname">vecType</td><td>vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Allow to perform bit operations on integer values. ">GLM_GTC_integer</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
+<p>Simplex noise. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00170.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00171.html b/doc/api/a00171.html
index 78433c8..5be9454 100644
--- a/doc/api/a00171.html
+++ b/doc/api/a00171.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_access</title>
+<title>0.9.8: GLM_GTC_packing</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,154 +39,1359 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_access<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_packing<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::col_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga96022eb0d3fae39d89fc7a954e59b374">column</a> (genType const &m, length_t index)</td></tr>
-<tr class="separator:ga96022eb0d3fae39d89fc7a954e59b374"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9e757377523890e8b80c5843dbe4dd15"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga9e757377523890e8b80c5843dbe4dd15">column</a> (genType const &m, length_t index, typename genType::col_type const &x)</td></tr>
-<tr class="separator:ga9e757377523890e8b80c5843dbe4dd15"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::row_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga259e5ebd0f31ec3f83440f8cae7f5dba">row</a> (genType const &m, length_t index)</td></tr>
-<tr class="separator:ga259e5ebd0f31ec3f83440f8cae7f5dba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaadcc64829aadf4103477679e48c7594f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaadcc64829aadf4103477679e48c7594f">row</a> (genType const &m, length_t index, typename genType::row_type const &x)</td></tr>
-<tr class="separator:gaadcc64829aadf4103477679e48c7594f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga3f648fc205467792dc6d8c59c748f8a6">packF3x9_E1x5</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga3f648fc205467792dc6d8c59c748f8a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga896d806b72e390eb953786cca3632ec9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint16, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga896d806b72e390eb953786cca3632ec9">packHalf</a> (vecType< float, P > const &v)</td></tr>
+<tr class="separator:ga896d806b72e390eb953786cca3632ec9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
+<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &v)</td></tr>
+<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplParams" colspan="2">template<typename intType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1be760860697db386b36513aeafe9d5e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< intType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga1be760860697db386b36513aeafe9d5e">packSnorm</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:ga1be760860697db386b36513aeafe9d5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
+<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
+<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &v)</td></tr>
+<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &v)</td></tr>
+<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplParams" colspan="2">template<typename uintType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uintType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gacb9a3df68172c1193c9d701a3fa4d88b">packUnorm</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:gacb9a3df68172c1193c9d701a3fa4d88b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
+<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga768e0337dd6246773f14aa0a421fe9a8">packUnorm1x5_1x6_1x5</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga768e0337dd6246773f14aa0a421fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
+<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7f9abdb50f9be1aa1c14912504a0d98d">packUnorm2x3_1x2</a> (vec3 const &v)</td></tr>
+<tr class="separator:ga7f9abdb50f9be1aa1c14912504a0d98d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab6bbd5be3b8e6db538ecb33a7844481c">packUnorm2x4</a> (vec2 const &v)</td></tr>
+<tr class="separator:gab6bbd5be3b8e6db538ecb33a7844481c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &v)</td></tr>
+<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec4112086d7fb133bea104a7c237de52"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaec4112086d7fb133bea104a7c237de52">packUnorm3x5_1x1</a> (vec4 const &v)</td></tr>
+<tr class="separator:gaec4112086d7fb133bea104a7c237de52"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &v)</td></tr>
+<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gad3e7e3ce521513584a53aedc5f9765c1">packUnorm4x4</a> (vec4 const &v)</td></tr>
+<tr class="separator:gad3e7e3ce521513584a53aedc5f9765c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
+<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e">unpackF3x9_E1x5</a> (uint32 p)</td></tr>
+<tr class="separator:gab9e60ebe3ad3eeced6a9ec6eb876d74e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplParams" colspan="2">template<precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< float, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gaf3f9387834f8d8beadfe723c1dd247a7">unpackHalf</a> (vecType< uint16, P > const &p)</td></tr>
+<tr class="separator:gaf3f9387834f8d8beadfe723c1dd247a7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
+<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
+<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplParams" colspan="2">template<typename intType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#ga63eeec0d416e48462f341f4a7a9a45fe">unpackSnorm</a> (vecType< intType, P > const &v)</td></tr>
+<tr class="separator:ga63eeec0d416e48462f341f4a7a9a45fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
+<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
+<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
+<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
+<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplParams" colspan="2">template<typename uintType , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00171.html#gad3d7e1ec7fcfb7ae341658e2ce1c3bd9">unpackUnorm</a> (vecType< uintType, P > const &v)</td></tr>
+<tr class="separator:gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
+<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gab3bc08ecfc0f3339be93fb2b3b56d88a">unpackUnorm1x5_1x6_1x5</a> (uint16 p)</td></tr>
+<tr class="separator:gab3bc08ecfc0f3339be93fb2b3b56d88a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
+<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6abd5a9014df3b5ce4059008d2491260"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga6abd5a9014df3b5ce4059008d2491260">unpackUnorm2x3_1x2</a> (uint8 p)</td></tr>
+<tr class="separator:ga6abd5a9014df3b5ce4059008d2491260"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2e50476132fe5f27f08e273d9c70d85b">unpackUnorm2x4</a> (uint8 p)</td></tr>
+<tr class="separator:ga2e50476132fe5f27f08e273d9c70d85b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
+<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
+<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga5ff95ff5bc16f396432ab67243dbae4d">unpackUnorm3x5_1x1</a> (uint16 p)</td></tr>
+<tr class="separator:ga5ff95ff5bc16f396432ab67243dbae4d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
+<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00171.html#gac58ee89d0e224bb6df5e8bbb18843a2d">unpackUnorm4x4</a> (uint16 p)</td></tr>
+<tr class="separator:gac58ee89d0e224bb6df5e8bbb18843a2d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions to access rows or columns of a matrix easily. </p>
-<p><<a class="el" href="a00068.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_access.hpp</a>> need to be included to use these functionalities. </p>
+<p>This extension provides a set of function to convert vertors to packed formats. </p>
+<p><<a class="el" href="a00080.html" title="GLM_GTC_packing ">glm/gtc/packing.hpp</a>> need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga96022eb0d3fae39d89fc7a954e59b374"></a>
+<a class="anchor" id="ga4944ad465ff950e926d49621f916c78d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::col_type glm::column </td>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packF2x11_1x10 </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
+<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackF2x11_1x10(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3f648fc205467792dc6d8c59c748f8a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packF3x9_E1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
+<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackF3x9_E1x5(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga896d806b72e390eb953786cca3632ec9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<uint16, P> glm::packHalf </td>
+ <td>(</td>
+ <td class="paramtype">vecType< float, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<float, P> unpackHalf(vecType<uint16, P> const & p) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga43f2093b6ff192a79058ff7834fc3528"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packHalf1x16 </td>
+ <td>(</td>
+ <td class="paramtype">float </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packHalf2x16(vec2 const & v) </dd>
+<dd>
+uint64 packHalf4x16(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafe2f7b39caf8f5ec555e1c059ec530e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packHalf4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. </p>
+<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packHalf1x16(float const & v) </dd>
+<dd>
+uint32 packHalf2x16(vec2 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga06ecb6afb902dba45419008171db9023"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packI3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packI3x10_1x2(uvec4 const & v) </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+ivec4 unpackI3x10_1x2(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1be760860697db386b36513aeafe9d5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<intType, P> glm::packSnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType< floatType, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into signed integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<floatType, P> unpackSnorm(vecType<intType, P> const & p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab22f8bcfdb5fc65af4701b25f143c1af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype">float </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into 16-bit integer value. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm2x16(vec2 const & v) </dd>
+<dd>
+uint64 packSnorm4x16(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae3592e0795e62aaa1865b3a10496a7a1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packSnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype">float </td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into 8-bit integer value. </p>
+<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
+<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm2x8(vec2 const & v) </dd>
+<dd>
+uint32 packSnorm4x8(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6be3cfb2cce3702f03e91bbeb5286d7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packSnorm1x8(float const & v) </dd>
+<dd>
+uint32 packSnorm4x8(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab997545661877d2c7362a5084d3897d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. </p>
+<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)</p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const & p) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const & v) </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga358943934d21da947d5bcc88c2ab7832"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packSnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm1x16(float const & v) </dd>
+<dd>
+uint32 packSnorm2x16(vec2 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada3d88d59f0f458f9c51a9fd359a4bc0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packU3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const & v) </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+ivec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacb9a3df68172c1193c9d701a3fa4d88b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<uintType, P> glm::packUnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType< floatType, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<floatType, P> unpackUnorm(vecType<intType, P> const & p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9f82737bf2a44bedff1d286b76837886"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype">float </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into a 16-bit integer value. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packSnorm1x16(float const & v) </dd>
+<dd>
+uint64 packSnorm4x16(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga768e0337dd6246773f14aa0a421fe9a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x5_1x6_1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackUnorm1x5_1x6_1x5(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b2fa60df3460403817d28b082ee0736"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype">float </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the normalized floating-point value v into a 8-bit integer value. </p>
+<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm2x8(vec2 const & v) </dd>
+<dd>
+uint32 packUnorm4x8(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7f9abdb50f9be1aa1c14912504a0d98d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm2x3_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec3 unpackUnorm2x3_1x2(uint8 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab6bbd5be3b8e6db538ecb33a7844481c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm2x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x4(uint8 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9a666b1c688ab54100061ed06526de6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
+<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm1x8(float const & v) </dd>
+<dd>
+uint32 packUnorm4x8(vec4 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8a1ee625d2707c60530fb3fca2980b19"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. </p>
+<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)</p>
+<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm3x10_1x2(uint32 const & p) </dd>
+<dd>
+uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const & v) </dd>
+<dd>
+uint32 packI3x10_1x2(ivec4 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaec4112086d7fb133bea104a7c237de52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm3x5_1x1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm3x5_1x1(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f63c264e7ab63264e2b2a99fd393897"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint64 glm::packUnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
+<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
+<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)</p>
+<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm1x16(float const & v) </dd>
+<dd>
+uint32 packUnorm2x16(vec2 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad3e7e3ce521513584a53aedc5f9765c1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm4x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each component of the normalized floating-point vector into unsigned integer values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec4 unpackUnorm4x4(uint16 p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2b1fd1e854705b1345e98409e0a25e50"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packF2x11_1x10(vec3 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab9e60ebe3ad3eeced6a9ec6eb876d74e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF3x9_E1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packF3x9_E1x5(vec3 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf3f9387834f8d8beadfe723c1dd247a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<float, P> glm::unpackHalf </td>
+ <td>(</td>
+ <td class="paramtype">vecType< <a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a>, P > const & </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<uint16, P> packHalf(vecType<float, P> const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac37dedaba24b00adb4ec6e8f92c19dbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackHalf1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackHalf2x16(uint32 const & v) </dd>
+<dd>
+vec4 unpackHalf4x16(uint64 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga57dfc41b2eb20b0ac00efae7d9c49dcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackHalf4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
+<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackHalf1x16(uint16 const & v) </dd>
+<dd>
+vec2 unpackHalf2x16(uint32 const & v) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9a05330e5490be0908d3b117d82aff56"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. </p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const & v) </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const & p); </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const & p); </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga63eeec0d416e48462f341f4a7a9a45fe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<floatType, P> glm::unpackSnorm </td>
+ <td>(</td>
+ <td class="paramtype">vecType< intType, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each signed integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<intType, P> packSnorm(vecType<floatType, P> const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96dd15002370627a443c835ab03a766c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackSnorm2x16(uint32 p) </dd>
+<dd>
+vec4 unpackSnorm4x16(uint64 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm1x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4851ff86678aa1c7ace9d67846894285"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </p>
+<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackSnorm2x8(uint16 p) </dd>
+<dd>
+vec4 unpackSnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b128e89be449fc71336968a66bf6e1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackSnorm1x8(uint8 p) </dd>
+<dd>
+vec4 unpackSnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a4fbf79be9740e3c57737bc2af05e5b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+vec4 unpackUnorm3x10_1x2(uint32 const & p)) </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const & p) </dd>
+<dd>
+uvec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaddf9c353528fe896106f7181219c7f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t </td>
- <td class="paramname"><em>index</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackSnorm1x16(uint16 p) </dd>
+<dd>
+vec2 unpackSnorm2x16(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga48df3042a7d079767f5891a1bfd8a60a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Get a specific column of a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. </p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packU3x10_1x2(uvec4 const & v) </dd>
+<dd>
+vec4 unpackSnorm3x10_1x2(uint32 const & p); </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const & p); </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9e757377523890e8b80c5843dbe4dd15"></a>
+<a class="anchor" id="gad3d7e1ec7fcfb7ae341658e2ce1c3bd9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::column </td>
+ <td class="memname">GLM_FUNC_DECL vecType<floatType, P> glm::unpackUnorm </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< uintType, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vecType<intType, P> packUnorm(vecType<floatType, P> const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga83d34160a5cb7bcb5339823210fc7501"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t </td>
- <td class="paramname"><em>index</em>, </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </p>
+<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x16(uint32 p) </dd>
+<dd>
+vec4 unpackUnorm4x16(uint64 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3bc08ecfc0f3339be93fb2b3b56d88a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackUnorm1x5_1x6_1x5 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">typename genType::col_type const & </td>
- <td class="paramname"><em>x</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm1x5_1x6_1x5(vec3 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1319207e30874fb4931a9ee913983ee1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Set a specific column to a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Convert a single 8-bit integer to a normalized floating-point value. </p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+vec2 unpackUnorm2x8(uint16 p) </dd>
+<dd>
+vec4 unpackUnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga259e5ebd0f31ec3f83440f8cae7f5dba"></a>
+<a class="anchor" id="ga6abd5a9014df3b5ce4059008d2491260"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::row_type glm::row </td>
+ <td class="memname">GLM_FUNC_DECL vec3 glm::unpackUnorm2x3_1x2 </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm2x3_1x2(vec3 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2e50476132fe5f27f08e273d9c70d85b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t </td>
- <td class="paramname"><em>index</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint8 packUnorm2x4(vec2 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga637cbe3913dd95c6e7b4c99c61bd611f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Get a specific row of a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackUnorm1x8(uint8 v) </dd>
+<dd>
+vec4 unpackUnorm4x8(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaadcc64829aadf4103477679e48c7594f"></a>
+<a class="anchor" id="ga5156d3060355fe332865da2c7f78815f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::row </td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
+<dd>
+vec4 unpackInorm3x10_1x2(uint32 const & p)) </dd>
+<dd>
+uvec4 unpackI3x10_1x2(uint32 const & p) </dd>
+<dd>
+uvec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5ff95ff5bc16f396432ab67243dbae4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x5_1x1 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">length_t </td>
- <td class="paramname"><em>index</em>, </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm3x5_1x1(vec4 const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2ae149c5d2473ac1e5f347bb654a242d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td class="paramtype">typename genType::row_type const & </td>
- <td class="paramname"><em>x</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </p>
+<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
+<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0</p>
+<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+float unpackUnorm1x16(uint16 p) </dd>
+<dd>
+vec2 unpackUnorm2x16(uint32 p) </dd>
+<dd>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
+<dd>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac58ee89d0e224bb6df5e8bbb18843a2d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x4 </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname"><em>p</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Set a specific row to a matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="Defines functions to access rows or columns of a matrix easily. ">GLM_GTC_matrix_access</a> </dd></dl>
+<p>Convert each unsigned integer components of a vector to normalized floating-point values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00171.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
+<dd>
+uint16 packUnorm4x4(vec4 const & v) </dd></dl>
</div>
</div>
diff --git a/doc/api/a00172.html b/doc/api/a00172.html
index 43816c7..892634a 100644
--- a/doc/api/a00172.html
+++ b/doc/api/a00172.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_integer</title>
+<title>0.9.8: GLM_GTC_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,1840 +37,894 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_integer<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_quaternion<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa9f8144beebdefd85e2a9ac480e7608a">highp_imat2</a></td></tr>
-<tr class="separator:gaa9f8144beebdefd85e2a9ac480e7608a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac455e55e7cb32e31396a9d4613da046a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac455e55e7cb32e31396a9d4613da046a">highp_imat2x2</a></td></tr>
-<tr class="separator:gac455e55e7cb32e31396a9d4613da046a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f5f1e6dc06b72216463a425b2f7613e">highp_imat2x3</a></td></tr>
-<tr class="separator:ga5f5f1e6dc06b72216463a425b2f7613e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73b855cc40e5d8202b7ab38461326d65"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga73b855cc40e5d8202b7ab38461326d65">highp_imat2x4</a></td></tr>
-<tr class="separator:ga73b855cc40e5d8202b7ab38461326d65"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4efd6470c0edf9704d2244fc92dbc2a9">highp_imat3</a></td></tr>
-<tr class="separator:ga4efd6470c0edf9704d2244fc92dbc2a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0413bf87605b9247be2533c439127a1c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0413bf87605b9247be2533c439127a1c">highp_imat3x2</a></td></tr>
-<tr class="separator:ga0413bf87605b9247be2533c439127a1c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacce460d54216438bb577bf8c9d68299c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacce460d54216438bb577bf8c9d68299c">highp_imat3x3</a></td></tr>
-<tr class="separator:gacce460d54216438bb577bf8c9d68299c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4fea24b4100e21ed7742c91e5458d49"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4fea24b4100e21ed7742c91e5458d49">highp_imat3x4</a></td></tr>
-<tr class="separator:gad4fea24b4100e21ed7742c91e5458d49"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga159ce04cc638ff4db755542cd8f758cb"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga159ce04cc638ff4db755542cd8f758cb">highp_imat4</a></td></tr>
-<tr class="separator:ga159ce04cc638ff4db755542cd8f758cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7d43dd8332000f7f19379efa1b303599"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d43dd8332000f7f19379efa1b303599">highp_imat4x2</a></td></tr>
-<tr class="separator:ga7d43dd8332000f7f19379efa1b303599"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0c66b9b7c10a6017a58a03489c8d4c73">highp_imat4x3</a></td></tr>
-<tr class="separator:ga0c66b9b7c10a6017a58a03489c8d4c73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae53db595d36f49a299e180302795e3c9"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae53db595d36f49a299e180302795e3c9">highp_imat4x4</a></td></tr>
-<tr class="separator:gae53db595d36f49a299e180302795e3c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7b96c808a36fbe87f41af1c77b7941c">highp_umat2</a></td></tr>
-<tr class="separator:gae7b96c808a36fbe87f41af1c77b7941c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4860b4b01430bdb70643808c8d3bf5cb">highp_umat2x2</a></td></tr>
-<tr class="separator:ga4860b4b01430bdb70643808c8d3bf5cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac351446661e5a8168473ff7b3b5ac3b5">highp_umat2x3</a></td></tr>
-<tr class="separator:gac351446661e5a8168473ff7b3b5ac3b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga815eb9fdf70edc45687cbcda07e97213"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga815eb9fdf70edc45687cbcda07e97213">highp_umat2x4</a></td></tr>
-<tr class="separator:ga815eb9fdf70edc45687cbcda07e97213"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa60b19d7cadbaa56bed1e6e0047af147">highp_umat3</a></td></tr>
-<tr class="separator:gaa60b19d7cadbaa56bed1e6e0047af147"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab1d8e627b6a0b21c9b5e599a89132d8f">highp_umat3x2</a></td></tr>
-<tr class="separator:gab1d8e627b6a0b21c9b5e599a89132d8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gacf71e9abe57bcfd18b4b003421e306aa">highp_umat3x3</a></td></tr>
-<tr class="separator:gacf71e9abe57bcfd18b4b003421e306aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6edbf193ad6c4309e31262165f2655e7"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6edbf193ad6c4309e31262165f2655e7">highp_umat3x4</a></td></tr>
-<tr class="separator:ga6edbf193ad6c4309e31262165f2655e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8368cb49cb0bd5ac682a71d1eccc9a8c">highp_umat4</a></td></tr>
-<tr class="separator:ga8368cb49cb0bd5ac682a71d1eccc9a8c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaaba8a59eac3e5c0b3aaa9b35c1f10292">highp_umat4x2</a></td></tr>
-<tr class="separator:gaaba8a59eac3e5c0b3aaa9b35c1f10292"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga899a376888652fe3c03718641812bb27"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga899a376888652fe3c03718641812bb27">highp_umat4x3</a></td></tr>
-<tr class="separator:ga899a376888652fe3c03718641812bb27"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8068521c0ad6990373d27d87d333084"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab8068521c0ad6990373d27d87d333084">highp_umat4x4</a></td></tr>
-<tr class="separator:gab8068521c0ad6990373d27d87d333084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabe04f9948d4a213bb1c20137de03e01"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaabe04f9948d4a213bb1c20137de03e01">imat2</a></td></tr>
-<tr class="separator:gaabe04f9948d4a213bb1c20137de03e01"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa4732a240522ad9bc28144fda2fc14ec">imat2x2</a></td></tr>
-<tr class="separator:gaa4732a240522ad9bc28144fda2fc14ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605">imat2x3</a></td></tr>
-<tr class="separator:ga3f42dd3d5d94a0fd5706f7ec8dd0c605"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9d8faafdca42583d67e792dd038fc668"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9d8faafdca42583d67e792dd038fc668">imat2x4</a></td></tr>
-<tr class="separator:ga9d8faafdca42583d67e792dd038fc668"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga038f68437155ffa3c2583a15264a8195"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga038f68437155ffa3c2583a15264a8195">imat3</a></td></tr>
-<tr class="separator:ga038f68437155ffa3c2583a15264a8195"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b33bbe4f12c060892bd3cc8d4cd737f">imat3x2</a></td></tr>
-<tr class="separator:ga7b33bbe4f12c060892bd3cc8d4cd737f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4">imat3x3</a></td></tr>
-<tr class="separator:ga6aacc960f62e8f7d2fe9d32d5050e7a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6e9ce23496d8b08dfc302d4039694b58">imat3x4</a></td></tr>
-<tr class="separator:ga6e9ce23496d8b08dfc302d4039694b58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga96b0d26a33b81bb6a60ca0f39682f7eb">imat4</a></td></tr>
-<tr class="separator:ga96b0d26a33b81bb6a60ca0f39682f7eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa">imat4x2</a></td></tr>
-<tr class="separator:ga8ce7ef51d8b2c1901fa5414deccbc3fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga705ee0bf49d6c3de4404ce2481bf0df5">imat4x3</a></td></tr>
-<tr class="separator:ga705ee0bf49d6c3de4404ce2481bf0df5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memItemLeft" align="right" valign="top">typedef mediump_imat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga43ed5e4f475b6f4cad7cba78f29c405b">imat4x4</a></td></tr>
-<tr class="separator:ga43ed5e4f475b6f4cad7cba78f29c405b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3c035fec7db0d671ec8f9f1f0d05bed0">lowp_imat2</a></td></tr>
-<tr class="separator:ga3c035fec7db0d671ec8f9f1f0d05bed0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5bfe58853451fbc1f1ef6ce1f93c5e31">lowp_imat2x2</a></td></tr>
-<tr class="separator:ga5bfe58853451fbc1f1ef6ce1f93c5e31"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8fb92b62e31528886cc728d3404ecc">lowp_imat2x3</a></td></tr>
-<tr class="separator:ga3f8fb92b62e31528886cc728d3404ecc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga892b53e26d36763f380b08a5768dee6b"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga892b53e26d36763f380b08a5768dee6b">lowp_imat2x4</a></td></tr>
-<tr class="separator:ga892b53e26d36763f380b08a5768dee6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga148f3a81d15a570b9460158e6964f41c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga148f3a81d15a570b9460158e6964f41c">lowp_imat3</a></td></tr>
-<tr class="separator:ga148f3a81d15a570b9460158e6964f41c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7655dfee0d726e80d7a3b72f46d5fd35">lowp_imat3x2</a></td></tr>
-<tr class="separator:ga7655dfee0d726e80d7a3b72f46d5fd35"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gab3d5c6aaeb5815f8f080305888f6828f">lowp_imat3x3</a></td></tr>
-<tr class="separator:gab3d5c6aaeb5815f8f080305888f6828f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3d913d70c629aa7ad504739286328f1b"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3d913d70c629aa7ad504739286328f1b">lowp_imat3x4</a></td></tr>
-<tr class="separator:ga3d913d70c629aa7ad504739286328f1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad3d7b23bdb4ed9b7d53c9db792db9bb4">lowp_imat4</a></td></tr>
-<tr class="separator:gad3d7b23bdb4ed9b7d53c9db792db9bb4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fdfce509d30bdd7778b8b156cb968df">lowp_imat4x2</a></td></tr>
-<tr class="separator:ga3fdfce509d30bdd7778b8b156cb968df"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a9945878f99294cfde40c6c3a867d69"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga6a9945878f99294cfde40c6c3a867d69">lowp_imat4x3</a></td></tr>
-<tr class="separator:ga6a9945878f99294cfde40c6c3a867d69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga330140b22a9449caab308f2c69bf4c80"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga330140b22a9449caab308f2c69bf4c80">lowp_imat4x4</a></td></tr>
-<tr class="separator:ga330140b22a9449caab308f2c69bf4c80"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1406406e396b56bde3c7c0722f657064"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1406406e396b56bde3c7c0722f657064">lowp_umat2</a></td></tr>
-<tr class="separator:ga1406406e396b56bde3c7c0722f657064"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f0cea730f6c13b16e511bd2d63507a3">lowp_umat2x2</a></td></tr>
-<tr class="separator:ga1f0cea730f6c13b16e511bd2d63507a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa86bd9dc8463b46a46ee944948111676"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa86bd9dc8463b46a46ee944948111676">lowp_umat2x3</a></td></tr>
-<tr class="separator:gaa86bd9dc8463b46a46ee944948111676"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7b6c64600bad79d735fa6bec843b2bb4">lowp_umat2x4</a></td></tr>
-<tr class="separator:ga7b6c64600bad79d735fa6bec843b2bb4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7fc1f795f2abd0020c7b5204f4c83033">lowp_umat3</a></td></tr>
-<tr class="separator:ga7fc1f795f2abd0020c7b5204f4c83033"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73943020bb49a072317ecfc52d587f0"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad73943020bb49a072317ecfc52d587f0">lowp_umat3x2</a></td></tr>
-<tr class="separator:gad73943020bb49a072317ecfc52d587f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga402d169fc3cdca5f3ea47a358a7b7c67">lowp_umat3x3</a></td></tr>
-<tr class="separator:ga402d169fc3cdca5f3ea47a358a7b7c67"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga2dce1c00ed50fd09fe349de3713d96db">lowp_umat3x4</a></td></tr>
-<tr class="separator:ga2dce1c00ed50fd09fe349de3713d96db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gafe68c1cf2b379a9a11d1a11c9c2f8884">lowp_umat4</a></td></tr>
-<tr class="separator:gafe68c1cf2b379a9a11d1a11c9c2f8884"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76cab31d492ea214c693ab9132b4de95"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga76cab31d492ea214c693ab9132b4de95">lowp_umat4x2</a></td></tr>
-<tr class="separator:ga76cab31d492ea214c693ab9132b4de95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae3ca9e28a9d2e5fce5e28593d27e370d">lowp_umat4x3</a></td></tr>
-<tr class="separator:gae3ca9e28a9d2e5fce5e28593d27e370d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga742be484e56e08ef637f8ec4ab7c8bb2">lowp_umat4x4</a></td></tr>
-<tr class="separator:ga742be484e56e08ef637f8ec4ab7c8bb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3f8e55e14a6fc61850f8c0df9b4ff655">mediump_imat2</a></td></tr>
-<tr class="separator:ga3f8e55e14a6fc61850f8c0df9b4ff655"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabc572d47b60f7e595d7aad945f5d13a8">mediump_imat2x2</a></td></tr>
-<tr class="separator:gabc572d47b60f7e595d7aad945f5d13a8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5b7e9af5024e1a164db6419f67ecfc9a">mediump_imat2x3</a></td></tr>
-<tr class="separator:ga5b7e9af5024e1a164db6419f67ecfc9a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa08e27efc514088315ccbaf818f01880"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaa08e27efc514088315ccbaf818f01880">mediump_imat2x4</a></td></tr>
-<tr class="separator:gaa08e27efc514088315ccbaf818f01880"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac2b0985b576fe0eba47227499aed2b3c"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac2b0985b576fe0eba47227499aed2b3c">mediump_imat3</a></td></tr>
-<tr class="separator:gac2b0985b576fe0eba47227499aed2b3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a61c706b31aa60fd7012b2b27765983"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1a61c706b31aa60fd7012b2b27765983">mediump_imat3x2</a></td></tr>
-<tr class="separator:ga1a61c706b31aa60fd7012b2b27765983"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05064e28b911be1af0503ddf6e6204a3"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga05064e28b911be1af0503ddf6e6204a3">mediump_imat3x3</a></td></tr>
-<tr class="separator:ga05064e28b911be1af0503ddf6e6204a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga8e0f797a57fec255f0eec7da1511bc38">mediump_imat3x4</a></td></tr>
-<tr class="separator:ga8e0f797a57fec255f0eec7da1511bc38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga551ad2e4e0304c67451ffbadeef0d615">mediump_imat4</a></td></tr>
-<tr class="separator:ga551ad2e4e0304c67451ffbadeef0d615"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1582c5dc83e49a7e53bb0b94bef9de54">mediump_imat4x2</a></td></tr>
-<tr class="separator:ga1582c5dc83e49a7e53bb0b94bef9de54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1526c62951b04f5cd73f541f7b3b7d8d">mediump_imat4x3</a></td></tr>
-<tr class="separator:ga1526c62951b04f5cd73f541f7b3b7d8d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga655bfcca624f422aff308dcc99688ce8"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< int, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga655bfcca624f422aff308dcc99688ce8">mediump_imat4x4</a></td></tr>
-<tr class="separator:ga655bfcca624f422aff308dcc99688ce8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7322b97f1be10c83290ab57ef784d493"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7322b97f1be10c83290ab57ef784d493">mediump_umat2</a></td></tr>
-<tr class="separator:ga7322b97f1be10c83290ab57ef784d493"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ffed083b64e4f764db0f446d2c49163"><td class="memItemLeft" align="right" valign="top">typedef tmat2x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga0ffed083b64e4f764db0f446d2c49163">mediump_umat2x2</a></td></tr>
-<tr class="separator:ga0ffed083b64e4f764db0f446d2c49163"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memItemLeft" align="right" valign="top">typedef tmat2x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7ecc585b71766cfa96bd54a595bea1fb">mediump_umat2x3</a></td></tr>
-<tr class="separator:ga7ecc585b71766cfa96bd54a595bea1fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4abd549f2e521c7f40f53b6235c450e"><td class="memItemLeft" align="right" valign="top">typedef tmat2x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac4abd549f2e521c7f40f53b6235c450e">mediump_umat2x4</a></td></tr>
-<tr class="separator:gac4abd549f2e521c7f40f53b6235c450e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga93961d3aac6efa36dc3f9cfa7e9056e6">mediump_umat3</a></td></tr>
-<tr class="separator:ga93961d3aac6efa36dc3f9cfa7e9056e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memItemLeft" align="right" valign="top">typedef tmat3x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga3fb358a947f8ceaefddd75bce22cd947">mediump_umat3x2</a></td></tr>
-<tr class="separator:ga3fb358a947f8ceaefddd75bce22cd947"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memItemLeft" align="right" valign="top">typedef tmat3x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gad4809dbfb1bfcf222d7b34a97a8eafe5">mediump_umat3x3</a></td></tr>
-<tr class="separator:gad4809dbfb1bfcf222d7b34a97a8eafe5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memItemLeft" align="right" valign="top">typedef tmat3x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5a9d62e44668ca2222f0362f9c99d9cc">mediump_umat3x4</a></td></tr>
-<tr class="separator:ga5a9d62e44668ca2222f0362f9c99d9cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac23667a99ae1ec649b5e55cd5a05b833">mediump_umat4</a></td></tr>
-<tr class="separator:gac23667a99ae1ec649b5e55cd5a05b833"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac8d1db85d62244fd90d240227c7f51ad"><td class="memItemLeft" align="right" valign="top">typedef tmat4x2< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gac8d1db85d62244fd90d240227c7f51ad">mediump_umat4x2</a></td></tr>
-<tr class="separator:gac8d1db85d62244fd90d240227c7f51ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memItemLeft" align="right" valign="top">typedef tmat4x3< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga7d332d462f2c1ad5a65dc580d3d1aa39">mediump_umat4x3</a></td></tr>
-<tr class="separator:ga7d332d462f2c1ad5a65dc580d3d1aa39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga24716579cf155f4e042542808f83978c"><td class="memItemLeft" align="right" valign="top">typedef tmat4x4< uint, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga24716579cf155f4e042542808f83978c">mediump_umat4x4</a></td></tr>
-<tr class="separator:ga24716579cf155f4e042542808f83978c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4cae85566f900debf930c41944b64691"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga4cae85566f900debf930c41944b64691">umat2</a></td></tr>
-<tr class="separator:ga4cae85566f900debf930c41944b64691"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabf8acdd33ce8951051edbca5200898aa"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gabf8acdd33ce8951051edbca5200898aa">umat2x2</a></td></tr>
-<tr class="separator:gabf8acdd33ce8951051edbca5200898aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1870da7578d5022b973a83155d386ab3"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1870da7578d5022b973a83155d386ab3">umat2x3</a></td></tr>
-<tr class="separator:ga1870da7578d5022b973a83155d386ab3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57936a3998e992370e59a223e0ee4fd4"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga57936a3998e992370e59a223e0ee4fd4">umat2x4</a></td></tr>
-<tr class="separator:ga57936a3998e992370e59a223e0ee4fd4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga5085e3ff02abbac5e537eb7b89ab63b6">umat3</a></td></tr>
-<tr class="separator:ga5085e3ff02abbac5e537eb7b89ab63b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga9cd7fa637a4a6788337f45231fad9e1a">umat3x2</a></td></tr>
-<tr class="separator:ga9cd7fa637a4a6788337f45231fad9e1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb">umat3x3</a></td></tr>
-<tr class="separator:ga1f2cfcf3357db0cdf31fcb15e3c6bafb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gae7c78ff3fc4309605ab0fa186c8d48ba">umat3x4</a></td></tr>
-<tr class="separator:gae7c78ff3fc4309605ab0fa186c8d48ba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38bc7bb6494e344185df596deeb4544c"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga38bc7bb6494e344185df596deeb4544c">umat4</a></td></tr>
-<tr class="separator:ga38bc7bb6494e344185df596deeb4544c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga70fa2d05896aa83cbc8c07672a429b53">umat4x2</a></td></tr>
-<tr class="separator:ga70fa2d05896aa83cbc8c07672a429b53"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga87581417945411f75cb31dd6ca1dba98"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ga87581417945411f75cb31dd6ca1dba98">umat4x3</a></td></tr>
-<tr class="separator:ga87581417945411f75cb31dd6ca1dba98"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memItemLeft" align="right" valign="top">typedef mediump_umat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#gaf72e6d399c42985db6872c50f53d7eb8">umat4x4</a></td></tr>
-<tr class="separator:gaf72e6d399c42985db6872c50f53d7eb8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class quatType> </td></tr>
+<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType< T, P > const &x, quatType< T, P > const &y)</td></tr>
+<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0a850f06736d25887536d0da88e63c70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga0a850f06736d25887536d0da88e63c70">isinf</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga0a850f06736d25887536d0da88e63c70"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gad2fc52dd4ba5ff79cc56b3e0f9c092ed">isnan</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gad2fc52dd4ba5ff79cc56b3e0f9c092ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
+<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3< T, P > const &x)</td></tr>
+<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4< T, P > const &x)</td></tr>
+<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
+<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00172.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a number of matrices with integer types. </p>
-<p><<a class="el" href="a00071.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_integer.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gaa9f8144beebdefd85e2a9ac480e7608a"></a>
+<p>Defines a templated quaternion type and several quaternion operations. </p>
+<p><<a class="el" href="a00087.html" title="GLM_GTC_quaternion ">glm/gtc/quaternion.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gad4a4448baedb198b2b1e7880d2544dc9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<int, highp> highp_imat2</td>
+ <td class="memname">GLM_FUNC_DECL T glm::angle </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>High-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00065">65</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac455e55e7cb32e31396a9d4613da046a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<int, highp> highp_imat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00077">77</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5f5f1e6dc06b72216463a425b2f7613e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<int, highp> highp_imat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00081">81</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73b855cc40e5d8202b7ab38461326d65"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<int, highp> highp_imat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00085">85</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4efd6470c0edf9704d2244fc92dbc2a9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<int, highp> highp_imat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00069">69</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0413bf87605b9247be2533c439127a1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<int, highp> highp_imat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00089">89</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacce460d54216438bb577bf8c9d68299c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<int, highp> highp_imat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00093">93</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad4fea24b4100e21ed7742c91e5458d49"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<int, highp> highp_imat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00097">97</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga159ce04cc638ff4db755542cd8f758cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<int, highp> highp_imat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00073">73</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7d43dd8332000f7f19379efa1b303599"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<int, highp> highp_imat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00101">101</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c66b9b7c10a6017a58a03489c8d4c73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<int, highp> highp_imat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00105">105</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae53db595d36f49a299e180302795e3c9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<int, highp> highp_imat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00109">109</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae7b96c808a36fbe87f41af1c77b7941c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<uint, highp> highp_umat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00214">214</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4860b4b01430bdb70643808c8d3bf5cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<uint, highp> highp_umat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00226">226</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac351446661e5a8168473ff7b3b5ac3b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<uint, highp> highp_umat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00230">230</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga815eb9fdf70edc45687cbcda07e97213"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<uint, highp> highp_umat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00234">234</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa60b19d7cadbaa56bed1e6e0047af147"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<uint, highp> highp_umat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00218">218</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab1d8e627b6a0b21c9b5e599a89132d8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<uint, highp> highp_umat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00238">238</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf71e9abe57bcfd18b4b003421e306aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<uint, highp> highp_umat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00242">242</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6edbf193ad6c4309e31262165f2655e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<uint, highp> highp_umat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00246">246</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8368cb49cb0bd5ac682a71d1eccc9a8c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<uint, highp> highp_umat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00222">222</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaaba8a59eac3e5c0b3aaa9b35c1f10292"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<uint, highp> highp_umat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00250">250</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga899a376888652fe3c03718641812bb27"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<uint, highp> highp_umat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00254">254</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab8068521c0ad6990373d27d87d333084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<uint, highp> highp_umat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00258">258</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaabe04f9948d4a213bb1c20137de03e01"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2 imat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00390">390</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa4732a240522ad9bc28144fda2fc14ec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x2 imat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00402">402</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f42dd3d5d94a0fd5706f7ec8dd0c605"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x3 imat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00406">406</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9d8faafdca42583d67e792dd038fc668"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat2x4 imat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00410">410</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga038f68437155ffa3c2583a15264a8195"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3 imat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00394">394</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b33bbe4f12c060892bd3cc8d4cd737f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x2 imat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00414">414</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6aacc960f62e8f7d2fe9d32d5050e7a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x3 imat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00418">418</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6e9ce23496d8b08dfc302d4039694b58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat3x4 imat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00422">422</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96b0d26a33b81bb6a60ca0f39682f7eb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat4 imat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00398">398</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ce7ef51d8b2c1901fa5414deccbc3fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat4x2 imat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00426">426</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga705ee0bf49d6c3de4404ce2481bf0df5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat4x3 imat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00430">430</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga43ed5e4f475b6f4cad7cba78f29c405b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef mediump_imat4x4 imat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00434">434</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c035fec7db0d671ec8f9f1f0d05bed0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<int, lowp> lowp_imat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00164">164</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5bfe58853451fbc1f1ef6ce1f93c5e31"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2<int, lowp> lowp_imat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00177">177</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f8fb92b62e31528886cc728d3404ecc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3<int, lowp> lowp_imat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00181">181</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga892b53e26d36763f380b08a5768dee6b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4<int, lowp> lowp_imat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00185">185</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga148f3a81d15a570b9460158e6964f41c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<int, lowp> lowp_imat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00168">168</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7655dfee0d726e80d7a3b72f46d5fd35"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2<int, lowp> lowp_imat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00189">189</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab3d5c6aaeb5815f8f080305888f6828f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3<int, lowp> lowp_imat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00193">193</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3d913d70c629aa7ad504739286328f1b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4<int, lowp> lowp_imat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00197">197</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad3d7b23bdb4ed9b7d53c9db792db9bb4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4<int, lowp> lowp_imat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00172">172</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3fdfce509d30bdd7778b8b156cb968df"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2<int, lowp> lowp_imat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00201">201</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6a9945878f99294cfde40c6c3a867d69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3<int, lowp> lowp_imat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00205">205</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the quaternion rotation angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga330140b22a9449caab308f2c69bf4c80"></a>
+<a class="anchor" id="ga37ae19405f1ccf766f27e4fcd035d859"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<int, lowp> lowp_imat4x4</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::angleAxis </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00209">209</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1406406e396b56bde3c7c0722f657064"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<uint, lowp> lowp_umat2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00313">313</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1f0cea730f6c13b16e511bd2d63507a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<uint, lowp> lowp_umat2x2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00326">326</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Build a quaternion from an angle and a normalized axis. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Axis of the quaternion, must be normalized.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa86bd9dc8463b46a46ee944948111676"></a>
+<a class="anchor" id="ga0b3e87a13b2708154b72259e50789a19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x3<uint, lowp> lowp_umat2x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::axis </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00330">330</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q rotation axis. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7b6c64600bad79d735fa6bec843b2bb4"></a>
+<a class="anchor" id="gab1ace864fbf189ffa368950001808a3c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x4<uint, lowp> lowp_umat2x4</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::conjugate </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00334">334</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q conjugate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7fc1f795f2abd0020c7b5204f4c83033"></a>
+<a class="anchor" id="gac54dfc83de465a2d03e90d342242ab3d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<uint, lowp> lowp_umat3</td>
+ <td class="memname">GLM_FUNC_DECL T glm::dot </td>
+ <td>(</td>
+ <td class="paramtype">quatType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00317">317</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad73943020bb49a072317ecfc52d587f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2<uint, lowp> lowp_umat3x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">quatType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00338">338</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga402d169fc3cdca5f3ea47a358a7b7c67"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<uint, lowp> lowp_umat3x3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00342">342</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2dce1c00ed50fd09fe349de3713d96db"></a>
+<a class="anchor" id="gac187115710365e0b2902220b9611e7b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4<uint, lowp> lowp_umat3x4</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::equal </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00346">346</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafe68c1cf2b379a9a11d1a11c9c2f8884"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<uint, lowp> lowp_umat4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00321">321</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga76cab31d492ea214c693ab9132b4de95"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x2<uint, lowp> lowp_umat4x2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00350">350</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x == y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae3ca9e28a9d2e5fce5e28593d27e370d"></a>
+<a class="anchor" id="gadb92ec1c1b0dd6b024176a73fbef3e64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x3<uint, lowp> lowp_umat4x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::eulerAngles </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Low-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00354">354</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns euler angles, pitch as x, yaw as y, roll as z. </p>
+<p>The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga742be484e56e08ef637f8ec4ab7c8bb2"></a>
+<a class="anchor" id="ga09d21a588ae425ac7517ea65cc59a5ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<uint, lowp> lowp_umat4x4</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::greaterThan </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00358">358</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3f8e55e14a6fc61850f8c0df9b4ff655"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<int, mediump> mediump_imat2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00114">114</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabc572d47b60f7e595d7aad945f5d13a8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<int, mediump> mediump_imat2x2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00127">127</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x > y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5b7e9af5024e1a164db6419f67ecfc9a"></a>
+<a class="anchor" id="ga0906a221a2037519fcf316ea5c1e3b3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x3<int, mediump> mediump_imat2x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::greaterThanEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00131">131</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa08e27efc514088315ccbaf818f01880"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4<int, mediump> mediump_imat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00135">135</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac2b0985b576fe0eba47227499aed2b3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<int, mediump> mediump_imat3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00118">118</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x >= y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1a61c706b31aa60fd7012b2b27765983"></a>
+<a class="anchor" id="ga5f47300c024c2d809944e6ac661d6d14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x2<int, mediump> mediump_imat3x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::inverse </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00139">139</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the q inverse. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga05064e28b911be1af0503ddf6e6204a3"></a>
+<a class="anchor" id="ga0a850f06736d25887536d0da88e63c70"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<int, mediump> mediump_imat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::isinf </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00143">143</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no infinity representations.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga8e0f797a57fec255f0eec7da1511bc38"></a>
+<a class="anchor" id="gad2fc52dd4ba5ff79cc56b3e0f9c092ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4<int, mediump> mediump_imat3x4</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::isnan </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00147">147</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. </p>
+<p>Returns false otherwise, including for implementations with no NaN representations.</p>
+<p>/!\ When using compiler fast math, this function may fail.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga551ad2e4e0304c67451ffbadeef0d615"></a>
+<a class="anchor" id="gac682181783027544c8d251b4d3a60cf8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<int, mediump> mediump_imat4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::length </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00122">122</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the length of the quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1582c5dc83e49a7e53bb0b94bef9de54"></a>
+<a class="anchor" id="ga5692804fa4db9e762a1c19b607e54435"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x2<int, mediump> mediump_imat4x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::lerp </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00151">151</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1526c62951b04f5cd73f541f7b3b7d8d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3<int, mediump> mediump_imat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00155">155</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga655bfcca624f422aff308dcc99688ce8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<int, mediump> mediump_imat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>a</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision signed integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00159">159</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7322b97f1be10c83290ab57ef784d493"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<uint, mediump> mediump_umat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00263">263</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Linear interpolation of two quaternions. </p>
+<p>The interpolation is oriented.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined in the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0ffed083b64e4f764db0f446d2c49163"></a>
+<a class="anchor" id="ga91a40d16a3b5bb47d71ac1a3fb688ffa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2<uint, mediump> mediump_umat2x2</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::lessThan </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00276">276</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ecc585b71766cfa96bd54a595bea1fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x3<uint, mediump> mediump_umat2x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00280">280</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac4abd549f2e521c7f40f53b6235c450e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat2x4<uint, mediump> mediump_umat2x4</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00284">284</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison result of x < y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga93961d3aac6efa36dc3f9cfa7e9056e6"></a>
+<a class="anchor" id="ga7c81996ed2724f26fe76faf352c76294"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<uint, mediump> mediump_umat3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::lessThanEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00267">267</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3fb358a947f8ceaefddd75bce22cd947"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x2<uint, mediump> mediump_umat3x2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00288">288</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad4809dbfb1bfcf222d7b34a97a8eafe5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat3x3<uint, mediump> mediump_umat3x3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00292">292</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x <= y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5a9d62e44668ca2222f0362f9c99d9cc"></a>
+<a class="anchor" id="gae04c39422eb4e450ec8c4f45a1057b40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4<uint, mediump> mediump_umat3x4</td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::mat3_cast </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a quaternion to a 3 * 3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00296">296</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00088_source.html#l00124">glm::toMat3()</a>.</p>
</div>
</div>
-<a class="anchor" id="gac23667a99ae1ec649b5e55cd5a05b833"></a>
+<a class="anchor" id="ga14bb2ddf028c91542763eb6f2bba47ef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<uint, mediump> mediump_umat4</td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::mat4_cast </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Medium-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a quaternion to a 4 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00271">271</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00088_source.html#l00131">glm::toMat4()</a>.</p>
</div>
</div>
-<a class="anchor" id="gac8d1db85d62244fd90d240227c7f51ad"></a>
+<a class="anchor" id="ga31cc82178742c36450f5662bd4fb30b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x2<uint, mediump> mediump_umat4x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::mix </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00300">300</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7d332d462f2c1ad5a65dc580d3d1aa39"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x3<uint, mediump> mediump_umat4x3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00304">304</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga24716579cf155f4e042542808f83978c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tmat4x4<uint, mediump> mediump_umat4x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>a</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium-precision unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00308">308</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4cae85566f900debf930c41944b64691"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2 umat2</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00467">467</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Spherical linear interpolation of two quaternions. </p>
+<p>The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd>
+<dd>
+- slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a) </dd></dl>
</div>
</div>
-<a class="anchor" id="gabf8acdd33ce8951051edbca5200898aa"></a>
+<a class="anchor" id="ga35b6bcb22ac6d1e4a85440f5b69bdf86"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2x2 umat2x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::normalize </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 2x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00479">479</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the normalized quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1870da7578d5022b973a83155d386ab3"></a>
+<a class="anchor" id="ga484c4633f7c05d8e29ee8b452350f539"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2x3 umat2x3</td>
+ <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::notEqual </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00483">483</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga57936a3998e992370e59a223e0ee4fd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat2x4 umat2x4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Unsigned integer 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00487">487</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5085e3ff02abbac5e537eb7b89ab63b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3 umat3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00471">471</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns the component-wise comparison of result x != y. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga9cd7fa637a4a6788337f45231fad9e1a"></a>
+<a class="anchor" id="ga2c08b93a4261c10748fd4d2104346f17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3x2 umat3x2</td>
+ <td class="memname">GLM_FUNC_DECL T glm::pitch </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00491">491</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns pitch value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1f2cfcf3357db0cdf31fcb15e3c6bafb"></a>
+<a class="anchor" id="ga950f8acff3e33bbda77895a3dcb7e5ce"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3x3 umat3x3</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::quat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
+<p>Converts a 3 * 3 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
-<p>Definition at line <a class="el" href="a00071_source.html#l00495">495</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Referenced by <a class="el" href="a00088_source.html#l00138">glm::toQuat()</a>.</p>
</div>
</div>
-<a class="anchor" id="gae7c78ff3fc4309605ab0fa186c8d48ba"></a>
+<a class="anchor" id="ga3e4615e9884dd0f41f5617b9848a5d9c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat3x4 umat3x4</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::quat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00499">499</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Converts a 4 * 4 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga38bc7bb6494e344185df596deeb4544c"></a>
+<a class="anchor" id="ga4fd705376c6c1fd667be0055a0ea58ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat4 umat4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::roll </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00475">475</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns roll value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga70fa2d05896aa83cbc8c07672a429b53"></a>
+<a class="anchor" id="gaa8f42979c921e450ff2812fb43c25702"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat4x2 umat4x2</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00503">503</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Rotates a quaternion from a vector of 3 components axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">q</td><td>Source orientation </td></tr>
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
+ <tr><td class="paramname">axis</td><td>Axis of the rotation</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga87581417945411f75cb31dd6ca1dba98"></a>
+<a class="anchor" id="ga22b438c7252f3fa5b773c9882471652a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat4x3 umat4x3</td>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::slerp </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>a</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00507">507</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Spherical linear interpolation of two quaternions. </p>
+<p>The interpolation always take the short path and the rotation is performed at constant speed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">y</td><td>A quaternion </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf72e6d399c42985db6872c50f53d7eb8"></a>
+<a class="anchor" id="ga724a5df282b70cec0a6cb0d6dcddb6d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef mediump_umat4x4 umat4x4</td>
+ <td class="memname">GLM_FUNC_DECL T glm::yaw </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unsigned integer 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00172.html" title="Defines a number of matrices with integer types. ">GLM_GTC_matrix_integer</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00071_source.html#l00511">511</a> of file <a class="el" href="a00071_source.html">matrix_integer.hpp</a>.</p>
+<p>Returns yaw value of euler angles expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00173.html b/doc/api/a00173.html
index 04983e5..bedfcc0 100644
--- a/doc/api/a00173.html
+++ b/doc/api/a00173.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_inverse</title>
+<title>0.9.8: GLM_GTC_random</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,82 +39,256 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_inverse<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_random<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae0fcc5fc8783291f9702272de428fa0e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae0fcc5fc8783291f9702272de428fa0e">affineInverse</a> (genType const &m)</td></tr>
-<tr class="separator:gae0fcc5fc8783291f9702272de428fa0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab213cd0e3ead5f316d583f99d6312008"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gab213cd0e3ead5f316d583f99d6312008">inverseTranspose</a> (genType const &m)</td></tr>
-<tr class="separator:gab213cd0e3ead5f316d583f99d6312008"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
+<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
+<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
+<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
+<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template<typename genTYpe > </td></tr>
+<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
+<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaba9cec867916d894d794a32897b7fdfd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaba9cec867916d894d794a32897b7fdfd">linearRand</a> (vecType< T, P > const &Min, vecType< T, P > const &Max)</td></tr>
+<tr class="separator:gaba9cec867916d894d794a32897b7fdfd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00173.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
+<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines additional matrix inverting functions. </p>
-<p><<a class="el" href="a00073.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_inverse.hpp</a>> need to be included to use these functionalities. </p>
+<p>Generate random number from various distribution methods. </p>
+<p><<a class="el" href="a00089.html" title="GLM_GTC_random ">glm/gtc/random.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gae0fcc5fc8783291f9702272de428fa0e"></a>
+<a class="anchor" id="ga5506dee301160e3a06aef9b9bc7a0a83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::affineInverse </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::ballRand </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Fast matrix inverse for affine matrix. </p>
+<p>Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">m</td><td>Input matrix to invert. </td></tr>
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae989c26a2899b2fb7444abe7c275c29c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::circularRand </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad3a3ee7d26502a31ba552cb627a68606"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::diskRand </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5193a83e49e4fdc5652c084711083574"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::gaussRand </td>
+ <td>(</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Mean</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Deviation</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate random numbers in the interval [Min, Max], according a gaussian distribution. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Mean</td><td></td></tr>
+ <tr><td class="paramname">Deviation</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12aebc19b85a8c736f5801c2f7b9b716"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genTYpe glm::linearRand </td>
+ <td>(</td>
+ <td class="paramtype">genTYpe </td>
+ <td class="paramname"><em>Min</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genTYpe </td>
+ <td class="paramname"><em>Max</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Min</td><td></td></tr>
+ <tr><td class="paramname">Max</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ <tr><td class="paramname">genType</td><td>Value type. Currently supported: float or double scalars. </td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab213cd0e3ead5f316d583f99d6312008"></a>
+<a class="anchor" id="gaba9cec867916d894d794a32897b7fdfd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::inverseTranspose </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::linearRand </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Min</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Max</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Compute the inverse transpose of a matrix. </p>
+<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">m</td><td>Input matrix to invert transpose. </td></tr>
+ <tr><td class="paramname">Min</td><td></td></tr>
+ <tr><td class="paramname">Max</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">genType</td><td>Squared floating-point matrix: half, float or double. Inverse of matrix based of half-precision floating point value is highly innacurate. </td></tr>
+ <tr><td class="paramname">T</td><td>Value type. Currently supported: float or double. </td></tr>
+ <tr><td class="paramname">vecType</td><td>A vertor type: tvec1, tvec2, tvec3, tvec4 or compatible </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa9a6fc2d7a295b3857f7db23b1053d9d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::sphericalRand </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Radius</td><td></td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Defines additional matrix inverting functions. ">GLM_GTC_matrix_inverse</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00173.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00174.html b/doc/api/a00174.html
index 4aba0cc..ad195c0 100644
--- a/doc/api/a00174.html
+++ b/doc/api/a00174.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_matrix_transform</title>
+<title>0.9.8: GLM_GTC_reciprocal</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,1243 +39,359 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_matrix_transform<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_reciprocal<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gada6deb989d4b553fe0f7e3279f3afae1">frustum</a> (T left, T right, T bottom, T top, T near, T far)</td></tr>
-<tr class="separator:gada6deb989d4b553fe0f7e3279f3afae1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga79f704ad91a5f0d68abd88c66c8186e5">infinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:ga79f704ad91a5f0d68abd88c66c8186e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaf8eef81da1ad09f6a8920101c01eaae4">lookAt</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:gaf8eef81da1ad09f6a8920101c01eaae4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gacd0c077ec7b58a575855e29cb5fb586d">lookAtLH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:gacd0c077ec7b58a575855e29cb5fb586d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2876d9313334980b94292d2ec169088e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2876d9313334980b94292d2ec169088e">lookAtRH</a> (tvec3< T, P > const &eye, tvec3< T, P > const ¢er, tvec3< T, P > const &up)</td></tr>
-<tr class="separator:ga2876d9313334980b94292d2ec169088e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga65280251de6e38580110a0577a43d8f8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga65280251de6e38580110a0577a43d8f8">ortho</a> (T left, T right, T bottom, T top, T zNear, T zFar)</td></tr>
-<tr class="separator:ga65280251de6e38580110a0577a43d8f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga45b1b64f99255c07119b4f1aaed04dd7">ortho</a> (T left, T right, T bottom, T top)</td></tr>
-<tr class="separator:ga45b1b64f99255c07119b4f1aaed04dd7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gac3613dcb6c6916465ad5b7ad5a786175">perspective</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:gac3613dcb6c6916465ad5b7ad5a786175"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae9146e2c550fc8646299e4b900238145"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae9146e2c550fc8646299e4b900238145">perspectiveFov</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae9146e2c550fc8646299e4b900238145"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae705a2f19c3ef5ef880bd6c92759cf2d">perspectiveFovLH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:gae705a2f19c3ef5ef880bd6c92759cf2d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga07cd8df791bf90dcb782645fe0b21261"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga07cd8df791bf90dcb782645fe0b21261">perspectiveFovRH</a> (T fov, T width, T height, T near, T far)</td></tr>
-<tr class="separator:ga07cd8df791bf90dcb782645fe0b21261"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga34048da27c559f1ac8e9550d169dd6f3">perspectiveLH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga34048da27c559f1ac8e9550d169dd6f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga5a4fa9f8ffabb2294e48a18bf8fa2f5f">perspectiveRH</a> (T fovy, T aspect, T near, T far)</td></tr>
-<tr class="separator:ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplParams" colspan="2">template<typename T , precision P, typename U > </td></tr>
-<tr class="memitem:ga9026c77505b99990f68826f27c267dc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9026c77505b99990f68826f27c267dc5">pickMatrix</a> (tvec2< T, P > const ¢er, tvec2< T, P > const &delta, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:ga9026c77505b99990f68826f27c267dc5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:gad743556abd138264d4f06f4ca27f1d7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gad743556abd138264d4f06f4ca27f1d7e">project</a> (tvec3< T, P > const &obj, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:gad743556abd138264d4f06f4ca27f1d7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga161b1df124348f232d994ba7958e4815"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga161b1df124348f232d994ba7958e4815">rotate</a> (tmat4x4< T, P > const &m, T angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga161b1df124348f232d994ba7958e4815"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8f062fcc07e2445500793f2803afebb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga8f062fcc07e2445500793f2803afebb0">scale</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga8f062fcc07e2445500793f2803afebb0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">translate</a> (tmat4x4< T, P > const &m, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:gaee134ab77c6c5548a6ebf4e8e476c6ed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaed64bd81f5ecdab52fecbdf7f6b58194">tweakedInfinitePerspective</a> (T fovy, T aspect, T near)</td></tr>
-<tr class="separator:gaed64bd81f5ecdab52fecbdf7f6b58194"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaa50fce7f50b5d5da881ed30f5532a921">tweakedInfinitePerspective</a> (T fovy, T aspect, T near, T ep)</td></tr>
-<tr class="separator:gaa50fce7f50b5d5da881ed30f5532a921"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga82a558de3ce42cbeed0f6ec292a4e1b3">unProject</a> (tvec3< T, P > const &win, tmat4x4< T, P > const &model, tmat4x4< T, P > const &proj, tvec4< U, P > const &viewport)</td></tr>
-<tr class="separator:ga82a558de3ce42cbeed0f6ec292a4e1b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaeadfb9c9d71093f7865b2ba2ca8d104d">acot</a> (genType x)</td></tr>
+<tr class="separator:gaeadfb9c9d71093f7865b2ba2ca8d104d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gafaca98a7100170db8841f446282debfa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gafaca98a7100170db8841f446282debfa">acoth</a> (genType x)</td></tr>
+<tr class="separator:gafaca98a7100170db8841f446282debfa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga1b4bed91476b9b915e76b4a30236d330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga1b4bed91476b9b915e76b4a30236d330">acsc</a> (genType x)</td></tr>
+<tr class="separator:ga1b4bed91476b9b915e76b4a30236d330"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga4b50aa5e5afc7e19ec113ab91596c576">acsch</a> (genType x)</td></tr>
+<tr class="separator:ga4b50aa5e5afc7e19ec113ab91596c576"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga2c5b7f962c2c9ff684e6d2de48db1f10">asec</a> (genType x)</td></tr>
+<tr class="separator:ga2c5b7f962c2c9ff684e6d2de48db1f10"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaec7586dccfe431f850d006f3824b8ca6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gaec7586dccfe431f850d006f3824b8ca6">asech</a> (genType x)</td></tr>
+<tr class="separator:gaec7586dccfe431f850d006f3824b8ca6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga3a7b517a95bbd3ad74da3aea87a66314">cot</a> (genType angle)</td></tr>
+<tr class="separator:ga3a7b517a95bbd3ad74da3aea87a66314"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6b8b770eb7198e4dea59d52e6db81442">coth</a> (genType angle)</td></tr>
+<tr class="separator:ga6b8b770eb7198e4dea59d52e6db81442"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga59dd0005b6474eea48af743b4f14ebbb">csc</a> (genType angle)</td></tr>
+<tr class="separator:ga59dd0005b6474eea48af743b4f14ebbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga6d95843ff3ca6472ab399ba171d290a0">csch</a> (genType angle)</td></tr>
+<tr class="separator:ga6d95843ff3ca6472ab399ba171d290a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#gae4bcbebee670c5ea155f0777b3acbd84">sec</a> (genType angle)</td></tr>
+<tr class="separator:gae4bcbebee670c5ea155f0777b3acbd84"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00174.html#ga9a5cfd1e7170104a7b33863b1b75e5ae">sech</a> (genType angle)</td></tr>
+<tr class="separator:ga9a5cfd1e7170104a7b33863b1b75e5ae"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions that generate common transformation matrices. </p>
-<p>The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.</p>
-<p><<a class="el" href="a00077.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/matrix_transform.hpp</a>> need to be included to use these functionalities. </p>
+<p>Define secant, cosecant and cotangent functions. </p>
+<p><<a class="el" href="a00092.html" title="GLM_GTC_reciprocal ">glm/gtc/reciprocal.hpp</a>> need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gada6deb989d4b553fe0f7e3279f3afae1"></a>
+<a class="anchor" id="gaeadfb9c9d71093f7865b2ba2ca8d104d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::frustum </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acot </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>top</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a frustum matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- <tr><td class="paramname">near</td><td></td></tr>
- <tr><td class="paramname">far</td><td></td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cotangent function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga79f704ad91a5f0d68abd88c66c8186e5"></a>
+<a class="anchor" id="gafaca98a7100170db8841f446282debfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::infinitePerspective </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acoth </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cotangent hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf8eef81da1ad09f6a8920101c01eaae4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAt </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>up</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a look at view matrix based on the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gacd0c077ec7b58a575855e29cb5fb586d"></a>
+<a class="anchor" id="ga1b4bed91476b9b915e76b4a30236d330"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAtLH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acsc </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>up</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a left handed look at view matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2876d9313334980b94292d2ec169088e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::lookAtRH </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>eye</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>up</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a right handed look at view matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">eye</td><td>Position of the camera </td></tr>
- <tr><td class="paramname">center</td><td>Position where the camera is looking at </td></tr>
- <tr><td class="paramname">up</td><td>Normalized up vector, how the camera is oriented. Typically (0, 0, 1) </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) frustum(T const & left, T const & right, T const & bottom, T const & top, T const & nearVal, T const & farVal) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga65280251de6e38580110a0577a43d8f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>top</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>zNear</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>zFar</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for an orthographic parallel viewing volume. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- <tr><td class="paramname">zNear</td><td></td></tr>
- <tr><td class="paramname">zFar</td><td></td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cosecant function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga45b1b64f99255c07119b4f1aaed04dd7"></a>
+<a class="anchor" id="ga4b50aa5e5afc7e19ec113ab91596c576"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::ortho </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::acsch </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>left</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>right</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>bottom</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>top</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for projecting two-dimensional coordinates onto the screen. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">left</td><td></td></tr>
- <tr><td class="paramname">right</td><td></td></tr>
- <tr><td class="paramname">bottom</td><td></td></tr>
- <tr><td class="paramname">top</td><td></td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse cosecant hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac3613dcb6c6916465ad5b7ad5a786175"></a>
+<a class="anchor" id="ga2c5b7f962c2c9ff684e6d2de48db1f10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspective </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::asec </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a symetric perspective-view frustum based on the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse secant function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae9146e2c550fc8646299e4b900238145"></a>
+<a class="anchor" id="gaec7586dccfe431f850d006f3824b8ca6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFov </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::asech </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a perspective projection matrix based on a field of view and the default handedness. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Inverse secant hyperbolic function. </p>
+<dl class="section return"><dt>Returns</dt><dd>Return an angle expressed in radians. </dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae705a2f19c3ef5ef880bd6c92759cf2d"></a>
+<a class="anchor" id="ga3a7b517a95bbd3ad74da3aea87a66314"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFovLH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::cot </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a left handed perspective projection matrix based on a field of view. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cotangent function. </p>
+<p>adjacent / opposite or 1 / tan(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga07cd8df791bf90dcb782645fe0b21261"></a>
+<a class="anchor" id="ga6b8b770eb7198e4dea59d52e6db81442"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveFovRH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::coth </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fov</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>height</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a right handed perspective projection matrix based on a field of view. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fov</td><td>Expressed in radians. </td></tr>
- <tr><td class="paramname">width</td><td></td></tr>
- <tr><td class="paramname">height</td><td></td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cotangent hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga34048da27c559f1ac8e9550d169dd6f3"></a>
+<a class="anchor" id="ga59dd0005b6474eea48af743b4f14ebbb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveLH </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::csc </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a left handed, symetric perspective-view frustum. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5a4fa9f8ffabb2294e48a18bf8fa2f5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::perspectiveRH </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>far</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for a right handed, symetric perspective-view frustum. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">far</td><td>Specifies the distance from the viewer to the far clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9026c77505b99990f68826f27c267dc5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::pickMatrix </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>center</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>delta</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< U, P > const & </td>
- <td class="paramname"><em>viewport</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Define a picking region. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">center</td><td></td></tr>
- <tr><td class="paramname">delta</td><td></td></tr>
- <tr><td class="paramname">viewport</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad743556abd138264d4f06f4ca27f1d7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::project </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>obj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>model</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>proj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< U, P > const & </td>
- <td class="paramname"><em>viewport</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">obj</td><td>Specify the object coordinates. </td></tr>
- <tr><td class="paramname">model</td><td>Specifies the current modelview matrix </td></tr>
- <tr><td class="paramname">proj</td><td>Specifies the current projection matrix </td></tr>
- <tr><td class="paramname">viewport</td><td>Specifies the current viewport </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Return the computed window coordinates. </dd></dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga161b1df124348f232d994ba7958e4815"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a rotation 4 * 4 matrix created from an axis vector and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Rotation axis, recommended to be normalized. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cosecant function. </p>
+<p>hypotenuse / opposite or 1 / sin(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Supported: half, float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(T angle, tvec3<T, P> const & v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8f062fcc07e2445500793f2803afebb0"></a>
+<a class="anchor" id="ga6d95843ff3ca6472ab399ba171d290a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::scale </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::csch </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a scale 4 * 4 matrix created from 3 scalars. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this scale matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Ratio of scaling for each axis. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Cosecant hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- scale(tmat4x4<T, P> const & m, T x, T y, T z) </dd>
-<dd>
-- scale(tvec3<T, P> const & v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaee134ab77c6c5548a6ebf4e8e476c6ed"></a>
+<a class="anchor" id="gae4bcbebee670c5ea155f0777b3acbd84"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::sec </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Builds a translation 4 * 4 matrix created from a vector of 3 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Secant function. </p>
+<p>hypotenuse / adjacent or 1 / cos(x)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. <div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="a00040.html">glm/glm.hpp</a>></span></div>
-<div class="line"><span class="preprocessor">#include <<a class="code" href="a00077.html">glm/gtc/matrix_transform.hpp</a>></span></div>
-<div class="line">...</div>
-<div class="line">glm::mat4 m = <a class="code" href="a00174.html#gaee134ab77c6c5548a6ebf4e8e476c6ed">glm::translate</a>(<a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a>(1.0f), <a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a>(1.0f));</div>
-<div class="line"><span class="comment">// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f</span></div>
-<div class="line"><span class="comment">// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f</span></div>
-</div><!-- fragment --> </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-- translate(tmat4x4<T, P> const & m, T x, T y, T z) </dd>
-<dd>
-- translate(tvec3<T, P> const & v) </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaed64bd81f5ecdab52fecbdf7f6b58194"></a>
+<a class="anchor" id="ga9a5cfd1e7170104a7b33863b1b75e5ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::sech </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa50fce7f50b5d5da881ed30f5532a921"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::tweakedInfinitePerspective </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>fovy</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>aspect</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>near</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>ep</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">fovy</td><td>Specifies the field of view angle, in degrees, in the y direction. Expressed in radians. </td></tr>
- <tr><td class="paramname">aspect</td><td>Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height). </td></tr>
- <tr><td class="paramname">near</td><td>Specifies the distance from the viewer to the near clipping plane (always positive). </td></tr>
- <tr><td class="paramname">ep</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga82a558de3ce42cbeed0f6ec292a4e1b3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::unProject </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>win</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>model</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>proj</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< U, P > const & </td>
- <td class="paramname"><em>viewport</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">win</td><td>Specify the window coordinates to be mapped. </td></tr>
- <tr><td class="paramname">model</td><td>Specifies the modelview matrix </td></tr>
- <tr><td class="paramname">proj</td><td>Specifies the projection matrix </td></tr>
- <tr><td class="paramname">viewport</td><td>Specifies the viewport </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Returns the computed object coordinates. </dd></dl>
+<p>Secant hyperbolic function. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
- <tr><td class="paramname">T</td><td>Native type used for the computation. Currently supported: half (not recommanded), float or double. </td></tr>
- <tr><td class="paramname">U</td><td>Currently supported: Floating-point types and integer types. </td></tr>
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
</table>
</dd>
</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00175.html b/doc/api/a00175.html
index 7fd3caa..55e4c3c 100644
--- a/doc/api/a00175.html
+++ b/doc/api/a00175.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_noise</title>
+<title>0.9.8: GLM_GTC_round</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,59 +39,327 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_noise<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_round<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga14e5975486b2b36e747861d3c65b16c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga14e5975486b2b36e747861d3c65b16c1">perlin</a> (vecType< T, P > const &p)</td></tr>
-<tr class="separator:ga14e5975486b2b36e747861d3c65b16c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7e103ffffacb322fe2d4863c372ae2fd">perlin</a> (vecType< T, P > const &p, vecType< T, P > const &rep)</td></tr>
-<tr class="separator:ga7e103ffffacb322fe2d4863c372ae2fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga05f5ab240c9a3fdeee353636e464c285"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga05f5ab240c9a3fdeee353636e464c285">simplex</a> (vecType< T, P > const &p)</td></tr>
-<tr class="separator:ga05f5ab240c9a3fdeee353636e464c285"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
+<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType< T, P > const &Value, T Multiple)</td></tr>
+<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType< T, P > const &Value, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
+<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
+<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
+<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00175.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf">http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf</a> <<a class="el" href="a00080.html" title="OpenGL Mathematics (glm.g-truc.net) "> [...]
+<p>rounding value to specific boundings </p>
+<p><<a class="el" href="a00095.html" title="GLM_GTC_round ">glm/gtc/round.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga14e5975486b2b36e747861d3c65b16c1"></a>
+<a class="anchor" id="gac84898c466e609cdd2e81d9ba907d9e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::ceilMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Higher multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafe632af669ac57d670ca18e3665a12ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::ceilMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Higher multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa73c7690c787086fa3ac1c312264acab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga76ec9b214ea1376fe09a903e34bab847"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::ceilPowerOfTwo </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>p</em></td><td>)</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9eafb9dbedf84e5cece65c2fe9d5631d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::floorMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Classic perlin noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7e103ffffacb322fe2d4863c372ae2fd"></a>
+<a class="anchor" id="ga6912db42d43873fe1dedb3aed2b7a239"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::perlin </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::floorMultiple </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>p</em>, </td>
+ <td class="paramname"><em>Source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>rep</em> </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac80f6519c31baae10d8d7bea6735d1fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::floorPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6a5a8f6dd1b2f755e4572bd039062c37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::floorPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf7444a7b2eb524f373463ceba76b9326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Multiple</em> </td>
</tr>
<tr>
<td></td>
@@ -101,27 +369,226 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Periodic perlin noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50ea5d5dc33fffba39ad6002a3784123"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ae705574ef3e3ebfb4f537d8d285c48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Value</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaebf826fbb6e0a70eeaab0792d89b25ec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the value is a power of two number. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad454e4c8d8cd73ddc7de855f733a1465"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return true if the value is a power of two number. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6739d1de04b2cea7c78675b365644bce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::roundMultiple </td>
+ <td>(</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga10a8ab7b254257b607b6a3fc68c3e661"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::roundMultiple </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>Multiple</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Lower multiple number of Source. </p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">Source</td><td></td></tr>
+ <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6d24a9e3abe3e6a908661b43acb8efe0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::roundPowerOfTwo </td>
+ <td>(</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the power of two number which value is the closet to the input value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga05f5ab240c9a3fdeee353636e464c285"></a>
+<a class="anchor" id="gae95be3b384f3bbd00c6c1cf0a1f96485"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::simplex </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::roundPowerOfTwo </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>p</em></td><td>)</td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Simplex noise. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Art...">GLM_GTC_noise</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00176.html b/doc/api/a00176.html
index 9e3287c..7b56fa8 100644
--- a/doc/api/a00176.html
+++ b/doc/api/a00176.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_packing</title>
+<title>0.9.8: GLM_GTC_type_aligned</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,931 +37,643 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_packing<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_aligned<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga4944ad465ff950e926d49621f916c78d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4944ad465ff950e926d49621f916c78d">packF2x11_1x10</a> (vec3 const &v)</td></tr>
-<tr class="separator:ga4944ad465ff950e926d49621f916c78d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga43f2093b6ff192a79058ff7834fc3528"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga43f2093b6ff192a79058ff7834fc3528">packHalf1x16</a> (float v)</td></tr>
-<tr class="separator:ga43f2093b6ff192a79058ff7834fc3528"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gafe2f7b39caf8f5ec555e1c059ec530e6">packHalf4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:gafe2f7b39caf8f5ec555e1c059ec530e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06ecb6afb902dba45419008171db9023"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga06ecb6afb902dba45419008171db9023">packI3x10_1x2</a> (ivec4 const &v)</td></tr>
-<tr class="separator:ga06ecb6afb902dba45419008171db9023"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab22f8bcfdb5fc65af4701b25f143c1af">packSnorm1x16</a> (float v)</td></tr>
-<tr class="separator:gab22f8bcfdb5fc65af4701b25f143c1af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae3592e0795e62aaa1865b3a10496a7a1">packSnorm1x8</a> (float s)</td></tr>
-<tr class="separator:gae3592e0795e62aaa1865b3a10496a7a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga6be3cfb2cce3702f03e91bbeb5286d7e">packSnorm2x8</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga6be3cfb2cce3702f03e91bbeb5286d7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab997545661877d2c7362a5084d3897d3"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab997545661877d2c7362a5084d3897d3">packSnorm3x10_1x2</a> (vec4 const &v)</td></tr>
-<tr class="separator:gab997545661877d2c7362a5084d3897d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga358943934d21da947d5bcc88c2ab7832"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga358943934d21da947d5bcc88c2ab7832">packSnorm4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga358943934d21da947d5bcc88c2ab7832"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gada3d88d59f0f458f9c51a9fd359a4bc0">packU3x10_1x2</a> (uvec4 const &v)</td></tr>
-<tr class="separator:gada3d88d59f0f458f9c51a9fd359a4bc0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f82737bf2a44bedff1d286b76837886"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9f82737bf2a44bedff1d286b76837886">packUnorm1x16</a> (float v)</td></tr>
-<tr class="separator:ga9f82737bf2a44bedff1d286b76837886"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b2fa60df3460403817d28b082ee0736"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4b2fa60df3460403817d28b082ee0736">packUnorm1x8</a> (float v)</td></tr>
-<tr class="separator:ga4b2fa60df3460403817d28b082ee0736"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a666b1c688ab54100061ed06526de6e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a666b1c688ab54100061ed06526de6e">packUnorm2x8</a> (vec2 const &v)</td></tr>
-<tr class="separator:ga9a666b1c688ab54100061ed06526de6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a1ee625d2707c60530fb3fca2980b19">packUnorm3x10_1x2</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga8a1ee625d2707c60530fb3fca2980b19"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1f63c264e7ab63264e2b2a99fd393897">packUnorm4x16</a> (vec4 const &v)</td></tr>
-<tr class="separator:ga1f63c264e7ab63264e2b2a99fd393897"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2b1fd1e854705b1345e98409e0a25e50">unpackF2x11_1x10</a> (uint32 p)</td></tr>
-<tr class="separator:ga2b1fd1e854705b1345e98409e0a25e50"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac37dedaba24b00adb4ec6e8f92c19dbf">unpackHalf1x16</a> (uint16 v)</td></tr>
-<tr class="separator:gac37dedaba24b00adb4ec6e8f92c19dbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd">unpackHalf4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga57dfc41b2eb20b0ac00efae7d9c49dcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9a05330e5490be0908d3b117d82aff56"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga9a05330e5490be0908d3b117d82aff56">unpackI3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga9a05330e5490be0908d3b117d82aff56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96dd15002370627a443c835ab03a766c"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga96dd15002370627a443c835ab03a766c">unpackSnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga96dd15002370627a443c835ab03a766c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4851ff86678aa1c7ace9d67846894285"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4851ff86678aa1c7ace9d67846894285">unpackSnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga4851ff86678aa1c7ace9d67846894285"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b128e89be449fc71336968a66bf6e1a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8b128e89be449fc71336968a66bf6e1a">unpackSnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga8b128e89be449fc71336968a66bf6e1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7a4fbf79be9740e3c57737bc2af05e5b">unpackSnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga7a4fbf79be9740e3c57737bc2af05e5b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaddf9c353528fe896106f7181219c7f4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaaddf9c353528fe896106f7181219c7f4">unpackSnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:gaaddf9c353528fe896106f7181219c7f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48df3042a7d079767f5891a1bfd8a60a">unpackU3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga48df3042a7d079767f5891a1bfd8a60a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga83d34160a5cb7bcb5339823210fc7501"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga83d34160a5cb7bcb5339823210fc7501">unpackUnorm1x16</a> (uint16 p)</td></tr>
-<tr class="separator:ga83d34160a5cb7bcb5339823210fc7501"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1319207e30874fb4931a9ee913983ee1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1319207e30874fb4931a9ee913983ee1">unpackUnorm1x8</a> (uint8 p)</td></tr>
-<tr class="separator:ga1319207e30874fb4931a9ee913983ee1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga637cbe3913dd95c6e7b4c99c61bd611f">unpackUnorm2x8</a> (uint16 p)</td></tr>
-<tr class="separator:ga637cbe3913dd95c6e7b4c99c61bd611f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5156d3060355fe332865da2c7f78815f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5156d3060355fe332865da2c7f78815f">unpackUnorm3x10_1x2</a> (uint32 p)</td></tr>
-<tr class="separator:ga5156d3060355fe332865da2c7f78815f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2ae149c5d2473ac1e5f347bb654a242d">unpackUnorm4x16</a> (uint64 p)</td></tr>
-<tr class="separator:ga2ae149c5d2473ac1e5f347bb654a242d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga780a35f764020f553a9601a3fcdcd059"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga780a35f764020f553a9601a3fcdcd059"></a>
+typedef aligned_highp_bvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga780a35f764020f553a9601a3fcdcd059">aligned_bvec1</a></td></tr>
+<tr class="separator:ga780a35f764020f553a9601a3fcdcd059"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae766b317c5afec852bfb3d74a3c54bc8"></a>
+typedef aligned_highp_bvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae766b317c5afec852bfb3d74a3c54bc8">aligned_bvec2</a></td></tr>
+<tr class="separator:gae766b317c5afec852bfb3d74a3c54bc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1964ba70d15915e5b710926decbb3cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae1964ba70d15915e5b710926decbb3cb"></a>
+typedef aligned_highp_bvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae1964ba70d15915e5b710926decbb3cb">aligned_bvec3</a></td></tr>
+<tr class="separator:gae1964ba70d15915e5b710926decbb3cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae164a1f7879f828bc35e50b79d786b05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae164a1f7879f828bc35e50b79d786b05"></a>
+typedef aligned_highp_bvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae164a1f7879f828bc35e50b79d786b05">aligned_bvec4</a></td></tr>
+<tr class="separator:gae164a1f7879f828bc35e50b79d786b05"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4974f46ae5a19415d91316960a53617a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4974f46ae5a19415d91316960a53617a"></a>
+typedef aligned_highp_dvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a></td></tr>
+<tr class="separator:ga4974f46ae5a19415d91316960a53617a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18d859f87122b2b3b2992ffe86dbebc0"></a>
+typedef aligned_highp_dvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a></td></tr>
+<tr class="separator:ga18d859f87122b2b3b2992ffe86dbebc0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa37869eea77d28419b2fb0ff70b69bf0"></a>
+typedef aligned_highp_dvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a></td></tr>
+<tr class="separator:gaa37869eea77d28419b2fb0ff70b69bf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a9f0a4795ccc442fa9901845026f9f5"></a>
+typedef aligned_highp_dvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a></td></tr>
+<tr class="separator:ga8a9f0a4795ccc442fa9901845026f9f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac5ffd9396890b64e707ba47c76435dfe"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac5ffd9396890b64e707ba47c76435dfe">aligned_highp_bvec2</a></td></tr>
+<tr class="separator:gac5ffd9396890b64e707ba47c76435dfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3adba191018d2de1dc2834a2ff5597d7"></a>
+typedef tvec3< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3adba191018d2de1dc2834a2ff5597d7">aligned_highp_bvec3</a></td></tr>
+<tr class="separator:ga3adba191018d2de1dc2834a2ff5597d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga903a73cf8ae1f4bc24583b81adf024dc"></a>
+typedef tvec4< bool, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga903a73cf8ae1f4bc24583b81adf024dc">aligned_highp_bvec4</a></td></tr>
+<tr class="separator:ga903a73cf8ae1f4bc24583b81adf024dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga186b90f0ba86724e080d237f3f5f9417"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga186b90f0ba86724e080d237f3f5f9417">aligned_highp_dvec2</a></td></tr>
+<tr class="separator:ga186b90f0ba86724e080d237f3f5f9417"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga54f6765716867706643bde03211d600f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga54f6765716867706643bde03211d600f">aligned_highp_dvec3</a></td></tr>
+<tr class="separator:ga54f6765716867706643bde03211d600f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e5a90ed034e9e7414ff71e66a79139e"></a>
+typedef tvec4< double, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga8e5a90ed034e9e7414ff71e66a79139e">aligned_highp_dvec4</a></td></tr>
+<tr class="separator:ga8e5a90ed034e9e7414ff71e66a79139e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab6ddd9d1421eb610ddeb32705fed7026">aligned_highp_ivec2</a></td></tr>
+<tr class="separator:gab6ddd9d1421eb610ddeb32705fed7026"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae234a3a1c6288fa5e2d4c78c5e39002e">aligned_highp_ivec3</a></td></tr>
+<tr class="separator:gae234a3a1c6288fa5e2d4c78c5e39002e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e3286a27b19f25801fb435b6d1225fb"></a>
+typedef tvec4< int, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1e3286a27b19f25801fb435b6d1225fb">aligned_highp_ivec4</a></td></tr>
+<tr class="separator:ga1e3286a27b19f25801fb435b6d1225fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7366a38dc888164e623fc10663e97670"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7366a38dc888164e623fc10663e97670">aligned_highp_uvec2</a></td></tr>
+<tr class="separator:ga7366a38dc888164e623fc10663e97670"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga967485a7e963365642ea17de62fe2a3f"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga967485a7e963365642ea17de62fe2a3f">aligned_highp_uvec3</a></td></tr>
+<tr class="separator:ga967485a7e963365642ea17de62fe2a3f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac56a4ce85b6233998139a7c1ac337440"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac56a4ce85b6233998139a7c1ac337440"></a>
+typedef tvec4< uint, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gac56a4ce85b6233998139a7c1ac337440">aligned_highp_uvec4</a></td></tr>
+<tr class="separator:gac56a4ce85b6233998139a7c1ac337440"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea854184b9d574fc5e75b5709a4974e8"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaea854184b9d574fc5e75b5709a4974e8">aligned_highp_vec2</a></td></tr>
+<tr class="separator:gaea854184b9d574fc5e75b5709a4974e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga55fb20d4e73a65c834b5861fc6cf4c36">aligned_highp_vec3</a></td></tr>
+<tr class="separator:ga55fb20d4e73a65c834b5861fc6cf4c36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae2938d64c6a46f721681607c2ab3f884"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2938d64c6a46f721681607c2ab3f884"></a>
+typedef tvec4< float, aligned_highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae2938d64c6a46f721681607c2ab3f884">aligned_highp_vec4</a></td></tr>
+<tr class="separator:gae2938d64c6a46f721681607c2ab3f884"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga76298aed82a439063c3d55980c84aa0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76298aed82a439063c3d55980c84aa0b"></a>
+typedef aligned_highp_ivec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a></td></tr>
+<tr class="separator:ga76298aed82a439063c3d55980c84aa0b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4f38fd2c86cee6940986197777b3ca4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4f38fd2c86cee6940986197777b3ca4"></a>
+typedef aligned_highp_ivec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a></td></tr>
+<tr class="separator:gae4f38fd2c86cee6940986197777b3ca4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga32794322d294e5ace7fed4a61896f270"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga32794322d294e5ace7fed4a61896f270"></a>
+typedef aligned_highp_ivec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a></td></tr>
+<tr class="separator:ga32794322d294e5ace7fed4a61896f270"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f79eae5927c9033d84617e49f6f34e4"></a>
+typedef aligned_highp_ivec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a></td></tr>
+<tr class="separator:ga7f79eae5927c9033d84617e49f6f34e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga524c702b82ae7ccaca896d374808c6d7"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga524c702b82ae7ccaca896d374808c6d7">aligned_lowp_bvec2</a></td></tr>
+<tr class="separator:ga524c702b82ae7ccaca896d374808c6d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga21fb6238997b4a21848411b16bc34e93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21fb6238997b4a21848411b16bc34e93"></a>
+typedef tvec3< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga21fb6238997b4a21848411b16bc34e93">aligned_lowp_bvec3</a></td></tr>
+<tr class="separator:ga21fb6238997b4a21848411b16bc34e93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0b5e3c64f8dbadfc42a2aca5f2da9692"></a>
+typedef tvec4< bool, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0b5e3c64f8dbadfc42a2aca5f2da9692">aligned_lowp_bvec4</a></td></tr>
+<tr class="separator:ga0b5e3c64f8dbadfc42a2aca5f2da9692"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gab70c189b4691715b3f7f0abb35c65b2f">aligned_lowp_dvec2</a></td></tr>
+<tr class="separator:gab70c189b4691715b3f7f0abb35c65b2f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabeec3d5ec99c196f4c0eb03b58d486ee">aligned_lowp_dvec3</a></td></tr>
+<tr class="separator:gabeec3d5ec99c196f4c0eb03b58d486ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab365ee7cfd19bab449daa8f7eb0ca71"></a>
+typedef tvec4< double, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaab365ee7cfd19bab449daa8f7eb0ca71">aligned_lowp_dvec4</a></td></tr>
+<tr class="separator:gaab365ee7cfd19bab449daa8f7eb0ca71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad69bf7c406a3cec994307473cb3da032"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad69bf7c406a3cec994307473cb3da032">aligned_lowp_ivec2</a></td></tr>
+<tr class="separator:gad69bf7c406a3cec994307473cb3da032"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaa8615b4ce4fdf176c631b34d2d31d81b">aligned_lowp_ivec3</a></td></tr>
+<tr class="separator:gaa8615b4ce4fdf176c631b34d2d31d81b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad744848a2e4ddd2f041e6ec8d13600ae"></a>
+typedef tvec4< int, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad744848a2e4ddd2f041e6ec8d13600ae">aligned_lowp_ivec4</a></td></tr>
+<tr class="separator:gad744848a2e4ddd2f041e6ec8d13600ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga15355ffc7ec7931b81ba76736b65e51a">aligned_lowp_uvec2</a></td></tr>
+<tr class="separator:ga15355ffc7ec7931b81ba76736b65e51a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga48c85299d98e8248f547a2c07ea609cf"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga48c85299d98e8248f547a2c07ea609cf">aligned_lowp_uvec3</a></td></tr>
+<tr class="separator:ga48c85299d98e8248f547a2c07ea609cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga40b0e05306f666f835ac97c963302ecb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga40b0e05306f666f835ac97c963302ecb"></a>
+typedef tvec4< uint, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga40b0e05306f666f835ac97c963302ecb">aligned_lowp_uvec4</a></td></tr>
+<tr class="separator:ga40b0e05306f666f835ac97c963302ecb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga3cfc38b4ea9b9bd1e9f02dcc14eab367">aligned_lowp_vec2</a></td></tr>
+<tr class="separator:ga3cfc38b4ea9b9bd1e9f02dcc14eab367"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae003f8f3071a8bc734a70c6d4978f968"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae003f8f3071a8bc734a70c6d4978f968">aligned_lowp_vec3</a></td></tr>
+<tr class="separator:gae003f8f3071a8bc734a70c6d4978f968"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga689f103781a795e919fddfa47d89170d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga689f103781a795e919fddfa47d89170d"></a>
+typedef tvec4< float, aligned_lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga689f103781a795e919fddfa47d89170d">aligned_lowp_vec4</a></td></tr>
+<tr class="separator:ga689f103781a795e919fddfa47d89170d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga77d37d7c80c7faa2eecb3eba7677750e">aligned_mediump_bvec2</a></td></tr>
+<tr class="separator:ga77d37d7c80c7faa2eecb3eba7677750e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f78cd6d9c5827771e35921b4a92855a"></a>
+typedef tvec3< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga4f78cd6d9c5827771e35921b4a92855a">aligned_mediump_bvec3</a></td></tr>
+<tr class="separator:ga4f78cd6d9c5827771e35921b4a92855a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2cb80e2d4d351abeadac7b1676a91fd9"></a>
+typedef tvec4< bool, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2cb80e2d4d351abeadac7b1676a91fd9">aligned_mediump_bvec4</a></td></tr>
+<tr class="separator:ga2cb80e2d4d351abeadac7b1676a91fd9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memItemLeft" align="right" valign="top">typedef tvec2< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaba56f2b76d320379cdf7c37e0d4b03bd">aligned_mediump_dvec2</a></td></tr>
+<tr class="separator:gaba56f2b76d320379cdf7c37e0d4b03bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22efc7f84ab79eef640e00fc59d07478"><td class="memItemLeft" align="right" valign="top">typedef tvec3< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga22efc7f84ab79eef640e00fc59d07478">aligned_mediump_dvec3</a></td></tr>
+<tr class="separator:ga22efc7f84ab79eef640e00fc59d07478"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad6f422f8871685ee467a575238e4ece4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6f422f8871685ee467a575238e4ece4"></a>
+typedef tvec4< double, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gad6f422f8871685ee467a575238e4ece4">aligned_mediump_dvec4</a></td></tr>
+<tr class="separator:gad6f422f8871685ee467a575238e4ece4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga389d12dcc8d57a444944a72646d17efa"><td class="memItemLeft" align="right" valign="top">typedef tvec2< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga389d12dcc8d57a444944a72646d17efa">aligned_mediump_ivec2</a></td></tr>
+<tr class="separator:ga389d12dcc8d57a444944a72646d17efa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memItemLeft" align="right" valign="top">typedef tvec3< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga5b16f7e81555819bf0f80f4db4bc0b26">aligned_mediump_ivec3</a></td></tr>
+<tr class="separator:ga5b16f7e81555819bf0f80f4db4bc0b26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae640082d0ffdb52fb2d658916c5815db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae640082d0ffdb52fb2d658916c5815db"></a>
+typedef tvec4< int, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae640082d0ffdb52fb2d658916c5815db">aligned_mediump_ivec4</a></td></tr>
+<tr class="separator:gae640082d0ffdb52fb2d658916c5815db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memItemLeft" align="right" valign="top">typedef tvec2< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga88c56fde67f035d80b2d0d6d568af30b">aligned_mediump_uvec2</a></td></tr>
+<tr class="separator:ga88c56fde67f035d80b2d0d6d568af30b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memItemLeft" align="right" valign="top">typedef tvec3< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaee29d3a28f634b03f0a20e79e600f5df">aligned_mediump_uvec3</a></td></tr>
+<tr class="separator:gaee29d3a28f634b03f0a20e79e600f5df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga717763c480dcf3ecf66121426287d08a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga717763c480dcf3ecf66121426287d08a"></a>
+typedef tvec4< uint, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga717763c480dcf3ecf66121426287d08a">aligned_mediump_uvec4</a></td></tr>
+<tr class="separator:ga717763c480dcf3ecf66121426287d08a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memItemLeft" align="right" valign="top">typedef tvec2< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga57549b1281d99ba1825b1ef0dae6227d">aligned_mediump_vec2</a></td></tr>
+<tr class="separator:ga57549b1281d99ba1825b1ef0dae6227d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memItemLeft" align="right" valign="top">typedef tvec3< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gaed5d4dd2755cc5141a9533488edd9e82">aligned_mediump_vec3</a></td></tr>
+<tr class="separator:gaed5d4dd2755cc5141a9533488edd9e82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4ab68a8c32574bff14e62f95185d295"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4ab68a8c32574bff14e62f95185d295"></a>
+typedef tvec4< float, aligned_mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gae4ab68a8c32574bff14e62f95185d295">aligned_mediump_vec4</a></td></tr>
+<tr class="separator:gae4ab68a8c32574bff14e62f95185d295"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ff8ed402c93d280ff0597c1c5e7c548"></a>
+typedef aligned_highp_uvec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a></td></tr>
+<tr class="separator:ga1ff8ed402c93d280ff0597c1c5e7c548"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga074137e3be58528d67041c223d49f398"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga074137e3be58528d67041c223d49f398"></a>
+typedef aligned_highp_uvec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a></td></tr>
+<tr class="separator:ga074137e3be58528d67041c223d49f398"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a8d9c3046f89d854eb758adfa0811c0"></a>
+typedef aligned_highp_uvec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a></td></tr>
+<tr class="separator:ga2a8d9c3046f89d854eb758adfa0811c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabf842c45eea186170c267a328e3f3b7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf842c45eea186170c267a328e3f3b7d"></a>
+typedef aligned_highp_uvec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a></td></tr>
+<tr class="separator:gabf842c45eea186170c267a328e3f3b7d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga05e6d4c908965d04191c2070a8d0a65e"></a>
+typedef aligned_highp_vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a></td></tr>
+<tr class="separator:ga05e6d4c908965d04191c2070a8d0a65e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0682462f8096a226773e20fac993cde5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0682462f8096a226773e20fac993cde5"></a>
+typedef aligned_highp_vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a></td></tr>
+<tr class="separator:ga0682462f8096a226773e20fac993cde5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7cf643b66664e0cd3c48759ae66c2bd0"></a>
+typedef aligned_highp_vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a></td></tr>
+<tr class="separator:ga7cf643b66664e0cd3c48759ae66c2bd0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga85d89e83cb8137e1be1446de8c3b643a"></a>
+typedef aligned_highp_vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a></td></tr>
+<tr class="separator:ga85d89e83cb8137e1be1446de8c3b643a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>This extension provides a set of function to convert vertors to packed formats. </p>
-<p><<a class="el" href="a00087.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/packing.hpp</a>> need to be included to use these features. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga4944ad465ff950e926d49621f916c78d"></a>
+<p>Aligned types. </p>
+<p><<a class="el" href="a00108.html" title="GLM_GTC_type_aligned ">glm/gtc/type_aligned.hpp</a>> need to be included to use these features. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gac5ffd9396890b64e707ba47c76435dfe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packF2x11_1x10 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<bool, aligned_highp> aligned_highp_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. </p>
-<p>Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec3 unpackF2x11_1x10(uint32 const & p) </dd></dl>
+<p>2 components vector of high precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-</div>
-</div>
-<a class="anchor" id="ga43f2093b6ff192a79058ff7834fc3528"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packHalf1x16 </td>
- <td>(</td>
- <td class="paramtype">float </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packHalf2x16(vec2 const & v) </dd>
-<dd>
-uint64 packHalf4x16(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>Definition at line <a class="el" href="a00108_source.html#l00121">121</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gafe2f7b39caf8f5ec555e1c059ec530e6"></a>
+<a class="anchor" id="ga186b90f0ba86724e080d237f3f5f9417"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packHalf4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<double, aligned_highp> aligned_highp_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. </p>
-<p>The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packHalf1x16(float const & v) </dd>
-<dd>
-uint32 packHalf2x16(vec2 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packHalf2x16.xml">GLSL packHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-</div>
-</div>
-<a class="anchor" id="ga06ecb6afb902dba45419008171db9023"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packI3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packI3x10_1x2(uvec4 const & v) </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-ivec4 unpackI3x10_1x2(uint32 const & p) </dd></dl>
+<p>Definition at line <a class="el" href="a00108_source.html#l00085">85</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab22f8bcfdb5fc65af4701b25f143c1af"></a>
+<a class="anchor" id="ga54f6765716867706643bde03211d600f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm1x16 </td>
- <td>(</td>
- <td class="paramtype">float </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<double, aligned_highp> aligned_highp_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into 16-bit integer value. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm2x16(vec2 const & v) </dd>
-<dd>
-uint64 packSnorm4x16(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae3592e0795e62aaa1865b3a10496a7a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint8 glm::packSnorm1x8 </td>
- <td>(</td>
- <td class="paramtype">float </td>
- <td class="paramname"><em>s</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
+<p>3 components vector of high double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
-<p>First, converts the normalized floating-point value v into 8-bit integer value. </p>
-<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
-<p>The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm2x8(vec2 const & v) </dd>
-<dd>
-uint32 packSnorm4x8(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>Definition at line <a class="el" href="a00108_source.html#l00147">147</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga6be3cfb2cce3702f03e91bbeb5286d7e"></a>
+<a class="anchor" id="gab6ddd9d1421eb610ddeb32705fed7026"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packSnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<int, aligned_highp> aligned_highp_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint8 packSnorm1x8(float const & v) </dd>
-<dd>
-uint32 packSnorm4x8(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00097">97</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab997545661877d2c7362a5084d3897d3"></a>
+<a class="anchor" id="gae234a3a1c6288fa5e2d4c78c5e39002e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<int, aligned_highp> aligned_highp_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. </p>
-<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)</p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const & p) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const & v) </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const & v) </dd></dl>
+<p>3 components vector of high precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00159">159</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga358943934d21da947d5bcc88c2ab7832"></a>
+<a class="anchor" id="ga7366a38dc888164e623fc10663e97670"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packSnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<uint, aligned_highp> aligned_highp_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm1x16(float const & v) </dd>
-<dd>
-uint32 packSnorm2x16(vec2 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packSnorm4x8.xml">GLSL packSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00109">109</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gada3d88d59f0f458f9c51a9fd359a4bc0"></a>
+<a class="anchor" id="ga967485a7e963365642ea17de62fe2a3f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packU3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<uint, aligned_highp> aligned_highp_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. </p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const & v) </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-ivec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+<p>3 components vector of high precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00171">171</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9f82737bf2a44bedff1d286b76837886"></a>
+<a class="anchor" id="gaea854184b9d574fc5e75b5709a4974e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm1x16 </td>
- <td>(</td>
- <td class="paramtype">float </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<float, aligned_highp> aligned_highp_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into a 16-bit integer value. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packSnorm1x16(float const & v) </dd>
-<dd>
-uint64 packSnorm4x16(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of high single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00073">73</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4b2fa60df3460403817d28b082ee0736"></a>
+<a class="anchor" id="ga55fb20d4e73a65c834b5861fc6cf4c36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint8 glm::packUnorm1x8 </td>
- <td>(</td>
- <td class="paramtype">float </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<float, aligned_highp> aligned_highp_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the normalized floating-point value v into a 8-bit integer value. </p>
-<p>Then, the results are packed into the returned 8-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packUnorm2x8(vec2 const & v) </dd>
-<dd>
-uint32 packUnorm4x8(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of high single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00135">135</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9a666b1c688ab54100061ed06526de6e"></a>
+<a class="anchor" id="ga524c702b82ae7ccaca896d374808c6d7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint16 glm::packUnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<bool, aligned_lowp> aligned_lowp_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 8-bit integer values. </p>
-<p>Then, the results are packed into the returned 16-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint8 packUnorm1x8(float const & v) </dd>
-<dd>
-uint32 packUnorm4x8(vec4 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00129">129</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga8a1ee625d2707c60530fb3fca2980b19"></a>
+<a class="anchor" id="gab70c189b4691715b3f7f0abb35c65b2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<double, aligned_lowp> aligned_lowp_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. </p>
-<p>Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)</p>
-<p>The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec4 unpackUnorm3x10_1x2(uint32 const & p) </dd>
-<dd>
-uint32 packUnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const & v) </dd>
-<dd>
-uint32 packI3x10_1x2(ivec4 const & v) </dd></dl>
+<p>2 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00093">93</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1f63c264e7ab63264e2b2a99fd393897"></a>
+<a class="anchor" id="gabeec3d5ec99c196f4c0eb03b58d486ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint64 glm::packUnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<double, aligned_lowp> aligned_lowp_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, converts each component of the normalized floating-point value v into 16-bit integer values. </p>
-<p>Then, the results are packed into the returned 64-bit unsigned integer.</p>
-<p>The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)</p>
-<p>The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint16 packUnorm1x16(float const & v) </dd>
-<dd>
-uint32 packUnorm2x16(vec2 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/packUnorm4x8.xml">GLSL packUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00155">155</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2b1fd1e854705b1345e98409e0a25e50"></a>
+<a class="anchor" id="gad69bf7c406a3cec994307473cb3da032"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<int, aligned_lowp> aligned_lowp_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packF2x11_1x10(vec3 const & v) </dd></dl>
+<p>2 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00105">105</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac37dedaba24b00adb4ec6e8f92c19dbf"></a>
+<a class="anchor" id="gaa8615b4ce4fdf176c631b34d2d31d81b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackHalf1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<int, aligned_lowp> aligned_lowp_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackHalf2x16(uint32 const & v) </dd>
-<dd>
-vec4 unpackHalf4x16(uint64 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00167">167</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga57dfc41b2eb20b0ac00efae7d9c49dcd"></a>
+<a class="anchor" id="ga15355ffc7ec7931b81ba76736b65e51a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackHalf4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<uint, aligned_lowp> aligned_lowp_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. </p>
-<p>The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackHalf1x16(uint16 const & v) </dd>
-<dd>
-vec2 unpackHalf2x16(uint32 const & v) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackHalf2x16.xml">GLSL unpackHalf2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00117">117</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga9a05330e5490be0908d3b117d82aff56"></a>
+<a class="anchor" id="ga48c85299d98e8248f547a2c07ea609cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<uint, aligned_lowp> aligned_lowp_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. </p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const & v) </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const & p); </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const & p); </dd></dl>
+<p>3 components vector of low precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00179">179</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga96dd15002370627a443c835ab03a766c"></a>
+<a class="anchor" id="ga3cfc38b4ea9b9bd1e9f02dcc14eab367"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<float, aligned_lowp> aligned_lowp_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackSnorm2x16(uint32 p) </dd>
-<dd>
-vec4 unpackSnorm4x16(uint64 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm1x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of low single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00081">81</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4851ff86678aa1c7ace9d67846894285"></a>
+<a class="anchor" id="gae003f8f3071a8bc734a70c6d4978f968"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackSnorm1x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<float, aligned_lowp> aligned_lowp_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. </p>
-<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackSnorm2x8(uint16 p) </dd>
-<dd>
-vec4 unpackSnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of low single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00143">143</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga8b128e89be449fc71336968a66bf6e1a"></a>
+<a class="anchor" id="ga77d37d7c80c7faa2eecb3eba7677750e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<bool, aligned_mediump> aligned_mediump_bvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackSnorm1x8(uint8 p) </dd>
-<dd>
-vec4 unpackSnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm4x8.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of medium precision bool numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00125">125</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7a4fbf79be9740e3c57737bc2af05e5b"></a>
+<a class="anchor" id="gaba56f2b76d320379cdf7c37e0d4b03bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<double, aligned_mediump> aligned_mediump_dvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-vec4 unpackUnorm3x10_1x2(uint32 const & p)) </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const & p) </dd>
-<dd>
-uvec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+<p>2 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00089">89</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaaddf9c353528fe896106f7181219c7f4"></a>
+<a class="anchor" id="ga22efc7f84ab79eef640e00fc59d07478"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<double, aligned_mediump> aligned_mediump_dvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackSnorm1x16(uint16 p) </dd>
-<dd>
-vec2 unpackSnorm2x16(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackSnorm2x16.xml">GLSL unpackSnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium double-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00151">151</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga48df3042a7d079767f5891a1bfd8a60a"></a>
+<a class="anchor" id="ga389d12dcc8d57a444944a72646d17efa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<int, aligned_mediump> aligned_mediump_ivec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. </p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packU3x10_1x2(uvec4 const & v) </dd>
-<dd>
-vec4 unpackSnorm3x10_1x2(uint32 const & p); </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const & p); </dd></dl>
+<p>2 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00101">101</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga83d34160a5cb7bcb5339823210fc7501"></a>
+<a class="anchor" id="ga5b16f7e81555819bf0f80f4db4bc0b26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<int, aligned_mediump> aligned_mediump_ivec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. </p>
-<p>Then, the value is converted to a normalized floating-point value to generate the returned scalar.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackUnorm2x16(uint32 p) </dd>
-<dd>
-vec4 unpackUnorm4x16(uint64 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium precision signed integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00163">163</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga1319207e30874fb4931a9ee913983ee1"></a>
+<a class="anchor" id="ga88c56fde67f035d80b2d0d6d568af30b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL float glm::unpackUnorm1x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<uint, aligned_mediump> aligned_mediump_uvec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a single 8-bit integer to a normalized floating-point value. </p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-vec2 unpackUnorm2x8(uint16 p) </dd>
-<dd>
-vec4 unpackUnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>2 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00113">113</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga637cbe3913dd95c6e7b4c99c61bd611f"></a>
+<a class="anchor" id="gaee29d3a28f634b03f0a20e79e600f5df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<uint, aligned_mediump> aligned_mediump_uvec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackUnorm1x8(uint8 v) </dd>
-<dd>
-vec4 unpackUnorm4x8(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm4x8.xml">GLSL unpackUnorm4x8 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium precision unsigned integer numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00175">175</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5156d3060355fe332865da2c7f78815f"></a>
+<a class="anchor" id="ga57549b1281d99ba1825b1ef0dae6227d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2<float, aligned_mediump> aligned_mediump_vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-uint32 packSnorm3x10_1x2(vec4 const & v) </dd>
-<dd>
-vec4 unpackInorm3x10_1x2(uint32 const & p)) </dd>
-<dd>
-uvec4 unpackI3x10_1x2(uint32 const & p) </dd>
-<dd>
-uvec4 unpackU3x10_1x2(uint32 const & p) </dd></dl>
+<p>2 components vector of medium single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00077">77</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2ae149c5d2473ac1e5f347bb654a242d"></a>
+<a class="anchor" id="gaed5d4dd2755cc5141a9533488edd9e82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3<float, aligned_mediump> aligned_mediump_vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. </p>
-<p>Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.</p>
-<p>The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0</p>
-<p>The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00176.html" title="This extension provides a set of function to convert vertors to packed formats. ">GLM_GTC_packing</a> </dd>
-<dd>
-float unpackUnorm1x16(uint16 p) </dd>
-<dd>
-vec2 unpackUnorm2x16(uint32 p) </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/unpackUnorm2x16.xml">GLSL unpackUnorm2x16 man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a> </dd></dl>
+<p>3 components vector of medium single-precision floating-point numbers. </p>
+<p>There is no guarantee on the actual precision. </p>
+
+<p>Definition at line <a class="el" href="a00108_source.html#l00139">139</a> of file <a class="el" href="a00108_source.html">gtc/type_aligned.hpp</a>.</p>
</div>
</div>
diff --git a/doc/api/a00177.html b/doc/api/a00177.html
index 797dd88..063f9dd 100644
--- a/doc/api/a00177.html
+++ b/doc/api/a00177.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_quaternion</title>
+<title>0.9.8: GLM_GTC_type_precision</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,837 +37,3633 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_quaternion<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_precision<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gad4a4448baedb198b2b1e7880d2544dc9">angle</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gad4a4448baedb198b2b1e7880d2544dc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga37ae19405f1ccf766f27e4fcd035d859">angleAxis</a> (T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga37ae19405f1ccf766f27e4fcd035d859"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0b3e87a13b2708154b72259e50789a19"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0b3e87a13b2708154b72259e50789a19">axis</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga0b3e87a13b2708154b72259e50789a19"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gab1ace864fbf189ffa368950001808a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gab1ace864fbf189ffa368950001808a3c">conjugate</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:gab1ace864fbf189ffa368950001808a3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class quatType> </td></tr>
-<tr class="memitem:gac54dfc83de465a2d03e90d342242ab3d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac54dfc83de465a2d03e90d342242ab3d">dot</a> (quatType< T, P > const &x, quatType< T, P > const &y)</td></tr>
-<tr class="separator:gac54dfc83de465a2d03e90d342242ab3d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac187115710365e0b2902220b9611e7b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac187115710365e0b2902220b9611e7b6">equal</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:gac187115710365e0b2902220b9611e7b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gadb92ec1c1b0dd6b024176a73fbef3e64">eulerAngles</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gadb92ec1c1b0dd6b024176a73fbef3e64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga09d21a588ae425ac7517ea65cc59a5ae">greaterThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga09d21a588ae425ac7517ea65cc59a5ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga0906a221a2037519fcf316ea5c1e3b3e">greaterThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga0906a221a2037519fcf316ea5c1e3b3e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5f47300c024c2d809944e6ac661d6d14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5f47300c024c2d809944e6ac661d6d14">inverse</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga5f47300c024c2d809944e6ac661d6d14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac682181783027544c8d251b4d3a60cf8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gac682181783027544c8d251b4d3a60cf8">length</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:gac682181783027544c8d251b4d3a60cf8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5692804fa4db9e762a1c19b607e54435"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga5692804fa4db9e762a1c19b607e54435">lerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga5692804fa4db9e762a1c19b607e54435"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga91a40d16a3b5bb47d71ac1a3fb688ffa">lessThan</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga91a40d16a3b5bb47d71ac1a3fb688ffa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7c81996ed2724f26fe76faf352c76294"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga7c81996ed2724f26fe76faf352c76294">lessThanEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga7c81996ed2724f26fe76faf352c76294"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">mat3_cast</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gae04c39422eb4e450ec8c4f45a1057b40"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">mat4_cast</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga14bb2ddf028c91542763eb6f2bba47ef"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga31cc82178742c36450f5662bd4fb30b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga31cc82178742c36450f5662bd4fb30b0">mix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga31cc82178742c36450f5662bd4fb30b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga35b6bcb22ac6d1e4a85440f5b69bdf86">normalize</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga35b6bcb22ac6d1e4a85440f5b69bdf86"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga484c4633f7c05d8e29ee8b452350f539"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga484c4633f7c05d8e29ee8b452350f539">notEqual</a> (tquat< T, P > const &x, tquat< T, P > const &y)</td></tr>
-<tr class="separator:ga484c4633f7c05d8e29ee8b452350f539"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2c08b93a4261c10748fd4d2104346f17"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c08b93a4261c10748fd4d2104346f17">pitch</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga2c08b93a4261c10748fd4d2104346f17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">quat_cast</a> (tmat3x3< T, P > const &x)</td></tr>
-<tr class="separator:ga950f8acff3e33bbda77895a3dcb7e5ce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga3e4615e9884dd0f41f5617b9848a5d9c">quat_cast</a> (tmat4x4< T, P > const &x)</td></tr>
-<tr class="separator:ga3e4615e9884dd0f41f5617b9848a5d9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga4fd705376c6c1fd667be0055a0ea58ec">roll</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga4fd705376c6c1fd667be0055a0ea58ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa8f42979c921e450ff2812fb43c25702"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#gaa8f42979c921e450ff2812fb43c25702">rotate</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:gaa8f42979c921e450ff2812fb43c25702"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga22b438c7252f3fa5b773c9882471652a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga22b438c7252f3fa5b773c9882471652a">slerp</a> (tquat< T, P > const &x, tquat< T, P > const &y, T a)</td></tr>
-<tr class="separator:ga22b438c7252f3fa5b773c9882471652a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00177.html#ga724a5df282b70cec0a6cb0d6dcddb6d6">yaw</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga724a5df282b70cec0a6cb0d6dcddb6d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
+<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
+<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
+<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
+<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
+<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
+<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
+<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
+<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
+<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
+<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
+<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
+<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
+<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
+<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
+<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
+<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
+<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
+<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
+<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
+<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
+<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
+<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
+<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
+<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
+<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
+<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
+<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
+<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
+<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
+<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
+<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
+<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
+<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
+<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
+<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
+<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
+<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
+<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
+<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
+<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
+<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
+<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
+<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
+<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
+<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
+<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
+<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
+<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
+<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
+<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
+<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
+<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
+<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
+<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
+<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
+<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
+<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
+<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
+<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
+<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
+<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
+<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
+<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
+<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
+<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
+<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
+<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
+<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
+<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
+<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
+<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
+<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
+<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
+<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
+<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
+<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
+<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
+<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
+<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
+<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
+<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
+<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
+<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
+<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
+<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
+<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
+<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
+<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
+<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
+<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
+<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
+<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
+<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
+<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
+<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
+<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
+<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
+<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
+<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
+<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
+<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
+<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
+<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
+<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
+<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
+<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
+<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
+<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
+<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
+<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
+<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
+<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
+<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
+<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
+<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
+<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
+<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
+<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
+<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
+<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
+<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
+<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
+<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
+<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
+<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
+<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
+<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
+<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
+<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
+<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
+<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
+<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
+<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
+<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
+<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
+<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
+<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
+<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
+<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
+<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
+<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
+<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
+<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
+<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
+<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
+<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
+<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
+<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
+<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
+<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
+<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
+<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
+<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
+<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
+<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
+<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
+<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
+<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
+<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
+<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
+<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
+<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
+<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
+<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
+<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
+<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
+<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
+<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
+<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
+<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
+<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
+<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
+<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
+<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
+<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
+<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
+<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
+<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
+<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
+<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
+<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
+<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
+<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
+<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a templated quaternion type and several quaternion operations. </p>
-<p><<a class="el" href="a00094.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/quaternion.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gad4a4448baedb198b2b1e7880d2544dc9"></a>
+<p>Defines specific C++-based precision types. </p>
+<p><a class="el" href="a00158.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
+<p><<a class="el" href="a00124.html" title="GLM_GTC_type_precision ">glm/gtc/type_precision.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::angle </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef float32 f32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the quaternion rotation angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01505">1505</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1fedd5d29746afdaf2d3303a4442704e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f32, defaultp > f32mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02449">2449</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf3a5016bf360977ce114deb2e01ae10a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f32, defaultp > f32mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02413">2413</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad5f1043adbe803928fe7bf1a90a1f767"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< f32, defaultp > f32mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x3 matrix. </p>
+<p>Single-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02417">2417</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5ed667d0247cce477f013ea31982843d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< f32, defaultp > f32mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x4 matrix. </p>
+<p>Single-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02421">2421</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf4377997b299a287f7ab3358c9bd3e4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f32, defaultp > f32mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02453">2453</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8709a1ea268fa69bdf1e11616d7fbaf1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2< f32, defaultp > f32mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x2 matrix. </p>
+<p>Single-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02425">2425</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1e4c52bb824ca16c6e2e5b03635669d0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f32, defaultp > f32mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02429">2429</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0100666c90176eaba80e49357d123c7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4< f32, defaultp > f32mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x4 matrix. </p>
+<p>Single-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02433">2433</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga797fa3ab16e04456174c36238e091341"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f32, defaultp > f32mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02457">2457</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga27f897bdfe4bbded9481b8947553d1ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2< f32, defaultp > f32mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x2 matrix. </p>
+<p>Single-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02437">2437</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa69e73ffb01a52499071391d395908fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3< f32, defaultp > f32mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x3 matrix. </p>
+<p>Single-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02441">2441</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafe2e08549805a7ded26da2a868bedbf5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f32, defaultp > f32mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02445">2445</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6966c0cb4673928c9c9da2e91006d2c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tquat< f32, defaultp > f32quat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point quaternion. </p>
+<p>Single-precision floating-point quaternion.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02461">2461</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3174a49dc84a977cad7012a62f4af02f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< f32, defaultp > f32vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 1 components. </p>
+<p>Single-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02397">2397</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae0cb53ea6fe3d977fe588ce423d57cc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< f32, defaultp > f32vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 2 components. </p>
+<p>Single-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02401">2401</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga19d5e0d4d3d6d226c9c6c0f39756f9ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< f32, defaultp > f32vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 3 components. </p>
+<p>Single-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02405">2405</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaeb25dbb0261f82cb08da23e26d343704"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< f32, defaultp > f32vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 4 components. </p>
+<p>Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02409">2409</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef float64 f64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01509">1509</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga74b9918c90ea60ce58b3979cde963a38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f64, defaultp > f64mat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x2 matrix. </p>
+<p>Double-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02555">2555</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaeb817419c76a0766c88713d2754e6cb3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f64, defaultp > f64mat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x2 matrix. </p>
+<p>Double-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02519">2519</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga87d256f4719417e311cd0ea14264678d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< f64, defaultp > f64mat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x3 matrix. </p>
+<p>Double-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02523">2523</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb18822e2eac88fa861a76cefd25d550"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< f64, defaultp > f64mat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 2x4 matrix. </p>
+<p>Double-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02527">2527</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga68894201dd511792a7af6cff7b5adf71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f64, defaultp > f64mat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x3 matrix. </p>
+<p>Double-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02559">2559</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga11e5684b10e098f573ff484c1a569ae2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2< f64, defaultp > f64mat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x2 matrix. </p>
+<p>Double-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02531">2531</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae1a5081181c96cc37ce9418f6e856cb6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f64, defaultp > f64mat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x3 matrix. </p>
+<p>Double-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02535">2535</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad37a55a8ce1154083a721b4ecfd55293"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4< f64, defaultp > f64mat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 3x4 matrix. </p>
+<p>Double-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02539">2539</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga219c683b0aa29f4f482f76d77d5c9e95"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f64, defaultp > f64mat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x4 matrix. </p>
+<p>Double-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02563">2563</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa669dfb59031a441de19b34a92704d57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2< f64, defaultp > f64mat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x2 matrix. </p>
+<p>Double-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02543">2543</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaba137814a509704937746cc1e82edc32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3< f64, defaultp > f64mat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x3 matrix. </p>
+<p>Double-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02547">2547</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga489163773b021f1800a33cc2fa730c3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f64, defaultp > f64mat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point 4x4 matrix. </p>
+<p>Double-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02551">2551</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga14c583bd625eda8cf4935a14d5dd544d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tquat< f64, defaultp > f64quat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point quaternion. </p>
+<p>Double-precision floating-point quaternion.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02567">2567</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac5b04f32ae3084a9131a0851e7f4cfae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< f64, defaultp > f64vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 1 components. </p>
+<p>Double-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02503">2503</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafaad77b464b5a35626c31205ac6780e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< f64, defaultp > f64vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 2 components. </p>
+<p>Double-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02507">2507</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafacc3614bb1136a7756293e67d34de22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< f64, defaultp > f64vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 3 components. </p>
+<p>Double-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02511">2511</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8723186104dc02eb85da386105fba75f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< f64, defaultp > f64vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default double-precision floating-point vector of 4 components. </p>
+<p>Double-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02515">2515</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::float32 float32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00110_source.html#l00055">55</a> of file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga41d579d81c3d98edd0532244fa02da77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::float32 float32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 32 bit single-precision floating-point scalar. </p>
+<p>32 bit single-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01497">1497</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::float64 float64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00110_source.html#l00056">56</a> of file <a class="el" href="a00110_source.html">type_float.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6957c7b22f405683bb276554ca40dc37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::float64 float64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default 64 bit double-precision floating-point scalar. </p>
+<p>64 bit double-precision floating-point scalar.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01501">1501</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabb01d4ff646ee07241934b1a0cc0f985"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f32, defaultp > fmat2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02379">2379</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga74ac2e71b650162d8f7cb2a70c2f6711"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x2< f32, defaultp > fmat2x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x2 matrix. </p>
+<p>Single-precision floating-point 1x1 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02343">2343</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf17b2604c0d92bffb92375d8aa588756"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x3< f32, defaultp > fmat2x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x3 matrix. </p>
+<p>Single-precision floating-point 2x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02347">2347</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga709c97c20efa24ff1d9e83cd437b8ed5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat2x4< f32, defaultp > fmat2x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 2x4 matrix. </p>
+<p>Single-precision floating-point 2x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02351">2351</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5165fbee2d78f342950265b69a07353d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f32, defaultp > fmat3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02383">2383</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9f20af6e8eca2abdcde08408948cc1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x2< f32, defaultp > fmat3x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x2 matrix. </p>
+<p>Single-precision floating-point 3x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02355">2355</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad339e25c32fe6665acf028f26c1b3e22"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x3< f32, defaultp > fmat3x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x3 matrix. </p>
+<p>Single-precision floating-point 3x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02359">2359</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab04bc97371cb6b5f54b3688e0c81578b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat3x4< f32, defaultp > fmat3x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 3x4 matrix. </p>
+<p>Single-precision floating-point 3x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02363">2363</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab3f31d867df4874e42172ebf188a3ebd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f32, defaultp > fmat4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02387">2387</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab0082a25f19f02d2d0af0fcbe5ead732"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x2< f32, defaultp > fmat4x2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x2 matrix. </p>
+<p>Single-precision floating-point 4x2 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02367">2367</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1a11c170f030ab34ddf037714e936cba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x3< f32, defaultp > fmat4x3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x3 matrix. </p>
+<p>Single-precision floating-point 4x3 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02371">2371</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gabd79752ff357d83b49136b6299ea62d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tmat4x4< f32, defaultp > fmat4x4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point 4x4 matrix. </p>
+<p>Single-precision floating-point 4x4 matrix.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02375">2375</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga10d8bd3c923a5386efcf25a4117fd84f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< float, defaultp > fvec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 1 components. </p>
+<p>Single-precision floating-point vector of 1 component.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02327">2327</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf9f4173dd9e8b2d0b663c6f80ed09ff6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< float, defaultp > fvec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 2 components. </p>
+<p>Single-precision floating-point vector of 2 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02331">2331</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4ef2d77dcab241b1ef83f09edb2f1084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< float, defaultp > fvec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 3 components. </p>
+<p>Single-precision floating-point vector of 3 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02335">2335</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga981b63d5c5f7233a29364e0a968d139b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< float, defaultp > fvec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default single-precision floating-point vector of 4 components. </p>
+<p>Single-precision floating-point vector of 4 components.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l02339">2339</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0336abc2604dd2c20c30e036454b64f8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00232">232</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga727675ac6b5d2fc699520e0059735e25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00236">236</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac25db6d2b1e2a0f351b77ba3409ac4cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00240">240</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacb88796f2d08ef253d0345aff20c3aee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00228">228</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5fde0fa4a3852a9dd5d637a92ee74718"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00200">200</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacaea06d0a79ef3172e887a7a6ba434ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 highp_int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00216">216</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga84ed04b4e0de18c977e932d617e7c223"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00204">204</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2c71c8bd9e2fe7d2e93ca250d8b6157f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 highp_int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00220">220</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga226a8d52b4e3f77aaa6231135e886aac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00208">208</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga73c6abb280a45feeff60f9accaee91f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 highp_int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00224">224</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad0549c902a96a7164e4ac858d5f39dbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00196">196</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1085c50dd8fbeb5e7e609b1c127492a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 highp_int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00212">212</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e62c883d13f47015f3b70ed88751369"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00841">841</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7a6f1929464dcc680b16381a4ee5f2cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00845">845</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c181fdf06a309691999926b6690c969"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 highp_u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00849">849</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacd1259f3a9e8d2a9df5be2d74322ef9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 highp_u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00837">837</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga746dc6da204f5622e395f492997dbf57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00809">809</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf54c3330ef60aa3d16cb676c7bcb8c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 highp_uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<p>High precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00825">825</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga256b12b650c3f2fb86878fd1c5db8bc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00813">813</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae978599c9711ac263ba732d4ac225b0e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 highp_uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<p>High precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00829">829</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa38d732f5d4a7bc42a1b43b9d3c141ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 highp_uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00817">817</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa46172d7dc1c7ffe3e78107ff88adf08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 highp_uint64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<p>High precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00833">833</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga97432f9979e73e66567361fd01e4cffb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 highp_uint8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00805">805</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac4e00a26a2adb5f2c0a7096810df29e5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 highp_uint8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<p>High precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00821">821</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ab5fe184343d394fb6c2723c3ee3699"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00289">289</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga28f03a39ac56c70f9bf3ada11cb60e3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< i16, defaultp > i16vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer scalar type. </p>
+<p>16 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00444">444</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga110bec18ca44c41c76c3c9e4d7b5bd79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< i16, defaultp > i16vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer vector of 2 components type. </p>
+<p>16 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00448">448</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga973b226a9914db682c9372fc761fb535"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< i16, defaultp > i16vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer vector of 3 components type. </p>
+<p>16 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00452">452</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad73e5e905dcf2d8cab002b4ab46e9426"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< i16, defaultp > i16vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer vector of 4 components type. </p>
+<p>16 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00456">456</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga96faea43ac5f875d2d3ffbf8d213e3eb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00293">293</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4cca6bbd117c45f046291fc8e9d03765"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< i32, defaultp > i32vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer scalar type. </p>
+<p>32 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00523">523</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3c12cef4135603fd77d8fda85808730c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< i32, defaultp > i32vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 2 components type. </p>
+<p>32 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00527">527</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga40cd3f391c03512f158d10a70062264e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< i32, defaultp > i32vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 3 components type. </p>
+<p>32 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00531">531</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae3364a8090e7e1408056e00403dfecab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< i32, defaultp > i32vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer vector of 4 components type. </p>
+<p>32 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00535">535</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gadb997e409103d4da18abd837e636a496"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00297">297</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5b4a3e499ee165efc0dc05add9c48235"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< i64, defaultp > i64vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer scalar type. </p>
+<p>64 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00682">682</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade69872a31f066e5ae212f1af6008edb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< i64, defaultp > i64vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer vector of 2 components type. </p>
+<p>64 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00686">686</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9ece7c77c7bca7a6b824ef9c600f5e5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< i64, defaultp > i64vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer vector of 3 components type. </p>
+<p>64 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00690">690</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9756e45c8f80329257f3cbdabc3bd73c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< i64, defaultp > i64vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer vector of 4 components type. </p>
+<p>64 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00694">694</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga302ec977b0c0c3ea245b6c9275495355"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00285">285</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab2329c5c14ff5a03b1ddec039e2c7409"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1< i8, defaultp > i8vec1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer scalar type. </p>
+<p>8 bit signed integer scalar type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00364">364</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga6414484477e4c1b4863cf91af8fd4185"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2< i8, defaultp > i8vec2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 2 components type. </p>
+<p>8 bit signed integer vector of 2 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00368">368</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf4b5993e794e252607f91535b62a7e0c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3< i8, defaultp > i8vec3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 3 components type. </p>
+<p>8 bit signed integer vector of 3 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00372">372</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga50e58885aee2cf01bb3ba472c5b1697e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4< i8, defaultp > i8vec4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer vector of 4 components type. </p>
+<p>8 bit signed integer vector of 4 components type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00376">376</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00207">207</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae8f5e3e964ca2ae240adc2c0d74adede"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00272">272</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00208">208</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga042ef09ff2f0cb24a36f541bcb3a3710"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00276">276</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00209">209</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga322a7d7d2c2c68994dc872a33de63c61"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00280">280</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00206">206</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4bf09d8838a86866b39ee6e109341645"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00268">268</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga392b673fd10847bfb78fb808c6cf8ff7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00136">136</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7ff73a45cea9613ebf1a9fad0b9f82ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00140">140</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga354736e0c645099cd44c42fb2f87c2b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00144">144</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga552a6bde5e75984efb0f863278da2e54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00132">132</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga698e36b01167fc0f037889334dce8def"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00104">104</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8b2cd8d31eb345b2d641d9261c38db1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 lowp_int16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00120">120</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga864aabca5f3296e176e0c3ed9cc16b02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_int32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00108">108</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0350631d35ff800e6133ac6243b13cbc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 lowp_int32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00124">124</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf645b1a60203b39c0207baff5e3d8c3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_int64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00112">112</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaebf341fc4a5be233f7dde962c2e33847"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 lowp_int64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00128">128</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga760bcf26fdb23a2c3ecad3c928a19ae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_int8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00100">100</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga119c41d73fe9977358174eb3ac1035a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 lowp_int8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00116">116</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga504ce1631cb2ac02fcf1d44d8c2aa126"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_u16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00741">741</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4f072ada9552e1e480bbb3b1acde5250"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_u32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00745">745</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga30069d1f02b19599cbfadf98c23ac6ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_u64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00749">749</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b09f03da7ac43055c68a349d5445083"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_u8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00737">737</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad68bfd9f881856fc863a6ebca0b67f78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_uint16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00707">707</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91c4815f93177eb423362fd296a87e9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 lowp_uint16_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00724">724</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa6a5b461bbf5fe20982472aa51896d4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_uint32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00711">711</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf1b735b4b1145174f4e4167d13778f9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 lowp_uint32_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00728">728</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa212b805736a759998e312cbdd550fae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_uint64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00715">715</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8dd3a3281ae5c970ffe0c41d538aa153"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint64 lowp_uint64_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00732">732</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf49470869e9be2c059629b250619804e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_uint8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00703">703</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga667b2ece2b258be898812dc2177995d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint8 lowp_uint8_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00720">720</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga62a17cddeb4dffb4e18fe3aea23f051a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 mediump_i16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00184">184</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf5e94bf2a20af7601787c154751dc2e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int32 mediump_i32</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00188">188</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ebcb1f6d8d8387253de8bccb058d77f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int64 mediump_i64</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00192">192</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gacf1ded173e1e2d049c511d095b259e21"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int8 mediump_i8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00180">180</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gadff3608baa4b5bd3ed28f95c1c2c345d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::int16 mediump_int16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00152">152</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga37ae19405f1ccf766f27e4fcd035d859"></a>
+<a class="anchor" id="ga80e72fe94c88498537e8158ba7591c54"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::angleAxis </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::int16 mediump_int16_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a quaternion from an angle and a normalized axis. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Axis of the quaternion, must be normalized.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 16 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00168">168</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0b3e87a13b2708154b72259e50789a19"></a>
+<a class="anchor" id="ga5244cef85d6e870e240c76428a262ae8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::axis </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::int32 mediump_int32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q rotation axis. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00156">156</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gab1ace864fbf189ffa368950001808a3c"></a>
+<a class="anchor" id="ga26fc7ced1ad7ca5024f1c973c8dc9180"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::conjugate </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::int32 mediump_int32_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q conjugate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 32 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00172">172</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac54dfc83de465a2d03e90d342242ab3d"></a>
+<a class="anchor" id="ga7b968f2b86a0442a89c7359171e1d866"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::dot </td>
- <td>(</td>
- <td class="paramtype">quatType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">quatType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::int64 mediump_int64</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00160">160</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac187115710365e0b2902220b9611e7b6"></a>
+<a class="anchor" id="gac3bc41bcac61d1ba8f02a6f68ce23f64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::equal </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::int64 mediump_int64_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x == y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 64 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00176">176</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gadb92ec1c1b0dd6b024176a73fbef3e64"></a>
+<a class="anchor" id="ga6fbd69cbdaa44345bff923a2cf63de7e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::eulerAngles </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::int8 mediump_int8</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns euler angles, yitch as x, yaw as y, roll as z. </p>
-<p>The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00148">148</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga09d21a588ae425ac7517ea65cc59a5ae"></a>
+<a class="anchor" id="ga6d7b3789ecb932c26430009478cac7ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::greaterThan </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::int8 mediump_int8_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00164">164</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9df98857be695d5a30cb30f5bfa38a80"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="memname">typedef detail::uint16 mediump_u16</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00791">791</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1bd0e914158bf03135f8a317de6debe9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint32 mediump_u32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x > y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00795">795</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga0906a221a2037519fcf316ea5c1e3b3e"></a>
+<a class="anchor" id="ga2af9490085ae3bdf36a544e9dd073610"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::greaterThanEqual </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::uint64 mediump_u64</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00799">799</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad1213a22bbb9e4107f07eaa4956f8281"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="memname">typedef detail::uint8 mediump_u8</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00787">787</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga2885a6c89916911e418c06bb76b9bdbb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint16 mediump_uint16</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x >= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00759">759</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5f47300c024c2d809944e6ac661d6d14"></a>
+<a class="anchor" id="ga3963b1050fc65a383ee28e3f827b6e3e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::inverse </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint16 mediump_uint16_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q inverse. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 16 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00775">775</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gac682181783027544c8d251b4d3a60cf8"></a>
+<a class="anchor" id="ga34dd5ec1988c443bae80f1b20a8ade5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint32 mediump_uint32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the length of the quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00763">763</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga5692804fa4db9e762a1c19b607e54435"></a>
+<a class="anchor" id="gaf4dae276fd29623950de14a6ca2586b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::lerp </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::uint32 mediump_uint32_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00779">779</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga30652709815ad9404272a31957daa59e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef detail::uint64 mediump_uint64</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00767">767</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b170dd4a8f38448a2dc93987c7875e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="memname">typedef detail::uint64 mediump_uint64_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00783">783</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga1fa92a233b9110861cdbc8c2ccf0b5a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint8 mediump_uint8</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Linear interpolation of two quaternions. </p>
-<p>The interpolation is oriented.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined in the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00755">755</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga91a40d16a3b5bb47d71ac1a3fb688ffa"></a>
+<a class="anchor" id="gadfe65c78231039e90507770db50c98c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::lessThan </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::uint8 mediump_uint8_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00771">771</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa2d7acc0adb536fab71fe261232a40ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="memname">typedef detail::uint16 u16</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00898">898</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaefa2ce8fbdbe89baffd262f46f2d5907"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec1< u16, defaultp > u16vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison result of x < y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 16 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01053">1053</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga7c81996ed2724f26fe76faf352c76294"></a>
+<a class="anchor" id="ga426030555085ed6c39a54e73afbef962"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::lessThanEqual </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec2< u16, defaultp > u16vec2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01057">1057</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga7f5dbe417199277e449b8db0210acb71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="memname">typedef tvec3< u16, defaultp > u16vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01061">1061</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf524c9059f0342668d8eea359bcceaae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec4< u16, defaultp > u16vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x <= y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 16 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01065">1065</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gae04c39422eb4e450ec8c4f45a1057b40"></a>
+<a class="anchor" id="ga8165913e068444f7842302d40ba897b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::mat3_cast </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint32 u32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 3 * 3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00153">glm::toMat3()</a>.</p>
+<p>Definition at line <a class="el" href="a00038_source.html#l00902">902</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga14bb2ddf028c91542763eb6f2bba47ef"></a>
+<a class="anchor" id="ga913a8bd51e4ebccd30ad488de3c18da9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::mat4_cast </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec1< u32, defaultp > u32vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 4 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 32 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00160">glm::toMat4()</a>.</p>
+<p>Definition at line <a class="el" href="a00038_source.html#l01132">1132</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga31cc82178742c36450f5662bd4fb30b0"></a>
+<a class="anchor" id="ga0741d40e2b0fea4f1c50cb325114f075"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::mix </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec2< u32, defaultp > u32vec2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01136">1136</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad9b52e1c271cb9c8bfae6365d3e38a23"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef tvec3< u32, defaultp > u32vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01140">1140</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga155ac7e9e454e2b1f73d11e1e28a0fd6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="memname">typedef tvec4< u32, defaultp > u32vec4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01144">1144</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf3f312156984c365e9f65620354da70b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint64 u64</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Spherical linear interpolation of two quaternions. </p>
-<p>The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd>
-<dd>
-- slerp(tquat<T, P> const & x, tquat<T, P> const & y, T const & a) </dd></dl>
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00906">906</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga35b6bcb22ac6d1e4a85440f5b69bdf86"></a>
+<a class="anchor" id="ga793c9293cc687a0e342396a377c5df77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::normalize </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec1< u64, defaultp > u64vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the normalized quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 64 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01291">1291</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga484c4633f7c05d8e29ee8b452350f539"></a>
+<a class="anchor" id="ga2204827de9d4ee7fa92ef497093f7d6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<bool, P> glm::notEqual </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef tvec2< u64, defaultp > u64vec2</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01295">1295</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3460933f040f59f0fedb29df1e9be71c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="memname">typedef tvec3< u64, defaultp > u64vec3</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01299">1299</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gafb6ca34df28889a5db9d244aed375411"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef tvec4< u64, defaultp > u64vec4</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the component-wise comparison of result x != y. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">quatType</td><td>Floating-point quaternion types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 64 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l01303">1303</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga2c08b93a4261c10748fd4d2104346f17"></a>
+<a class="anchor" id="gaecc7082561fc9028b844b6cf3d305d36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::pitch </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint8 u8</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns pitch value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00894">894</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga950f8acff3e33bbda77895a3dcb7e5ce"></a>
+<a class="anchor" id="ga92e0c191e5cc326255284d08be3af7c5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::quat_cast </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec1< u8, defaultp > u8vec1</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 3 * 3 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 8 bit unsigned integer scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-<p>Referenced by <a class="el" href="a00095_source.html#l00167">glm::toQuat()</a>.</p>
+<p>Definition at line <a class="el" href="a00038_source.html#l00973">973</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga3e4615e9884dd0f41f5617b9848a5d9c"></a>
+<a class="anchor" id="ga61667c99caf60ce6c48ebbbac72bd91d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::quat_cast </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec2< u8, defaultp > u8vec2</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 4 * 4 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>Default precision 8 bit unsigned integer vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00977">977</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga4fd705376c6c1fd667be0055a0ea58ec"></a>
+<a class="anchor" id="ga8ca60d0ba6d438892be6017f43747661"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::roll </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef tvec3< u8, defaultp > u8vec3</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns roll value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Default precision 8 bit unsigned integer vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00981">981</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gaa8f42979c921e450ff2812fb43c25702"></a>
+<a class="anchor" id="ga114e005014d910bea07954eee24b7efb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="memname">typedef tvec4< u8, defaultp > u8vec4</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00985">985</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="memname">typedef detail::uint16 uint16</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00212">212</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga91f91f411080c37730856ff5887f5bcf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em> </td>
+ <td class="memname">typedef detail::uint16 uint16_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>16 bit unsigned integer type. </p>
+<p>Default precision 16 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00881">881</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint32 uint32</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Rotates a quaternion from a vector of 3 components axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">q</td><td>Source orientation </td></tr>
- <tr><td class="paramname">angle</td><td>Angle expressed in radians. </td></tr>
- <tr><td class="paramname">axis</td><td>Axis of the rotation</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00213">213</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga22b438c7252f3fa5b773c9882471652a"></a>
+<a class="anchor" id="ga2171d9dc1fefb1c82e2817f45b622eac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::slerp </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="memname">typedef detail::uint32 uint32_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit unsigned integer type. </p>
+<p>Default precision 32 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00885">885</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="memname">typedef detail::uint64 uint64</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00214">214</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga3999d3e7ff22025c16ddb601e14dfdee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="memname">typedef detail::uint64 uint64_t</td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit unsigned integer type. </p>
+<p>Default precision 64 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00889">889</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
+ <td class="memname">typedef detail::uint8 uint8</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Spherical linear interpolation of two quaternions. </p>
-<p>The interpolation always take the short path and the rotation is performed at constant speed.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A quaternion </td></tr>
- <tr><td class="paramname">y</td><td>A quaternion </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1]. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the quaternion. Supported: half, float or double. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines a templated quaternion type and several quaternion operations. ">GLM_GTC_quaternion</a> </dd></dl>
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00113_source.html#l00211">211</a> of file <a class="el" href="a00113_source.html">type_int.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="ga724a5df282b70cec0a6cb0d6dcddb6d6"></a>
+<a class="anchor" id="ga28d97808322d3c92186e4a0c067d7e8e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::yaw </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint8 uint8_t</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns yaw value of euler angles expressed in radians. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>8 bit unsigned integer type. </p>
+<p>Default precision 8 bit unsigned integer type.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00177.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00038_source.html#l00877">877</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
</div>
</div>
diff --git a/doc/api/a00178.html b/doc/api/a00178.html
index 353671b..709d475 100644
--- a/doc/api/a00178.html
+++ b/doc/api/a00178.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_random</title>
+<title>0.9.8: GLM_GTC_type_ptr</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,210 +39,398 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_random<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_type_ptr<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5506dee301160e3a06aef9b9bc7a0a83">ballRand</a> (T Radius)</td></tr>
-<tr class="separator:ga5506dee301160e3a06aef9b9bc7a0a83"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae989c26a2899b2fb7444abe7c275c29c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gae989c26a2899b2fb7444abe7c275c29c">circularRand</a> (T Radius)</td></tr>
-<tr class="separator:gae989c26a2899b2fb7444abe7c275c29c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gad3a3ee7d26502a31ba552cb627a68606"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gad3a3ee7d26502a31ba552cb627a68606">diskRand</a> (T Radius)</td></tr>
-<tr class="separator:gad3a3ee7d26502a31ba552cb627a68606"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5193a83e49e4fdc5652c084711083574"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5193a83e49e4fdc5652c084711083574">gaussRand</a> (genType Mean, genType Deviation)</td></tr>
-<tr class="separator:ga5193a83e49e4fdc5652c084711083574"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplParams" colspan="2">template<typename genTYpe > </td></tr>
-<tr class="memitem:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTYpe </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga12aebc19b85a8c736f5801c2f7b9b716">linearRand</a> (genTYpe Min, genTYpe Max)</td></tr>
-<tr class="separator:ga12aebc19b85a8c736f5801c2f7b9b716"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaa9a6fc2d7a295b3857f7db23b1053d9d">sphericalRand</a> (T Radius)</td></tr>
-<tr class="separator:gaa9a6fc2d7a295b3857f7db23b1053d9d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
+<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
+<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
+<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
+<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &vec)</td></tr>
+<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Generate random number from various distribution methods. </p>
-<p><<a class="el" href="a00096.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/random.hpp</a>> need to be included to use these functionalities. </p>
+<p>Handles the interaction between pointers and vector, matrix types. </p>
+<p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00159.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
+<p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="a00040.html">glm/glm.hpp</a>></span></div>
+<div class="line"><span class="preprocessor">#include <<a class="code" href="a00125.html">glm/gtc/type_ptr.hpp</a>></span></div>
+<div class="line"></div>
+<div class="line"><a class="code" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a> aVector(3);</div>
+<div class="line"><a class="code" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a> someMatrix(1.0);</div>
+<div class="line"></div>
+<div class="line">glUniform3fv(uniformLoc, 1, <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(aVector));</div>
+<div class="line">glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00178.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(someMatrix));</div>
+</div><!-- fragment --><p><<a class="el" href="a00125.html" title="GLM_GTC_type_ptr ">glm/gtc/type_ptr.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga5506dee301160e3a06aef9b9bc7a0a83"></a>
+<a class="anchor" id="ga52a16e333fef7e33ca740779482a8693"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::ballRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2 </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae989c26a2899b2fb7444abe7c275c29c"></a>
+<a class="anchor" id="gadb29e510762e1042069cb28bf24ae990"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::circularRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2x2 </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad3a3ee7d26502a31ba552cb627a68606"></a>
+<a class="anchor" id="ga37988c6dd941f617cdfab86d54375fc1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::diskRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x3<T, defaultp> glm::make_mat2x3 </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5193a83e49e4fdc5652c084711083574"></a>
+<a class="anchor" id="ga6dfb2ac10859b0cc8e3893ea84fa95b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gaussRand </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x4<T, defaultp> glm::make_mat2x4 </td>
<td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Mean</em>, </td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac2bc10c519ffc8db9e24f325f23787ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabe1e5066608a66da7a94f802b57b4eed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x2<T, defaultp> glm::make_mat3x2 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3cbe7adf857c867cee77eae4617abadd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3x3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac083edd180ab4d4b817acc60c516209b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x4<T, defaultp> glm::make_mat3x4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2c6e6d457cb932e1ce683e4f690a6f60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga967a5b934e67ff9a6d1d0d27a377a264"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x2<T, defaultp> glm::make_mat4x2 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4d42daced532b33cc672280e48670a51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x3<T, defaultp> glm::make_mat4x3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf605a5f5e2ff594e8d404b2855b09541"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4x4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Deviation</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaadafb6600af2633e4c98cc64c72f5269"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, defaultp> glm::make_quat </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate random numbers in the interval [Min, Max], according a gaussian distribution. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Mean</td><td></td></tr>
- <tr><td class="paramname">Deviation</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Build a quaternion from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga12aebc19b85a8c736f5801c2f7b9b716"></a>
+<a class="anchor" id="ga5f7393c30970c5949be13ceb525093a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genTYpe glm::linearRand </td>
+ <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::make_vec2 </td>
<td>(</td>
- <td class="paramtype">genTYpe </td>
- <td class="paramname"><em>Min</em>, </td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga86f4bc63570db86346db2e567fb760f6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::make_vec3 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td class="paramtype">genTYpe </td>
- <td class="paramname"><em>Max</em> </td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga152345176b8951c15711f6ed4f6fc237"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, defaultp> glm::make_vec4 </td>
+ <td>(</td>
+ <td class="paramtype">T const *const </td>
+ <td class="paramname"><em>ptr</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate random numbers in the interval [Min, Max], according a linear distribution. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Min</td><td></td></tr>
- <tr><td class="paramname">Max</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Value type. Currently supported: half (not recommanded), float or double scalars and vectors. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa9a6fc2d7a295b3857f7db23b1053d9d"></a>
+<p>Build a vector from a pointer. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf019636bb8bd7c9efb7c7ce3bb23bcfc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::sphericalRand </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type const* glm::value_ptr </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>Radius</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vec</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Radius</td><td></td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Generate random number from various distribution methods. ">GLM_GTC_random</a> </dd></dl>
+<p>Return the constant address to the data of the input parameter. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00178.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00179.html b/doc/api/a00179.html
index 05351a4..bdd31a4 100644
--- a/doc/api/a00179.html
+++ b/doc/api/a00179.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_reciprocal</title>
+<title>0.9.8: GLM_GTC_ulp</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,154 +39,99 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_reciprocal<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_ulp<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga97d029f989f849b62915b068c264246b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga97d029f989f849b62915b068c264246b">acot</a> (genType const &x)</td></tr>
-<tr class="separator:ga97d029f989f849b62915b068c264246b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad73911994e6bb6a06cc3ea1bd89201ab">acoth</a> (genType const &x)</td></tr>
-<tr class="separator:gad73911994e6bb6a06cc3ea1bd89201ab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga135e8f6b36bb85b5f7d8067e6b890e4d">acsc</a> (genType const &x)</td></tr>
-<tr class="separator:ga135e8f6b36bb85b5f7d8067e6b890e4d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga418b31539e1a69c262712f2c7a4f27eb">acsch</a> (genType const &x)</td></tr>
-<tr class="separator:ga418b31539e1a69c262712f2c7a4f27eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac9761980e09149002a466ca131a4bcac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gac9761980e09149002a466ca131a4bcac">asec</a> (genType const &x)</td></tr>
-<tr class="separator:gac9761980e09149002a466ca131a4bcac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga450f3bf1c04751198994d26d92ac2a63"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga450f3bf1c04751198994d26d92ac2a63">asech</a> (genType const &x)</td></tr>
-<tr class="separator:ga450f3bf1c04751198994d26d92ac2a63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2f49e28c2634ae1a212e2fc38c42ad42">cot</a> (genType const &angle)</td></tr>
-<tr class="separator:ga2f49e28c2634ae1a212e2fc38c42ad42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae2f1e6f7c360dda452b88e0c492d6f4d">coth</a> (genType const &angle)</td></tr>
-<tr class="separator:gae2f1e6f7c360dda452b88e0c492d6f4d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5df75de99f63e854087a06f538907b2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga5df75de99f63e854087a06f538907b2c">csc</a> (genType const &angle)</td></tr>
-<tr class="separator:ga5df75de99f63e854087a06f538907b2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga00404a9cdf62023792d1d0afedd7f896"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga00404a9cdf62023792d1d0afedd7f896">csch</a> (genType const &angle)</td></tr>
-<tr class="separator:ga00404a9cdf62023792d1d0afedd7f896"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabb6829a472da1cc94d88afa6396bed1f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gabb6829a472da1cc94d88afa6396bed1f">sec</a> (genType const &angle)</td></tr>
-<tr class="separator:gabb6829a472da1cc94d88afa6396bed1f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaaa698b992c63f454a3a1a1baa2773a3c">sech</a> (genType const &angle)</td></tr>
-<tr class="separator:gaaa698b992c63f454a3a1a1baa2773a3c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &x, T const &y)</td></tr>
+<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class vecType> </td></tr>
+<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType< T > const &x, vecType< T > const &y)</td></tr>
+<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &x)</td></tr>
+<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &x, uint const &Distance)</td></tr>
+<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &x)</td></tr>
+<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00179.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &x, uint const &Distance)</td></tr>
+<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Define secant, cosecant and cotangent functions. </p>
-<p><<a class="el" href="a00099.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/reciprocal.hpp</a>> need to be included to use these features. </p>
+<p>Allow the measurement of the accuracy of a function against a reference implementation. </p>
+<p>This extension works on floating-point data and provide results in ULP. <<a class="el" href="a00132.html" title="GLM_GTC_ulp ">glm/gtc/ulp.hpp</a>> need to be included to use these features. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga97d029f989f849b62915b068c264246b"></a>
+<a class="anchor" id="ga2e09bd6c8b0a9c91f6f5683d68245634"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acot </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::float_distance </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cotangent function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad73911994e6bb6a06cc3ea1bd89201ab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acoth </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cotangent hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga135e8f6b36bb85b5f7d8067e6b890e4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acsc </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Inverse cosecant function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the distance in the number of ULP between 2 scalars. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga418b31539e1a69c262712f2c7a4f27eb"></a>
+<a class="anchor" id="ga85355f2549d75789eb66e5d565d8ad26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::acsch </td>
+ <td class="memname">GLM_FUNC_DECL vecType<uint> glm::float_distance </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">vecType< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType< T > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Inverse cosecant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac9761980e09149002a466ca131a4bcac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::asec </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Inverse secant function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the distance in the number of ULP between 2 vectors. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga450f3bf1c04751198994d26d92ac2a63"></a>
+<a class="anchor" id="gae516ae554faa6117660828240e8bdaf0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::asech </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
<td>(</td>
<td class="paramtype">genType const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -195,125 +140,85 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Inverse secant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the next ULP value(s) after the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2f49e28c2634ae1a212e2fc38c42ad42"></a>
+<a class="anchor" id="gad107ec3d9697ef82032a33338a73ebdd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::cot </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
<td>(</td>
<td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
- <td></td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Cotangent function. </p>
-<p>adjacent / opposite or 1 / tan(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae2f1e6f7c360dda452b88e0c492d6f4d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::coth </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
+ <td class="paramname"><em>Distance</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Cotangent hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5df75de99f63e854087a06f538907b2c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::csc </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Cosecant function. </p>
-<p>hypotenuse / opposite or 1 / sin(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the value(s) ULP distance after the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga00404a9cdf62023792d1d0afedd7f896"></a>
+<a class="anchor" id="ga2fcbb7bfbfc595712bfddc51b0715b07"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::csch </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
<td>(</td>
<td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Cosecant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the previous ULP value(s) before the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabb6829a472da1cc94d88afa6396bed1f"></a>
+<a class="anchor" id="gaa399d5b6472a70e8952f9b26ecaacdec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::sec </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
<td>(</td>
<td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
+ <td class="paramname"><em>Distance</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Secant function. </p>
-<p>hypotenuse / adjacent or 1 / cos(x)</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaa698b992c63f454a3a1a1baa2773a3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::sech </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Secant hyperbolic function. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Define secant, cosecant and cotangent functions. ">GLM_GTC_reciprocal</a> </dd></dl>
+<p>Return the value(s) ULP distance before the input value(s). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00179.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00180.html b/doc/api/a00180.html
index 80c4bb9..49d7783 100644
--- a/doc/api/a00180.html
+++ b/doc/api/a00180.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_round</title>
+<title>0.9.8: GLM_GTC_vec1</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,562 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_round<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTC_vec1<div class="ingroups"><a class="el" href="a00154.html">GTC Extensions (Stable)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac84898c466e609cdd2e81d9ba907d9e8">ceilMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:gac84898c466e609cdd2e81d9ba907d9e8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gafe632af669ac57d670ca18e3665a12ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gafe632af669ac57d670ca18e3665a12ca">ceilMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:gafe632af669ac57d670ca18e3665a12ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaa73c7690c787086fa3ac1c312264acab"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaa73c7690c787086fa3ac1c312264acab">ceilPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaa73c7690c787086fa3ac1c312264acab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga76ec9b214ea1376fe09a903e34bab847"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga76ec9b214ea1376fe09a903e34bab847">ceilPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga76ec9b214ea1376fe09a903e34bab847"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga9eafb9dbedf84e5cece65c2fe9d5631d">floorMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga9eafb9dbedf84e5cece65c2fe9d5631d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6912db42d43873fe1dedb3aed2b7a239">floorMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga6912db42d43873fe1dedb3aed2b7a239"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gac80f6519c31baae10d8d7bea6735d1fa">floorPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gac80f6519c31baae10d8d7bea6735d1fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6a5a8f6dd1b2f755e4572bd039062c37">floorPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga6a5a8f6dd1b2f755e4572bd039062c37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaf7444a7b2eb524f373463ceba76b9326"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaf7444a7b2eb524f373463ceba76b9326">isMultiple</a> (genIUType Value, genIUType Multiple)</td></tr>
-<tr class="separator:gaf7444a7b2eb524f373463ceba76b9326"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga50ea5d5dc33fffba39ad6002a3784123">isMultiple</a> (vecType< T, P > const &Value, T Multiple)</td></tr>
-<tr class="separator:ga50ea5d5dc33fffba39ad6002a3784123"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga7ae705574ef3e3ebfb4f537d8d285c48">isMultiple</a> (vecType< T, P > const &Value, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga7ae705574ef3e3ebfb4f537d8d285c48"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gaebf826fbb6e0a70eeaab0792d89b25ec">isPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:gaebf826fbb6e0a70eeaab0792d89b25ec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gad454e4c8d8cd73ddc7de855f733a1465">isPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gad454e4c8d8cd73ddc7de855f733a1465"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6739d1de04b2cea7c78675b365644bce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6739d1de04b2cea7c78675b365644bce">roundMultiple</a> (genType Source, genType Multiple)</td></tr>
-<tr class="separator:ga6739d1de04b2cea7c78675b365644bce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga10a8ab7b254257b607b6a3fc68c3e661">roundMultiple</a> (vecType< T, P > const &Source, vecType< T, P > const &Multiple)</td></tr>
-<tr class="separator:ga10a8ab7b254257b607b6a3fc68c3e661"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#ga6d24a9e3abe3e6a908661b43acb8efe0">roundPowerOfTwo</a> (genIUType Value)</td></tr>
-<tr class="separator:ga6d24a9e3abe3e6a908661b43acb8efe0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00180.html#gae95be3b384f3bbd00c6c1cf0a1f96485">roundPowerOfTwo</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gae95be3b384f3bbd00c6c1cf0a1f96485"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>rounding value to specific boundings </p>
-<p><<a class="el" href="a00102.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/round.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gac84898c466e609cdd2e81d9ba907d9e8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::ceilMultiple </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Higher multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafe632af669ac57d670ca18e3665a12ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::ceilMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Higher multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa73c7690c787086fa3ac1c312264acab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga76ec9b214ea1376fe09a903e34bab847"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::ceilPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value, round up to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9eafb9dbedf84e5cece65c2fe9d5631d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::floorMultiple </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6912db42d43873fe1dedb3aed2b7a239"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::floorMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac80f6519c31baae10d8d7bea6735d1fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::floorPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6a5a8f6dd1b2f755e4572bd039062c37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::floorPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value, round down to a power of two. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf7444a7b2eb524f373463ceba76b9326"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50ea5d5dc33fffba39ad6002a3784123"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ae705574ef3e3ebfb4f537d8d285c48"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Value</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the 'Value' is a multiple of 'Multiple'. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaebf826fbb6e0a70eeaab0792d89b25ec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the value is a power of two number. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad454e4c8d8cd73ddc7de855f733a1465"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return true if the value is a power of two number. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6739d1de04b2cea7c78675b365644bce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::roundMultiple </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga10a8ab7b254257b607b6a3fc68c3e661"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::roundMultiple </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Source</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>Multiple</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Lower multiple number of Source. </p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point or integer scalar or vector types. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">Source</td><td></td></tr>
- <tr><td class="paramname">Multiple</td><td>Must be a null or positive value</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6d24a9e3abe3e6a908661b43acb8efe0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::roundPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae95be3b384f3bbd00c6c1cf0a1f96485"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::roundPowerOfTwo </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd></dl>
-
-</div>
-</div>
+<p>Add vec1, ivec1, uvec1 and bvec1 types. </p>
+<p><<a class="el" href="a00133.html" title="GLM_GTC_vec1 ">glm/gtc/vec1.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00181.html b/doc/api/a00181.html
index acf16f8..f4f6ea4 100644
--- a/doc/api/a00181.html
+++ b/doc/api/a00181.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_type_precision</title>
+<title>0.9.8: GLM_GTX_associated_min_max</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,3633 +37,1248 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_type_precision<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_associated_min_max<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7">f32</a></td></tr>
-<tr class="separator:gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memItemLeft" align="right" valign="top">typedef f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fedd5d29746afdaf2d3303a4442704e">f32mat2</a></td></tr>
-<tr class="separator:ga1fedd5d29746afdaf2d3303a4442704e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a></td></tr>
-<tr class="separator:gaf3a5016bf360977ce114deb2e01ae10a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a></td></tr>
-<tr class="separator:gad5f1043adbe803928fe7bf1a90a1f767"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5ed667d0247cce477f013ea31982843d"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a></td></tr>
-<tr class="separator:ga5ed667d0247cce477f013ea31982843d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memItemLeft" align="right" valign="top">typedef f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4377997b299a287f7ab3358c9bd3e4c">f32mat3</a></td></tr>
-<tr class="separator:gaf4377997b299a287f7ab3358c9bd3e4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a></td></tr>
-<tr class="separator:ga8709a1ea268fa69bdf1e11616d7fbaf1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a></td></tr>
-<tr class="separator:ga1e4c52bb824ca16c6e2e5b03635669d0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0100666c90176eaba80e49357d123c7f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a></td></tr>
-<tr class="separator:ga0100666c90176eaba80e49357d123c7f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga797fa3ab16e04456174c36238e091341"><td class="memItemLeft" align="right" valign="top">typedef f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga797fa3ab16e04456174c36238e091341">f32mat4</a></td></tr>
-<tr class="separator:ga797fa3ab16e04456174c36238e091341"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a></td></tr>
-<tr class="separator:ga27f897bdfe4bbded9481b8947553d1ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa69e73ffb01a52499071391d395908fb"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a></td></tr>
-<tr class="separator:gaa69e73ffb01a52499071391d395908fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe2e08549805a7ded26da2a868bedbf5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a></td></tr>
-<tr class="separator:gafe2e08549805a7ded26da2a868bedbf5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memItemLeft" align="right" valign="top">typedef highp_f32quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a></td></tr>
-<tr class="separator:ga6966c0cb4673928c9c9da2e91006d2c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3174a49dc84a977cad7012a62f4af02f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a></td></tr>
-<tr class="separator:ga3174a49dc84a977cad7012a62f4af02f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a></td></tr>
-<tr class="separator:gae0cb53ea6fe3d977fe588ce423d57cc3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a></td></tr>
-<tr class="separator:ga19d5e0d4d3d6d226c9c6c0f39756f9ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeb25dbb0261f82cb08da23e26d343704"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a></td></tr>
-<tr class="separator:gaeb25dbb0261f82cb08da23e26d343704"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1d794d240091678f602e8de225b8d8c9"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1d794d240091678f602e8de225b8d8c9">f64</a></td></tr>
-<tr class="separator:ga1d794d240091678f602e8de225b8d8c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74b9918c90ea60ce58b3979cde963a38"><td class="memItemLeft" align="right" valign="top">typedef f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74b9918c90ea60ce58b3979cde963a38">f64mat2</a></td></tr>
-<tr class="separator:ga74b9918c90ea60ce58b3979cde963a38"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeb817419c76a0766c88713d2754e6cb3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a></td></tr>
-<tr class="separator:gaeb817419c76a0766c88713d2754e6cb3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga87d256f4719417e311cd0ea14264678d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a></td></tr>
-<tr class="separator:ga87d256f4719417e311cd0ea14264678d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb18822e2eac88fa861a76cefd25d550"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a></td></tr>
-<tr class="separator:gafb18822e2eac88fa861a76cefd25d550"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga68894201dd511792a7af6cff7b5adf71"><td class="memItemLeft" align="right" valign="top">typedef f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga68894201dd511792a7af6cff7b5adf71">f64mat3</a></td></tr>
-<tr class="separator:ga68894201dd511792a7af6cff7b5adf71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11e5684b10e098f573ff484c1a569ae2"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a></td></tr>
-<tr class="separator:ga11e5684b10e098f573ff484c1a569ae2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a></td></tr>
-<tr class="separator:gae1a5081181c96cc37ce9418f6e856cb6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad37a55a8ce1154083a721b4ecfd55293"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a></td></tr>
-<tr class="separator:gad37a55a8ce1154083a721b4ecfd55293"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memItemLeft" align="right" valign="top">typedef f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga219c683b0aa29f4f482f76d77d5c9e95">f64mat4</a></td></tr>
-<tr class="separator:ga219c683b0aa29f4f482f76d77d5c9e95"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa669dfb59031a441de19b34a92704d57"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a></td></tr>
-<tr class="separator:gaa669dfb59031a441de19b34a92704d57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaba137814a509704937746cc1e82edc32"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a></td></tr>
-<tr class="separator:gaba137814a509704937746cc1e82edc32"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga489163773b021f1800a33cc2fa730c3b"><td class="memItemLeft" align="right" valign="top">typedef highp_f64mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a></td></tr>
-<tr class="separator:ga489163773b021f1800a33cc2fa730c3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memItemLeft" align="right" valign="top">typedef highp_f64quat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a></td></tr>
-<tr class="separator:ga14c583bd625eda8cf4935a14d5dd544d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a></td></tr>
-<tr class="separator:gac5b04f32ae3084a9131a0851e7f4cfae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafaad77b464b5a35626c31205ac6780e3"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a></td></tr>
-<tr class="separator:gafaad77b464b5a35626c31205ac6780e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafacc3614bb1136a7756293e67d34de22"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a></td></tr>
-<tr class="separator:gafacc3614bb1136a7756293e67d34de22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8723186104dc02eb85da386105fba75f"><td class="memItemLeft" align="right" valign="top">typedef highp_f64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a></td></tr>
-<tr class="separator:ga8723186104dc02eb85da386105fba75f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memItemLeft" align="right" valign="top">typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a></td></tr>
-<tr class="separator:gad3c127f8bf8d7d4e738037c257abb5b1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41d579d81c3d98edd0532244fa02da77"><td class="memItemLeft" align="right" valign="top">typedef highp_float32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a></td></tr>
-<tr class="separator:ga41d579d81c3d98edd0532244fa02da77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab5596d48586414c91ccb270962dc14d3"><td class="memItemLeft" align="right" valign="top">typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a></td></tr>
-<tr class="separator:gab5596d48586414c91ccb270962dc14d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6957c7b22f405683bb276554ca40dc37"><td class="memItemLeft" align="right" valign="top">typedef highp_float64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a></td></tr>
-<tr class="separator:ga6957c7b22f405683bb276554ca40dc37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memItemLeft" align="right" valign="top">typedef fmat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabb01d4ff646ee07241934b1a0cc0f985">fmat2</a></td></tr>
-<tr class="separator:gabb01d4ff646ee07241934b1a0cc0f985"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a></td></tr>
-<tr class="separator:ga74ac2e71b650162d8f7cb2a70c2f6711"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf17b2604c0d92bffb92375d8aa588756"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a></td></tr>
-<tr class="separator:gaf17b2604c0d92bffb92375d8aa588756"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat2x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a></td></tr>
-<tr class="separator:ga709c97c20efa24ff1d9e83cd437b8ed5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5165fbee2d78f342950265b69a07353d"><td class="memItemLeft" align="right" valign="top">typedef fmat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5165fbee2d78f342950265b69a07353d">fmat3</a></td></tr>
-<tr class="separator:ga5165fbee2d78f342950265b69a07353d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a></td></tr>
-<tr class="separator:ga9f20af6e8eca2abdcde08408948cc1ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad339e25c32fe6665acf028f26c1b3e22"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a></td></tr>
-<tr class="separator:gad339e25c32fe6665acf028f26c1b3e22"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat3x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a></td></tr>
-<tr class="separator:gab04bc97371cb6b5f54b3688e0c81578b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3f31d867df4874e42172ebf188a3ebd"><td class="memItemLeft" align="right" valign="top">typedef fmat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab3f31d867df4874e42172ebf188a3ebd">fmat4</a></td></tr>
-<tr class="separator:gab3f31d867df4874e42172ebf188a3ebd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a></td></tr>
-<tr class="separator:gab0082a25f19f02d2d0af0fcbe5ead732"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a11c170f030ab34ddf037714e936cba"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a></td></tr>
-<tr class="separator:ga1a11c170f030ab34ddf037714e936cba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd79752ff357d83b49136b6299ea62d9"><td class="memItemLeft" align="right" valign="top">typedef highp_f32mat4x4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a></td></tr>
-<tr class="separator:gabd79752ff357d83b49136b6299ea62d9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a></td></tr>
-<tr class="separator:ga10d8bd3c923a5386efcf25a4117fd84f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a></td></tr>
-<tr class="separator:gaf9f4173dd9e8b2d0b663c6f80ed09ff6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a></td></tr>
-<tr class="separator:ga4ef2d77dcab241b1ef83f09edb2f1084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga981b63d5c5f7233a29364e0a968d139b"><td class="memItemLeft" align="right" valign="top">typedef highp_f32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a></td></tr>
-<tr class="separator:ga981b63d5c5f7233a29364e0a968d139b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0336abc2604dd2c20c30e036454b64f8"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a></td></tr>
-<tr class="separator:ga0336abc2604dd2c20c30e036454b64f8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga727675ac6b5d2fc699520e0059735e25"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a></td></tr>
-<tr class="separator:ga727675ac6b5d2fc699520e0059735e25"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a></td></tr>
-<tr class="separator:gac25db6d2b1e2a0f351b77ba3409ac4cd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacb88796f2d08ef253d0345aff20c3aee"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a></td></tr>
-<tr class="separator:gacb88796f2d08ef253d0345aff20c3aee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a></td></tr>
-<tr class="separator:ga5fde0fa4a3852a9dd5d637a92ee74718"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a></td></tr>
-<tr class="separator:gacaea06d0a79ef3172e887a7a6ba434ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga84ed04b4e0de18c977e932d617e7c223"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a></td></tr>
-<tr class="separator:ga84ed04b4e0de18c977e932d617e7c223"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a></td></tr>
-<tr class="separator:ga2c71c8bd9e2fe7d2e93ca250d8b6157f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a></td></tr>
-<tr class="separator:ga226a8d52b4e3f77aaa6231135e886aac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73c6abb280a45feeff60f9accaee91f3"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a></td></tr>
-<tr class="separator:ga73c6abb280a45feeff60f9accaee91f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a></td></tr>
-<tr class="separator:gad0549c902a96a7164e4ac858d5f39dbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a></td></tr>
-<tr class="separator:ga1085c50dd8fbeb5e7e609b1c127492a5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e62c883d13f47015f3b70ed88751369"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a></td></tr>
-<tr class="separator:ga8e62c883d13f47015f3b70ed88751369"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a></td></tr>
-<tr class="separator:ga7a6f1929464dcc680b16381a4ee5f2cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c181fdf06a309691999926b6690c969"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a></td></tr>
-<tr class="separator:ga0c181fdf06a309691999926b6690c969"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a></td></tr>
-<tr class="separator:gacd1259f3a9e8d2a9df5be2d74322ef9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga746dc6da204f5622e395f492997dbf57"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a></td></tr>
-<tr class="separator:ga746dc6da204f5622e395f492997dbf57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a></td></tr>
-<tr class="separator:gacf54c3330ef60aa3d16cb676c7bcb8c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a></td></tr>
-<tr class="separator:ga256b12b650c3f2fb86878fd1c5db8bc3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae978599c9711ac263ba732d4ac225b0e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a></td></tr>
-<tr class="separator:gae978599c9711ac263ba732d4ac225b0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a></td></tr>
-<tr class="separator:gaa38d732f5d4a7bc42a1b43b9d3c141ce"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a></td></tr>
-<tr class="separator:gaa46172d7dc1c7ffe3e78107ff88adf08"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga97432f9979e73e66567361fd01e4cffb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a></td></tr>
-<tr class="separator:ga97432f9979e73e66567361fd01e4cffb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a></td></tr>
-<tr class="separator:gac4e00a26a2adb5f2c0a7096810df29e5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a></td></tr>
-<tr class="separator:ga3ab5fe184343d394fb6c2723c3ee3699"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a></td></tr>
-<tr class="separator:ga28f03a39ac56c70f9bf3ada11cb60e3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a></td></tr>
-<tr class="separator:ga110bec18ca44c41c76c3c9e4d7b5bd79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga973b226a9914db682c9372fc761fb535"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a></td></tr>
-<tr class="separator:ga973b226a9914db682c9372fc761fb535"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memItemLeft" align="right" valign="top">typedef highp_i16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a></td></tr>
-<tr class="separator:gad73e5e905dcf2d8cab002b4ab46e9426"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a></td></tr>
-<tr class="separator:ga96faea43ac5f875d2d3ffbf8d213e3eb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a></td></tr>
-<tr class="separator:ga4cca6bbd117c45f046291fc8e9d03765"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3c12cef4135603fd77d8fda85808730c"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a></td></tr>
-<tr class="separator:ga3c12cef4135603fd77d8fda85808730c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga40cd3f391c03512f158d10a70062264e"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a></td></tr>
-<tr class="separator:ga40cd3f391c03512f158d10a70062264e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3364a8090e7e1408056e00403dfecab"><td class="memItemLeft" align="right" valign="top">typedef highp_i32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a></td></tr>
-<tr class="separator:gae3364a8090e7e1408056e00403dfecab"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb997e409103d4da18abd837e636a496"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a></td></tr>
-<tr class="separator:gadb997e409103d4da18abd837e636a496"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a></td></tr>
-<tr class="separator:ga5b4a3e499ee165efc0dc05add9c48235"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade69872a31f066e5ae212f1af6008edb"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a></td></tr>
-<tr class="separator:gade69872a31f066e5ae212f1af6008edb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a></td></tr>
-<tr class="separator:ga9ece7c77c7bca7a6b824ef9c600f5e5e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memItemLeft" align="right" valign="top">typedef highp_i64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a></td></tr>
-<tr class="separator:ga9756e45c8f80329257f3cbdabc3bd73c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga302ec977b0c0c3ea245b6c9275495355"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a></td></tr>
-<tr class="separator:ga302ec977b0c0c3ea245b6c9275495355"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a></td></tr>
-<tr class="separator:gab2329c5c14ff5a03b1ddec039e2c7409"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6414484477e4c1b4863cf91af8fd4185"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a></td></tr>
-<tr class="separator:ga6414484477e4c1b4863cf91af8fd4185"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4b5993e794e252607f91535b62a7e0c"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a></td></tr>
-<tr class="separator:gaf4b5993e794e252607f91535b62a7e0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memItemLeft" align="right" valign="top">typedef highp_i8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a></td></tr>
-<tr class="separator:ga50e58885aee2cf01bb3ba472c5b1697e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga302041c186d0d028bea31b711fe16759"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a></td></tr>
-<tr class="separator:ga302041c186d0d028bea31b711fe16759"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a></td></tr>
-<tr class="separator:gae8f5e3e964ca2ae240adc2c0d74adede"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a></td></tr>
-<tr class="separator:ga8df669f4e7698dfe0c0354d92578d74f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a></td></tr>
-<tr class="separator:ga042ef09ff2f0cb24a36f541bcb3a3710"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaff5189f97f9e842d9636a0f240001b2e"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a></td></tr>
-<tr class="separator:gaff5189f97f9e842d9636a0f240001b2e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a></td></tr>
-<tr class="separator:ga322a7d7d2c2c68994dc872a33de63c61"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a></td></tr>
-<tr class="separator:ga41c6189f6485c2825d60fdc835b3a2b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4bf09d8838a86866b39ee6e109341645"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a></td></tr>
-<tr class="separator:ga4bf09d8838a86866b39ee6e109341645"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a></td></tr>
-<tr class="separator:ga392b673fd10847bfb78fb808c6cf8ff7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a></td></tr>
-<tr class="separator:ga7ff73a45cea9613ebf1a9fad0b9f82ac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a></td></tr>
-<tr class="separator:ga354736e0c645099cd44c42fb2f87c2b8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga552a6bde5e75984efb0f863278da2e54"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a></td></tr>
-<tr class="separator:ga552a6bde5e75984efb0f863278da2e54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga698e36b01167fc0f037889334dce8def"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a></td></tr>
-<tr class="separator:ga698e36b01167fc0f037889334dce8def"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a></td></tr>
-<tr class="separator:ga8b2cd8d31eb345b2d641d9261c38db1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a></td></tr>
-<tr class="separator:ga864aabca5f3296e176e0c3ed9cc16b02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0350631d35ff800e6133ac6243b13cbc"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a></td></tr>
-<tr class="separator:ga0350631d35ff800e6133ac6243b13cbc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a></td></tr>
-<tr class="separator:gaf645b1a60203b39c0207baff5e3d8c3c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebf341fc4a5be233f7dde962c2e33847"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a></td></tr>
-<tr class="separator:gaebf341fc4a5be233f7dde962c2e33847"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a></td></tr>
-<tr class="separator:ga760bcf26fdb23a2c3ecad3c928a19ae6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga119c41d73fe9977358174eb3ac1035a3"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a></td></tr>
-<tr class="separator:ga119c41d73fe9977358174eb3ac1035a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a></td></tr>
-<tr class="separator:ga504ce1631cb2ac02fcf1d44d8c2aa126"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a></td></tr>
-<tr class="separator:ga4f072ada9552e1e480bbb3b1acde5250"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a></td></tr>
-<tr class="separator:ga30069d1f02b19599cbfadf98c23ac6ed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1b09f03da7ac43055c68a349d5445083"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a></td></tr>
-<tr class="separator:ga1b09f03da7ac43055c68a349d5445083"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a></td></tr>
-<tr class="separator:gad68bfd9f881856fc863a6ebca0b67f78"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91c4815f93177eb423362fd296a87e9f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a></td></tr>
-<tr class="separator:ga91c4815f93177eb423362fd296a87e9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a></td></tr>
-<tr class="separator:gaa6a5b461bbf5fe20982472aa51896d4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a></td></tr>
-<tr class="separator:gaf1b735b4b1145174f4e4167d13778f9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa212b805736a759998e312cbdd550fae"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a></td></tr>
-<tr class="separator:gaa212b805736a759998e312cbdd550fae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a></td></tr>
-<tr class="separator:ga8dd3a3281ae5c970ffe0c41d538aa153"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf49470869e9be2c059629b250619804e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a></td></tr>
-<tr class="separator:gaf49470869e9be2c059629b250619804e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga667b2ece2b258be898812dc2177995d1"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a></td></tr>
-<tr class="separator:ga667b2ece2b258be898812dc2177995d1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a></td></tr>
-<tr class="separator:ga62a17cddeb4dffb4e18fe3aea23f051a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a></td></tr>
-<tr class="separator:gaf5e94bf2a20af7601787c154751dc2e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a></td></tr>
-<tr class="separator:ga3ebcb1f6d8d8387253de8bccb058d77f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf1ded173e1e2d049c511d095b259e21"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a></td></tr>
-<tr class="separator:gacf1ded173e1e2d049c511d095b259e21"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a></td></tr>
-<tr class="separator:gadff3608baa4b5bd3ed28f95c1c2c345d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga80e72fe94c88498537e8158ba7591c54"><td class="memItemLeft" align="right" valign="top">typedef detail::int16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a></td></tr>
-<tr class="separator:ga80e72fe94c88498537e8158ba7591c54"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5244cef85d6e870e240c76428a262ae8"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a></td></tr>
-<tr class="separator:ga5244cef85d6e870e240c76428a262ae8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memItemLeft" align="right" valign="top">typedef detail::int32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a></td></tr>
-<tr class="separator:ga26fc7ced1ad7ca5024f1c973c8dc9180"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b968f2b86a0442a89c7359171e1d866"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a></td></tr>
-<tr class="separator:ga7b968f2b86a0442a89c7359171e1d866"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memItemLeft" align="right" valign="top">typedef detail::int64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a></td></tr>
-<tr class="separator:gac3bc41bcac61d1ba8f02a6f68ce23f64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a></td></tr>
-<tr class="separator:ga6fbd69cbdaa44345bff923a2cf63de7e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d7b3789ecb932c26430009478cac7ae"><td class="memItemLeft" align="right" valign="top">typedef detail::int8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a></td></tr>
-<tr class="separator:ga6d7b3789ecb932c26430009478cac7ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a></td></tr>
-<tr class="separator:ga9df98857be695d5a30cb30f5bfa38a80"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1bd0e914158bf03135f8a317de6debe9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a></td></tr>
-<tr class="separator:ga1bd0e914158bf03135f8a317de6debe9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2af9490085ae3bdf36a544e9dd073610"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a></td></tr>
-<tr class="separator:ga2af9490085ae3bdf36a544e9dd073610"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a></td></tr>
-<tr class="separator:gad1213a22bbb9e4107f07eaa4956f8281"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a></td></tr>
-<tr class="separator:ga2885a6c89916911e418c06bb76b9bdbb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a></td></tr>
-<tr class="separator:ga3963b1050fc65a383ee28e3f827b6e3e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a></td></tr>
-<tr class="separator:ga34dd5ec1988c443bae80f1b20a8ade5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4dae276fd29623950de14a6ca2586b5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a></td></tr>
-<tr class="separator:gaf4dae276fd29623950de14a6ca2586b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga30652709815ad9404272a31957daa59e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a></td></tr>
-<tr class="separator:ga30652709815ad9404272a31957daa59e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a></td></tr>
-<tr class="separator:ga9b170dd4a8f38448a2dc93987c7875e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a></td></tr>
-<tr class="separator:ga1fa92a233b9110861cdbc8c2ccf0b5a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadfe65c78231039e90507770db50c98c7"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a></td></tr>
-<tr class="separator:gadfe65c78231039e90507770db50c98c7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a></td></tr>
-<tr class="separator:gaa2d7acc0adb536fab71fe261232a40ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a></td></tr>
-<tr class="separator:gaefa2ce8fbdbe89baffd262f46f2d5907"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga426030555085ed6c39a54e73afbef962"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a></td></tr>
-<tr class="separator:ga426030555085ed6c39a54e73afbef962"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f5dbe417199277e449b8db0210acb71"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a></td></tr>
-<tr class="separator:ga7f5dbe417199277e449b8db0210acb71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf524c9059f0342668d8eea359bcceaae"><td class="memItemLeft" align="right" valign="top">typedef highp_u16vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a></td></tr>
-<tr class="separator:gaf524c9059f0342668d8eea359bcceaae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8165913e068444f7842302d40ba897b9"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a></td></tr>
-<tr class="separator:ga8165913e068444f7842302d40ba897b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a></td></tr>
-<tr class="separator:ga913a8bd51e4ebccd30ad488de3c18da9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a></td></tr>
-<tr class="separator:ga0741d40e2b0fea4f1c50cb325114f075"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a></td></tr>
-<tr class="separator:gad9b52e1c271cb9c8bfae6365d3e38a23"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memItemLeft" align="right" valign="top">typedef highp_u32vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a></td></tr>
-<tr class="separator:ga155ac7e9e454e2b1f73d11e1e28a0fd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3f312156984c365e9f65620354da70b"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a></td></tr>
-<tr class="separator:gaf3f312156984c365e9f65620354da70b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga793c9293cc687a0e342396a377c5df77"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a></td></tr>
-<tr class="separator:ga793c9293cc687a0e342396a377c5df77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a></td></tr>
-<tr class="separator:ga2204827de9d4ee7fa92ef497093f7d6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3460933f040f59f0fedb29df1e9be71c"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a></td></tr>
-<tr class="separator:ga3460933f040f59f0fedb29df1e9be71c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafb6ca34df28889a5db9d244aed375411"><td class="memItemLeft" align="right" valign="top">typedef highp_u64vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a></td></tr>
-<tr class="separator:gafb6ca34df28889a5db9d244aed375411"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaecc7082561fc9028b844b6cf3d305d36"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a></td></tr>
-<tr class="separator:gaecc7082561fc9028b844b6cf3d305d36"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga92e0c191e5cc326255284d08be3af7c5"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a></td></tr>
-<tr class="separator:ga92e0c191e5cc326255284d08be3af7c5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a></td></tr>
-<tr class="separator:ga61667c99caf60ce6c48ebbbac72bd91d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8ca60d0ba6d438892be6017f43747661"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec3 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a></td></tr>
-<tr class="separator:ga8ca60d0ba6d438892be6017f43747661"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga114e005014d910bea07954eee24b7efb"><td class="memItemLeft" align="right" valign="top">typedef highp_u8vec4 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a></td></tr>
-<tr class="separator:ga114e005014d910bea07954eee24b7efb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga13471cbbe74e4303a57f3743d007b74d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a></td></tr>
-<tr class="separator:ga13471cbbe74e4303a57f3743d007b74d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga91f91f411080c37730856ff5887f5bcf"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a></td></tr>
-<tr class="separator:ga91f91f411080c37730856ff5887f5bcf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a></td></tr>
-<tr class="separator:ga5fa3ddcab56c789bc272ff5651faa12d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a></td></tr>
-<tr class="separator:ga2171d9dc1fefb1c82e2817f45b622eac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab630f76c26b50298187f7889104d4b9c"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a></td></tr>
-<tr class="separator:gab630f76c26b50298187f7889104d4b9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a></td></tr>
-<tr class="separator:ga3999d3e7ff22025c16ddb601e14dfdee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga36475e31b1992cfde54c1a6f5a148865"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a></td></tr>
-<tr class="separator:ga36475e31b1992cfde54c1a6f5a148865"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a></td></tr>
-<tr class="separator:ga28d97808322d3c92186e4a0c067d7e8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
+<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)</td></tr>
+<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)</td></tr>
+<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
+<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
+<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
+<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)</td></tr>
+<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
+<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
+<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
+<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
+<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
+<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
+<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00181.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
+<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines specific C++-based precision types. </p>
-<p><a class="el" href="a00164.html">Precision types</a> defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.</p>
-<p><<a class="el" href="a00130.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/type_precision.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gabe6a542dd6c1d5ffd847f1b9b4c9c9b7"></a>
+<p>Min and max functions that return associated values not the compared onces. </p>
+<p><<a class="el" href="a00007.html" title="GLM_GTX_associated_min_max ">glm/gtx/associated_min_max.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga7d9c8785230c8db60f72ec8975f1ba45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef float32 f32</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01534">1534</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1fedd5d29746afdaf2d3303a4442704e"></a>
+<a class="anchor" id="ga10ba6001798f42a0f941f19ff30e066a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2< f32, defaultp > f32mat2</td>
+ <td class="memname">GLM_FUNC_DECL tvec2<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02478">2478</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf3a5016bf360977ce114deb2e01ae10a"></a>
+<a class="anchor" id="ga62ca63cca6b21387b8a25474f441a869"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2< f32, defaultp > f32mat2x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02442">2442</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad5f1043adbe803928fe7bf1a90a1f767"></a>
+<a class="anchor" id="ga5364520173815b66a9d9e452c38bf312"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x3< f32, defaultp > f32mat2x3</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x3 matrix. </p>
-<p>Single-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02446">2446</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5ed667d0247cce477f013ea31982843d"></a>
+<a class="anchor" id="gaec891e363d91abbf3a4443cf2f652209"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x4< f32, defaultp > f32mat2x4</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 2x4 matrix. </p>
-<p>Single-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02450">2450</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf4377997b299a287f7ab3358c9bd3e4c"></a>
+<a class="anchor" id="ga065a0c1eb7837118ef79be88dfd78487"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3< f32, defaultp > f32mat3</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02482">2482</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8709a1ea268fa69bdf1e11616d7fbaf1"></a>
+<a class="anchor" id="ga553431a468e251623408603bcb51c9cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x2< f32, defaultp > f32mat3x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 3x2 matrix. </p>
-<p>Single-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02454">2454</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1e4c52bb824ca16c6e2e5b03635669d0"></a>
+<a class="anchor" id="ga327136e6a568569c03a056f90814b656"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x3< f32, defaultp > f32mat3x3</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02458">2458</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0100666c90176eaba80e49357d123c7f"></a>
+<a class="anchor" id="ga3038ffcb43eaa6af75897a99a5047ccc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat3x4< f32, defaultp > f32mat3x4</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 3x4 matrix. </p>
-<p>Single-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02462">2462</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga797fa3ab16e04456174c36238e091341"></a>
+<a class="anchor" id="gaf607886421c35cd7e4f41a50d7c330e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4< f32, defaultp > f32mat4</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02486">2486</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga27f897bdfe4bbded9481b8947553d1ff"></a>
+<a class="anchor" id="ga7a165de1af9a3f9193516a3b47407086"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x2< f32, defaultp > f32mat4x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 4x2 matrix. </p>
-<p>Single-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02466">2466</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa69e73ffb01a52499071391d395908fb"></a>
+<a class="anchor" id="ga3122fbe8133ea54749b10fb93e8a167e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x3< f32, defaultp > f32mat4x3</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 4x3 matrix. </p>
-<p>Single-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02470">2470</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gafe2e08549805a7ded26da2a868bedbf5"></a>
+<a class="anchor" id="gacc01bd272359572fc28437ae214a02df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat4x4< f32, defaultp > f32mat4x4</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02474">2474</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6966c0cb4673928c9c9da2e91006d2c0"></a>
+<a class="anchor" id="ga8b538d10872626668a078e2bd495af25"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tquat< f32, defaultp > f32quat</td>
+ <td class="memname">GLM_FUNC_DECL tvec2<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point quaternion. </p>
-<p>Single-precision floating-point quaternion.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02490">2490</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3174a49dc84a977cad7012a62f4af02f"></a>
+<a class="anchor" id="ga1dccff48fa5650c746533de83467da6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec1< f32, defaultp > f32vec1</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const vecType< U, P > & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const vecType< U, P > & </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point vector of 1 components. </p>
-<p>Single-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02426">2426</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae0cb53ea6fe3d977fe588ce423d57cc3"></a>
+<a class="anchor" id="ga076717f4e07c6ae725cc1382d1ac4869"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2< f32, defaultp > f32vec2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point vector of 2 components. </p>
-<p>Single-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02430">2430</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga19d5e0d4d3d6d226c9c6c0f39756f9ad"></a>
+<a class="anchor" id="gad0aa8f86259a26d839d34a3577a923fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec3< f32, defaultp > f32vec3</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point vector of 3 components. </p>
-<p>Single-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02434">2434</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaeb25dbb0261f82cb08da23e26d343704"></a>
+<a class="anchor" id="ga5bc6b9acbf9e060d58a342fbe3b73d43"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4< f32, defaultp > f32vec4</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default single-precision floating-point vector of 4 components. </p>
-<p>Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02438">2438</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1d794d240091678f602e8de225b8d8c9"></a>
+<a class="anchor" id="ga432224ebe2085eaa2b63a077ecbbbff6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef float64 f64</td>
+ <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01538">1538</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga74b9918c90ea60ce58b3979cde963a38"></a>
+<a class="anchor" id="ga88e031f22b80215505928900d3dde549"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2< f64, defaultp > f64mat2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>w</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>d</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default double-precision floating-point 2x2 matrix. </p>
-<p>Double-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02584">2584</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaeb817419c76a0766c88713d2754e6cb3"></a>
+<a class="anchor" id="ga0f63b0dce5a5c3242cc6d9847e7d14f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tmat2x2< f64, defaultp > f64mat2x2</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x2 matrix. </p>
-<p>Double-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Double-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02548">2548</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga87d256f4719417e311cd0ea14264678d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3< f64, defaultp > f64mat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x3 matrix. </p>
-<p>Double-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02552">2552</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb18822e2eac88fa861a76cefd25d550"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4< f64, defaultp > f64mat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 2x4 matrix. </p>
-<p>Double-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02556">2556</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga68894201dd511792a7af6cff7b5adf71"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< f64, defaultp > f64mat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x3 matrix. </p>
-<p>Double-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02588">2588</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga11e5684b10e098f573ff484c1a569ae2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2< f64, defaultp > f64mat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x2 matrix. </p>
-<p>Double-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02560">2560</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae1a5081181c96cc37ce9418f6e856cb6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< f64, defaultp > f64mat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x3 matrix. </p>
-<p>Double-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02564">2564</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad37a55a8ce1154083a721b4ecfd55293"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4< f64, defaultp > f64mat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 3x4 matrix. </p>
-<p>Double-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02568">2568</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga219c683b0aa29f4f482f76d77d5c9e95"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< f64, defaultp > f64mat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x4 matrix. </p>
-<p>Double-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02592">2592</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa669dfb59031a441de19b34a92704d57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2< f64, defaultp > f64mat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x2 matrix. </p>
-<p>Double-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02572">2572</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaba137814a509704937746cc1e82edc32"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3< f64, defaultp > f64mat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x3 matrix. </p>
-<p>Double-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02576">2576</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga489163773b021f1800a33cc2fa730c3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< f64, defaultp > f64mat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point 4x4 matrix. </p>
-<p>Double-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02580">2580</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga14c583bd625eda8cf4935a14d5dd544d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tquat< f64, defaultp > f64quat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point quaternion. </p>
-<p>Double-precision floating-point quaternion.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02596">2596</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac5b04f32ae3084a9131a0851e7f4cfae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< f64, defaultp > f64vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 1 components. </p>
-<p>Double-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02532">2532</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafaad77b464b5a35626c31205ac6780e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< f64, defaultp > f64vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 2 components. </p>
-<p>Double-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02536">2536</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafacc3614bb1136a7756293e67d34de22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< f64, defaultp > f64vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 3 components. </p>
-<p>Double-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02540">2540</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8723186104dc02eb85da386105fba75f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< f64, defaultp > f64vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default double-precision floating-point vector of 4 components. </p>
-<p>Double-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02544">2544</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad3c127f8bf8d7d4e738037c257abb5b1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::float32 float32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00084">84</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41d579d81c3d98edd0532244fa02da77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::float32 float32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 32 bit single-precision floating-point scalar. </p>
-<p>32 bit single-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01526">1526</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab5596d48586414c91ccb270962dc14d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::float64 float64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00116_source.html#l00085">85</a> of file <a class="el" href="a00116_source.html">type_float.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6957c7b22f405683bb276554ca40dc37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::float64 float64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default 64 bit double-precision floating-point scalar. </p>
-<p>64 bit double-precision floating-point scalar.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01530">1530</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabb01d4ff646ee07241934b1a0cc0f985"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< f32, defaultp > fmat2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02408">2408</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga74ac2e71b650162d8f7cb2a70c2f6711"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x2< f32, defaultp > fmat2x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x2 matrix. </p>
-<p>Single-precision floating-point 1x1 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a></dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> Single-precision floating-point 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02372">2372</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf17b2604c0d92bffb92375d8aa588756"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x3< f32, defaultp > fmat2x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x3 matrix. </p>
-<p>Single-precision floating-point 2x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02376">2376</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga709c97c20efa24ff1d9e83cd437b8ed5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat2x4< f32, defaultp > fmat2x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 2x4 matrix. </p>
-<p>Single-precision floating-point 2x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02380">2380</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5165fbee2d78f342950265b69a07353d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< f32, defaultp > fmat3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02412">2412</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9f20af6e8eca2abdcde08408948cc1ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x2< f32, defaultp > fmat3x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x2 matrix. </p>
-<p>Single-precision floating-point 3x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02384">2384</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad339e25c32fe6665acf028f26c1b3e22"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x3< f32, defaultp > fmat3x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x3 matrix. </p>
-<p>Single-precision floating-point 3x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02388">2388</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab04bc97371cb6b5f54b3688e0c81578b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat3x4< f32, defaultp > fmat3x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 3x4 matrix. </p>
-<p>Single-precision floating-point 3x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02392">2392</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab3f31d867df4874e42172ebf188a3ebd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< f32, defaultp > fmat4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02416">2416</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab0082a25f19f02d2d0af0fcbe5ead732"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x2< f32, defaultp > fmat4x2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x2 matrix. </p>
-<p>Single-precision floating-point 4x2 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02396">2396</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1a11c170f030ab34ddf037714e936cba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x3< f32, defaultp > fmat4x3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x3 matrix. </p>
-<p>Single-precision floating-point 4x3 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02400">2400</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gabd79752ff357d83b49136b6299ea62d9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tmat4x4< f32, defaultp > fmat4x4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point 4x4 matrix. </p>
-<p>Single-precision floating-point 4x4 matrix.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02404">2404</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga10d8bd3c923a5386efcf25a4117fd84f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< float, defaultp > fvec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 1 components. </p>
-<p>Single-precision floating-point vector of 1 component.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02356">2356</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf9f4173dd9e8b2d0b663c6f80ed09ff6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< float, defaultp > fvec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 2 components. </p>
-<p>Single-precision floating-point vector of 2 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02360">2360</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4ef2d77dcab241b1ef83f09edb2f1084"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< float, defaultp > fvec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 3 components. </p>
-<p>Single-precision floating-point vector of 3 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02364">2364</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga981b63d5c5f7233a29364e0a968d139b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< float, defaultp > fvec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default single-precision floating-point vector of 4 components. </p>
-<p>Single-precision floating-point vector of 4 components.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l02368">2368</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0336abc2604dd2c20c30e036454b64f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 highp_i16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00261">261</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga727675ac6b5d2fc699520e0059735e25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 highp_i32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00265">265</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac25db6d2b1e2a0f351b77ba3409ac4cd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 highp_i64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00269">269</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacb88796f2d08ef253d0345aff20c3aee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 highp_i8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00257">257</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5fde0fa4a3852a9dd5d637a92ee74718"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 highp_int16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00229">229</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacaea06d0a79ef3172e887a7a6ba434ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 highp_int16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00245">245</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga84ed04b4e0de18c977e932d617e7c223"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 highp_int32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00233">233</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2c71c8bd9e2fe7d2e93ca250d8b6157f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 highp_int32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00249">249</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga226a8d52b4e3f77aaa6231135e886aac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 highp_int64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00237">237</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga73c6abb280a45feeff60f9accaee91f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 highp_int64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00253">253</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad0549c902a96a7164e4ac858d5f39dbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 highp_int8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00225">225</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1085c50dd8fbeb5e7e609b1c127492a5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 highp_int8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00241">241</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8e62c883d13f47015f3b70ed88751369"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 highp_u16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00870">870</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7a6f1929464dcc680b16381a4ee5f2cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 highp_u32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00874">874</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c181fdf06a309691999926b6690c969"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 highp_u64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00878">878</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacd1259f3a9e8d2a9df5be2d74322ef9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 highp_u8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00866">866</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga746dc6da204f5622e395f492997dbf57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 highp_uint16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00838">838</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf54c3330ef60aa3d16cb676c7bcb8c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 highp_uint16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<p>High precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00854">854</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga256b12b650c3f2fb86878fd1c5db8bc3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 highp_uint32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00842">842</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae978599c9711ac263ba732d4ac225b0e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 highp_uint32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<p>High precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00858">858</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa38d732f5d4a7bc42a1b43b9d3c141ce"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 highp_uint64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00846">846</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa46172d7dc1c7ffe3e78107ff88adf08"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 highp_uint64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<p>High precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00862">862</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga97432f9979e73e66567361fd01e4cffb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 highp_uint8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00834">834</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac4e00a26a2adb5f2c0a7096810df29e5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 highp_uint8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<p>High precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00850">850</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ab5fe184343d394fb6c2723c3ee3699"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 i16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00318">318</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28f03a39ac56c70f9bf3ada11cb60e3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< i16, defaultp > i16vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer scalar type. </p>
-<p>16 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00473">473</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga110bec18ca44c41c76c3c9e4d7b5bd79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< i16, defaultp > i16vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer vector of 2 components type. </p>
-<p>16 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00477">477</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga973b226a9914db682c9372fc761fb535"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< i16, defaultp > i16vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer vector of 3 components type. </p>
-<p>16 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00481">481</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad73e5e905dcf2d8cab002b4ab46e9426"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< i16, defaultp > i16vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer vector of 4 components type. </p>
-<p>16 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00485">485</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga96faea43ac5f875d2d3ffbf8d213e3eb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 i32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00322">322</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4cca6bbd117c45f046291fc8e9d03765"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< i32, defaultp > i32vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer scalar type. </p>
-<p>32 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00552">552</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3c12cef4135603fd77d8fda85808730c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< i32, defaultp > i32vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer vector of 2 components type. </p>
-<p>32 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00556">556</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga40cd3f391c03512f158d10a70062264e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< i32, defaultp > i32vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer vector of 3 components type. </p>
-<p>32 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00560">560</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae3364a8090e7e1408056e00403dfecab"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< i32, defaultp > i32vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer vector of 4 components type. </p>
-<p>32 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00564">564</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gadb997e409103d4da18abd837e636a496"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 i64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00326">326</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5b4a3e499ee165efc0dc05add9c48235"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< i64, defaultp > i64vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer scalar type. </p>
-<p>64 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00711">711</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gade69872a31f066e5ae212f1af6008edb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< i64, defaultp > i64vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer vector of 2 components type. </p>
-<p>64 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00715">715</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9ece7c77c7bca7a6b824ef9c600f5e5e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< i64, defaultp > i64vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer vector of 3 components type. </p>
-<p>64 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00719">719</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9756e45c8f80329257f3cbdabc3bd73c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< i64, defaultp > i64vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer vector of 4 components type. </p>
-<p>64 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00723">723</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga302ec977b0c0c3ea245b6c9275495355"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 i8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00314">314</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab2329c5c14ff5a03b1ddec039e2c7409"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< i8, defaultp > i8vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer scalar type. </p>
-<p>8 bit signed integer scalar type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00393">393</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6414484477e4c1b4863cf91af8fd4185"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< i8, defaultp > i8vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer vector of 2 components type. </p>
-<p>8 bit signed integer vector of 2 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00397">397</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4b5993e794e252607f91535b62a7e0c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< i8, defaultp > i8vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer vector of 3 components type. </p>
-<p>8 bit signed integer vector of 3 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00401">401</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga50e58885aee2cf01bb3ba472c5b1697e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< i8, defaultp > i8vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer vector of 4 components type. </p>
-<p>8 bit signed integer vector of 4 components type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00405">405</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga302041c186d0d028bea31b711fe16759"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 int16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00227">227</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae8f5e3e964ca2ae240adc2c0d74adede"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 int16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00301">301</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8df669f4e7698dfe0c0354d92578d74f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 int32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00228">228</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga042ef09ff2f0cb24a36f541bcb3a3710"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 int32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00305">305</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaff5189f97f9e842d9636a0f240001b2e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 int64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00229">229</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga322a7d7d2c2c68994dc872a33de63c61"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 int64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00309">309</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga41c6189f6485c2825d60fdc835b3a2b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 int8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00226">226</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4bf09d8838a86866b39ee6e109341645"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 int8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00297">297</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga392b673fd10847bfb78fb808c6cf8ff7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 lowp_i16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00165">165</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ff73a45cea9613ebf1a9fad0b9f82ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 lowp_i32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00169">169</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga354736e0c645099cd44c42fb2f87c2b8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 lowp_i64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00173">173</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga552a6bde5e75984efb0f863278da2e54"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 lowp_i8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00161">161</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga698e36b01167fc0f037889334dce8def"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 lowp_int16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00133">133</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8b2cd8d31eb345b2d641d9261c38db1a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 lowp_int16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00149">149</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga864aabca5f3296e176e0c3ed9cc16b02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 lowp_int32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00137">137</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0350631d35ff800e6133ac6243b13cbc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 lowp_int32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00153">153</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf645b1a60203b39c0207baff5e3d8c3c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 lowp_int64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00141">141</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaebf341fc4a5be233f7dde962c2e33847"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 lowp_int64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00157">157</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga760bcf26fdb23a2c3ecad3c928a19ae6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 lowp_int8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00129">129</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga119c41d73fe9977358174eb3ac1035a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 lowp_int8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00145">145</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga504ce1631cb2ac02fcf1d44d8c2aa126"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 lowp_u16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00770">770</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4f072ada9552e1e480bbb3b1acde5250"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 lowp_u32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00774">774</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga30069d1f02b19599cbfadf98c23ac6ed"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 lowp_u64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00778">778</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1b09f03da7ac43055c68a349d5445083"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 lowp_u8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00766">766</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad68bfd9f881856fc863a6ebca0b67f78"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 lowp_uint16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00736">736</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91c4815f93177eb423362fd296a87e9f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 lowp_uint16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00753">753</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa6a5b461bbf5fe20982472aa51896d4b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 lowp_uint32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00740">740</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf1b735b4b1145174f4e4167d13778f9b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 lowp_uint32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00757">757</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa212b805736a759998e312cbdd550fae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 lowp_uint64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00744">744</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8dd3a3281ae5c970ffe0c41d538aa153"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 lowp_uint64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00761">761</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf49470869e9be2c059629b250619804e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 lowp_uint8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00732">732</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga667b2ece2b258be898812dc2177995d1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 lowp_uint8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00749">749</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga62a17cddeb4dffb4e18fe3aea23f051a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 mediump_i16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00213">213</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf5e94bf2a20af7601787c154751dc2e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 mediump_i32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00217">217</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ebcb1f6d8d8387253de8bccb058d77f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 mediump_i64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00221">221</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gacf1ded173e1e2d049c511d095b259e21"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 mediump_i8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00209">209</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gadff3608baa4b5bd3ed28f95c1c2c345d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 mediump_int16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00181">181</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga80e72fe94c88498537e8158ba7591c54"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int16 mediump_int16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00197">197</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5244cef85d6e870e240c76428a262ae8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 mediump_int32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00185">185</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga26fc7ced1ad7ca5024f1c973c8dc9180"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int32 mediump_int32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00201">201</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7b968f2b86a0442a89c7359171e1d866"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 mediump_int64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00189">189</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac3bc41bcac61d1ba8f02a6f68ce23f64"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int64 mediump_int64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00205">205</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6fbd69cbdaa44345bff923a2cf63de7e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 mediump_int8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00177">177</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga6d7b3789ecb932c26430009478cac7ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::int8 mediump_int8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00193">193</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9df98857be695d5a30cb30f5bfa38a80"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 mediump_u16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00820">820</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1bd0e914158bf03135f8a317de6debe9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 mediump_u32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00824">824</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2af9490085ae3bdf36a544e9dd073610"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 mediump_u64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00828">828</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad1213a22bbb9e4107f07eaa4956f8281"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_u8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00816">816</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2885a6c89916911e418c06bb76b9bdbb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 mediump_uint16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00788">788</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3963b1050fc65a383ee28e3f827b6e3e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 mediump_uint16_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00804">804</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga34dd5ec1988c443bae80f1b20a8ade5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 mediump_uint32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00792">792</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4dae276fd29623950de14a6ca2586b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 mediump_uint32_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00808">808</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga30652709815ad9404272a31957daa59e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 mediump_uint64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00796">796</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9b170dd4a8f38448a2dc93987c7875e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 mediump_uint64_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00812">812</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga1fa92a233b9110861cdbc8c2ccf0b5a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_uint8</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00784">784</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gadfe65c78231039e90507770db50c98c7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 mediump_uint8_t</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00800">800</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaa2d7acc0adb536fab71fe261232a40ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 u16</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00927">927</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaefa2ce8fbdbe89baffd262f46f2d5907"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< u16, defaultp > u16vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01082">1082</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga426030555085ed6c39a54e73afbef962"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< u16, defaultp > u16vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01086">1086</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga7f5dbe417199277e449b8db0210acb71"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< u16, defaultp > u16vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01090">1090</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf524c9059f0342668d8eea359bcceaae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< u16, defaultp > u16vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01094">1094</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8165913e068444f7842302d40ba897b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 u32</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00931">931</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga913a8bd51e4ebccd30ad488de3c18da9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec1< u32, defaultp > u32vec1</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01161">1161</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga0741d40e2b0fea4f1c50cb325114f075"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec2< u32, defaultp > u32vec2</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01165">1165</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gad9b52e1c271cb9c8bfae6365d3e38a23"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec3< u32, defaultp > u32vec3</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01169">1169</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga155ac7e9e454e2b1f73d11e1e28a0fd6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tvec4< u32, defaultp > u32vec4</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01173">1173</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaf3f312156984c365e9f65620354da70b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 u64</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00935">935</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga793c9293cc687a0e342396a377c5df77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1< u64, defaultp > u64vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01320">1320</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2204827de9d4ee7fa92ef497093f7d6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2< u64, defaultp > u64vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01324">1324</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3460933f040f59f0fedb29df1e9be71c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3< u64, defaultp > u64vec3</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01328">1328</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gafb6ca34df28889a5db9d244aed375411"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec4< u64, defaultp > u64vec4</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01332">1332</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaecc7082561fc9028b844b6cf3d305d36"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 u8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00923">923</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga92e0c191e5cc326255284d08be3af7c5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec1< u8, defaultp > u8vec1</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01002">1002</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga61667c99caf60ce6c48ebbbac72bd91d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec2< u8, defaultp > u8vec2</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< U, P > const & </td>
+ <td class="paramname"><em>d</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01006">1006</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8ca60d0ba6d438892be6017f43747661"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef tvec3< u8, defaultp > u8vec3</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Default precision 8 bit unsigned integer vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01010">1010</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga114e005014d910bea07954eee24b7efb"></a>
+<a class="anchor" id="ga00a949fd345f4b31b259f033d3ab4a1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4< u8, defaultp > u8vec4</td>
+ <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l01014">1014</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga13471cbbe74e4303a57f3743d007b74d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 uint16</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00232">232</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga91f91f411080c37730856ff5887f5bcf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint16 uint16_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>16 bit unsigned integer type. </p>
-<p>Default precision 16 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00910">910</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5fa3ddcab56c789bc272ff5651faa12d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 uint32</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>b</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00233">233</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga2171d9dc1fefb1c82e2817f45b622eac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint32 uint32_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>z</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit unsigned integer type. </p>
-<p>Default precision 32 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00914">914</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab630f76c26b50298187f7889104d4b9c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 uint64</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>c</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00234">234</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga3999d3e7ff22025c16ddb601e14dfdee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint64 uint64_t</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>w</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit unsigned integer type. </p>
-<p>Default precision 64 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00918">918</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga36475e31b1992cfde54c1a6f5a148865"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 uint8</td>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">U </td>
+ <td class="paramname"><em>d</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00119_source.html#l00231">231</a> of file <a class="el" href="a00119_source.html">type_int.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga28d97808322d3c92186e4a0c067d7e8e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">typedef detail::uint8 uint8_t</td>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>8 bit unsigned integer type. </p>
-<p>Default precision 8 bit unsigned integer type.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Defines specific C++-based precision types. ">GLM_GTC_type_precision</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00038_source.html#l00906">906</a> of file <a class="el" href="a00038_source.html">fwd.hpp</a>.</p>
+<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00181.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00182.html b/doc/api/a00182.html
index 93bc49c..7e0f449 100644
--- a/doc/api/a00182.html
+++ b/doc/api/a00182.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_type_ptr</title>
+<title>0.9.8: GLM_GTX_bit</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,398 +39,226 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_type_ptr<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_bit<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga52a16e333fef7e33ca740779482a8693"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga52a16e333fef7e33ca740779482a8693">make_mat2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga52a16e333fef7e33ca740779482a8693"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gadb29e510762e1042069cb28bf24ae990"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gadb29e510762e1042069cb28bf24ae990">make_mat2x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gadb29e510762e1042069cb28bf24ae990"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga37988c6dd941f617cdfab86d54375fc1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga37988c6dd941f617cdfab86d54375fc1">make_mat2x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga37988c6dd941f617cdfab86d54375fc1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga6dfb2ac10859b0cc8e3893ea84fa95b5">make_mat2x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga6dfb2ac10859b0cc8e3893ea84fa95b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac2bc10c519ffc8db9e24f325f23787ea">make_mat3</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac2bc10c519ffc8db9e24f325f23787ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gabe1e5066608a66da7a94f802b57b4eed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gabe1e5066608a66da7a94f802b57b4eed">make_mat3x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:gabe1e5066608a66da7a94f802b57b4eed"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga3cbe7adf857c867cee77eae4617abadd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3cbe7adf857c867cee77eae4617abadd">make_mat3x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga3cbe7adf857c867cee77eae4617abadd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gac083edd180ab4d4b817acc60c516209b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gac083edd180ab4d4b817acc60c516209b">make_mat3x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gac083edd180ab4d4b817acc60c516209b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2c6e6d457cb932e1ce683e4f690a6f60">make_mat4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga2c6e6d457cb932e1ce683e4f690a6f60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga967a5b934e67ff9a6d1d0d27a377a264">make_mat4x2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga967a5b934e67ff9a6d1d0d27a377a264"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga4d42daced532b33cc672280e48670a51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga4d42daced532b33cc672280e48670a51">make_mat4x3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga4d42daced532b33cc672280e48670a51"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf605a5f5e2ff594e8d404b2855b09541">make_mat4x4</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaf605a5f5e2ff594e8d404b2855b09541"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaadafb6600af2633e4c98cc64c72f5269"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaadafb6600af2633e4c98cc64c72f5269">make_quat</a> (T const *const ptr)</td></tr>
-<tr class="separator:gaadafb6600af2633e4c98cc64c72f5269"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga5f7393c30970c5949be13ceb525093a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f7393c30970c5949be13ceb525093a6">make_vec2</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga5f7393c30970c5949be13ceb525093a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga86f4bc63570db86346db2e567fb760f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga86f4bc63570db86346db2e567fb760f6">make_vec3</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga86f4bc63570db86346db2e567fb760f6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga152345176b8951c15711f6ed4f6fc237"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga152345176b8951c15711f6ed4f6fc237">make_vec4</a> (T const *const ptr)</td></tr>
-<tr class="separator:ga152345176b8951c15711f6ed4f6fc237"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type const * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">value_ptr</a> (genType const &vec)</td></tr>
-<tr class="separator:gaf019636bb8bd7c9efb7c7ce3bb23bcfc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
+<tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
+<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
+<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
+<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
+<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00182.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType< T, P > const &value)</td></tr>
+<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Handles the interaction between pointers and vector, matrix types. </p>
-<p>This extension defines an overloaded function, glm::value_ptr, which takes any of the <a class="el" href="a00165.html">core template types</a>. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.</p>
-<p>This is useful for uploading data to matrices or copying data to buffer objects.</p>
-<p>Example: </p><div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="a00040.html">glm/glm.hpp</a>></span></div>
-<div class="line"><span class="preprocessor">#include <<a class="code" href="a00131.html">glm/gtc/type_ptr.hpp</a>></span></div>
-<div class="line"></div>
-<div class="line"><a class="code" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">glm::vec3</a> aVector(3);</div>
-<div class="line"><a class="code" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">glm::mat4</a> someMatrix(1.0);</div>
-<div class="line"></div>
-<div class="line">glUniform3fv(uniformLoc, 1, <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(aVector));</div>
-<div class="line">glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, <a class="code" href="a00182.html#gaf019636bb8bd7c9efb7c7ce3bb23bcfc">glm::value_ptr</a>(someMatrix));</div>
-</div><!-- fragment --><p><<a class="el" href="a00131.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/type_ptr.hpp</a>> need to be included to use these functionalities. </p>
+<p>Allow to perform bit operations on integer values. </p>
+<p><<a class="el" href="a00008.html" title="GLM_GTX_bit ">glm/gtx/bit.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga52a16e333fef7e33ca740779482a8693"></a>
+<a class="anchor" id="ga0dcc8fe7c3d3ad60dea409281efa3d05"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2 </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::highestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadb29e510762e1042069cb28bf24ae990"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::make_mat2x2 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga37988c6dd941f617cdfab86d54375fc1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x3<T, defaultp> glm::make_mat2x3 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6dfb2ac10859b0cc8e3893ea84fa95b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4<T, defaultp> glm::make_mat2x4 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac2bc10c519ffc8db9e24f325f23787ea"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabe1e5066608a66da7a94f802b57b4eed"></a>
+<a class="anchor" id="ga5eea3a4d429040af13d39a7d7cd84d73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x2<T, defaultp> glm::make_mat3x2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::highestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Find the highest bit set to 1 in a integer variable and return its value. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga3cbe7adf857c867cee77eae4617abadd"></a>
+<a class="anchor" id="ga2ff6568089f3a9b67f5c30918855fc6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::make_mat3x3 </td>
+ <td class="memname">GLM_FUNC_DECL genIUType glm::lowestBitValue </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac083edd180ab4d4b817acc60c516209b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4<T, defaultp> glm::make_mat3x4 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c6e6d457cb932e1ce683e4f690a6f60"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga967a5b934e67ff9a6d1d0d27a377a264"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x2<T, defaultp> glm::make_mat4x2 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4d42daced532b33cc672280e48670a51"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x3<T, defaultp> glm::make_mat4x3 </td>
- <td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf605a5f5e2ff594e8d404b2855b09541"></a>
+<a class="anchor" id="ga8cda2459871f574a0aecbe702ac93291"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::make_mat4x4 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just higher the input value. </p>
+<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaadafb6600af2633e4c98cc64c72f5269"></a>
+<a class="anchor" id="gafe08808a50226b75b50e640a08b32ddc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, defaultp> glm::make_quat </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoAbove </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a quaternion from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just higher the input value. </p>
+<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5f7393c30970c5949be13ceb525093a6"></a>
+<a class="anchor" id="ga3de7df63c589325101a2817a56f8e29d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec2<T, defaultp> glm::make_vec2 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just lower the input value. </p>
+<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga86f4bc63570db86346db2e567fb760f6"></a>
+<a class="anchor" id="gae33bb1ca2b55846b23a0f0796a679195"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, defaultp> glm::make_vec3 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoBelow </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is just lower the input value. </p>
+<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga152345176b8951c15711f6ed4f6fc237"></a>
+<a class="anchor" id="ga5f65973a5d2ea38c719e6a663149ead9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, defaultp> glm::make_vec4 </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest </td>
<td>(</td>
- <td class="paramtype">T const *const </td>
- <td class="paramname"><em>ptr</em></td><td>)</td>
+ <td class="paramtype">genIUType </td>
+ <td class="paramname"><em>Value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a vector from a pointer. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf019636bb8bd7c9efb7c7ce3bb23bcfc"></a>
+<a class="anchor" id="ga2d7e85995d097518b8d70cd409bda39e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type const* glm::value_ptr </td>
+ <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoNearest </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vec</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the constant address to the data of the input parameter. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00182.html" title="Handles the interaction between pointers and vector, matrix types. ">GLM_GTC_type_ptr</a> </dd></dl>
+<p>Return the power of two number which value is the closet to the input value. </p>
+<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00175.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<dd>
+<a class="el" href="a00182.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00183.html b/doc/api/a00183.html
index 20f343b..de98d65 100644
--- a/doc/api/a00183.html
+++ b/doc/api/a00183.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_ulp</title>
+<title>0.9.8: GLM_GTX_closest_point</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,175 +39,45 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_ulp<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_closest_point<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2e09bd6c8b0a9c91f6f5683d68245634">float_distance</a> (T const &x, T const &y)</td></tr>
-<tr class="separator:ga2e09bd6c8b0a9c91f6f5683d68245634"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class vecType> </td></tr>
-<tr class="memitem:ga85355f2549d75789eb66e5d565d8ad26"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< uint > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga85355f2549d75789eb66e5d565d8ad26">float_distance</a> (vecType< T > const &x, vecType< T > const &y)</td></tr>
-<tr class="separator:ga85355f2549d75789eb66e5d565d8ad26"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae516ae554faa6117660828240e8bdaf0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gae516ae554faa6117660828240e8bdaf0">next_float</a> (genType const &x)</td></tr>
-<tr class="separator:gae516ae554faa6117660828240e8bdaf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad107ec3d9697ef82032a33338a73ebdd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gad107ec3d9697ef82032a33338a73ebdd">next_float</a> (genType const &x, uint const &Distance)</td></tr>
-<tr class="separator:gad107ec3d9697ef82032a33338a73ebdd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#ga2fcbb7bfbfc595712bfddc51b0715b07">prev_float</a> (genType const &x)</td></tr>
-<tr class="separator:ga2fcbb7bfbfc595712bfddc51b0715b07"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gaa399d5b6472a70e8952f9b26ecaacdec">prev_float</a> (genType const &x, uint const &Distance)</td></tr>
-<tr class="separator:gaa399d5b6472a70e8952f9b26ecaacdec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)</td></tr>
+<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00183.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</td></tr>
+<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow the measurement of the accuracy of a function against a reference implementation. </p>
-<p>This extension works on floating-point data and provide results in ULP. <<a class="el" href="a00137.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/ulp.hpp</a>> need to be included to use these features. </p>
+<p>Find the point on a straight line which is the closet of a point. </p>
+<p><<a class="el" href="a00010.html" title="GLM_GTX_closest_point ">glm/gtx/closest_point.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2e09bd6c8b0a9c91f6f5683d68245634"></a>
+<a class="anchor" id="gac26353282a8213e469f5e33560c1200f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::float_distance </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::closestPointOnLine </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>point</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the distance in the number of ULP between 2 scalars. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga85355f2549d75789eb66e5d565d8ad26"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<uint> glm::float_distance </td>
- <td>(</td>
- <td class="paramtype">vecType< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the distance in the number of ULP between 2 vectors. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae516ae554faa6117660828240e8bdaf0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the next ULP value(s) after the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad107ec3d9697ef82032a33338a73ebdd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::next_float </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
- <td class="paramname"><em>Distance</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the value(s) ULP distance after the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2fcbb7bfbfc595712bfddc51b0715b07"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the previous ULP value(s) before the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa399d5b6472a70e8952f9b26ecaacdec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::prev_float </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> const & </td>
- <td class="paramname"><em>Distance</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>b</em> </td>
</tr>
<tr>
<td></td>
@@ -217,8 +87,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the value(s) ULP distance before the input value(s). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Allow the measurement of the accuracy of a function against a reference implementation. ">GLM_GTC_ulp</a> </dd></dl>
+<p>Find the point on a straight line which is the closet of a point. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00183.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00184.html b/doc/api/a00184.html
index ebb626e..eccf295 100644
--- a/doc/api/a00184.html
+++ b/doc/api/a00184.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTC_vec1</title>
+<title>0.9.8: GLM_GTX_color_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,172 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTC_vec1<div class="ingroups"><a class="el" href="a00160.html">GTC Extensions (Stable)</a></div></div> </div>
+<div class="title">GLM_GTX_color_space<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Add vec1, ivec1, uvec1 and bvec1 types. </p>
-<p><<a class="el" href="a00138.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtc/vec1.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3< T, P > const &rgbValue)</td></tr>
+<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3< T, P > const &color)</td></tr>
+<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3< T, P > const &hsvValue)</td></tr>
+<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
+<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3< T, P > const &color)</td></tr>
+<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00184.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4< T, P > const &color)</td></tr>
+<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Related to RGB to HSV conversions and operations. </p>
+<p><<a class="el" href="a00012.html" title="GLM_GTX_color_space ">glm/gtx/color_space.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gae72039c00a7be2f03a3b94b37a54349a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::hsvColor </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>rgbValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a color from RGB color space to its color in HSV color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa2f38a5100c3e1c7d39920df43bd8cbe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::luminosity </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>color</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga36b0619e31daf57bc4a54dac2dcf34b7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgbColor </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>hsvValue</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a color from HSV color space to its color in RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafecfb15d58da8445103745af3348e516"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const </td>
+ <td class="paramname"><em>s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a saturation matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga632ee8dadb44e90a05885f6f8c07d46c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const </td>
+ <td class="paramname"><em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>color</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modify the saturation of a color. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2033e0566c595230714af396744e8a61"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::saturation </td>
+ <td>(</td>
+ <td class="paramtype">T const </td>
+ <td class="paramname"><em>s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>color</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Modify the saturation of a color. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00184.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00185.html b/doc/api/a00185.html
index e5752d1..663536c 100644
--- a/doc/api/a00185.html
+++ b/doc/api/a00185.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_associated_min_max</title>
+<title>0.9.8: GLM_GTX_color_space_YCoCg</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,1246 +39,106 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_associated_min_max<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_color_space_YCoCg<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
-<tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga10ba6001798f42a0f941f19ff30e066a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga10ba6001798f42a0f941f19ff30e066a">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
-<tr class="separator:ga10ba6001798f42a0f941f19ff30e066a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga62ca63cca6b21387b8a25474f441a869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga62ca63cca6b21387b8a25474f441a869">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b)</td></tr>
-<tr class="separator:ga62ca63cca6b21387b8a25474f441a869"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5364520173815b66a9d9e452c38bf312"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5364520173815b66a9d9e452c38bf312">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
-<tr class="separator:ga5364520173815b66a9d9e452c38bf312"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
-<tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga065a0c1eb7837118ef79be88dfd78487"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga065a0c1eb7837118ef79be88dfd78487">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
-<tr class="separator:ga065a0c1eb7837118ef79be88dfd78487"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga553431a468e251623408603bcb51c9cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga553431a468e251623408603bcb51c9cb">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c)</td></tr>
-<tr class="separator:ga553431a468e251623408603bcb51c9cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga327136e6a568569c03a056f90814b656"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga327136e6a568569c03a056f90814b656">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c)</td></tr>
-<tr class="separator:ga327136e6a568569c03a056f90814b656"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
-<tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gaf607886421c35cd7e4f41a50d7c330e3">associatedMax</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
-<tr class="separator:gaf607886421c35cd7e4f41a50d7c330e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga7a165de1af9a3f9193516a3b47407086"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga7a165de1af9a3f9193516a3b47407086">associatedMax</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
-<tr class="separator:ga7a165de1af9a3f9193516a3b47407086"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga3122fbe8133ea54749b10fb93e8a167e">associatedMax</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
-<tr class="separator:ga3122fbe8133ea54749b10fb93e8a167e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P> </td></tr>
-<tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
-<tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga8b538d10872626668a078e2bd495af25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga8b538d10872626668a078e2bd495af25">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b)</td></tr>
-<tr class="separator:ga8b538d10872626668a078e2bd495af25"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1dccff48fa5650c746533de83467da6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga1dccff48fa5650c746533de83467da6e">associatedMin</a> (T x, const vecType< U, P > &a, T y, const vecType< U, P > &b)</td></tr>
-<tr class="separator:ga1dccff48fa5650c746533de83467da6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga076717f4e07c6ae725cc1382d1ac4869">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b)</td></tr>
-<tr class="separator:ga076717f4e07c6ae725cc1382d1ac4869"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
-<tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga5bc6b9acbf9e060d58a342fbe3b73d43">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
-<tr class="separator:ga5bc6b9acbf9e060d58a342fbe3b73d43"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template<typename T , typename U > </td></tr>
-<tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
-<tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga88e031f22b80215505928900d3dde549"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga88e031f22b80215505928900d3dde549">associatedMin</a> (vecType< T, P > const &x, vecType< U, P > const &a, vecType< T, P > const &y, vecType< U, P > const &b, vecType< T, P > const &z, vecType< U, P > [...]
-<tr class="separator:ga88e031f22b80215505928900d3dde549"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga0f63b0dce5a5c3242cc6d9847e7d14f1">associatedMin</a> (T x, vecType< U, P > const &a, T y, vecType< U, P > const &b, T z, vecType< U, P > const &c, T w, vecType< U, P > const &d)</td></tr>
-<tr class="separator:ga0f63b0dce5a5c3242cc6d9847e7d14f1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplParams" colspan="2">template<typename T , typename U , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< U, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga00a949fd345f4b31b259f033d3ab4a1c">associatedMin</a> (vecType< T, P > const &x, U a, vecType< T, P > const &y, U b, vecType< T, P > const &z, U c, vecType< T, P > const &w, U d)</td></tr>
-<tr class="separator:ga00a949fd345f4b31b259f033d3ab4a1c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3< T, P > const &rgbColor)</td></tr>
+<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00185.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
+<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Min and max functions that return associated values not the compared onces. </p>
-<p><<a class="el" href="a00007.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/associated_min_max.hpp</a>> need to be included to use these functionalities. </p>
+<p>RGB to YCoCg conversions and operations. </p>
+<p><<a class="el" href="a00013.html" title="GLM_GTX_color_space_YCoCg ">glm/gtx/color_space_YCoCg.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7d9c8785230c8db60f72ec8975f1ba45"></a>
+<a class="anchor" id="ga19481f6947c5b5482debd41e71b8c941"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCg </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga10ba6001798f42a0f941f19ff30e066a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga62ca63cca6b21387b8a25474f441a869"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5364520173815b66a9d9e452c38bf312"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaec891e363d91abbf3a4443cf2f652209"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga065a0c1eb7837118ef79be88dfd78487"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga553431a468e251623408603bcb51c9cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga327136e6a568569c03a056f90814b656"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3038ffcb43eaa6af75897a99a5047ccc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf607886421c35cd7e4f41a50d7c330e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a165de1af9a3f9193516a3b47407086"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3122fbe8133ea54749b10fb93e8a167e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMax </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Maximum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacc01bd272359572fc28437ae214a02df"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b538d10872626668a078e2bd495af25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2<U, P> glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1dccff48fa5650c746533de83467da6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const vecType< U, P > & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const vecType< U, P > & </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga076717f4e07c6ae725cc1382d1ac4869"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 2 variables and returns 2 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad0aa8f86259a26d839d34a3577a923fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5bc6b9acbf9e060d58a342fbe3b73d43"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Minimum comparison between 3 variables and returns 3 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga432224ebe2085eaa2b63a077ecbbbff6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL U glm::associatedMin </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>rgbColor</em></td><td>)</td>
<td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from RGB color space to YCoCg color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga88e031f22b80215505928900d3dde549"></a>
+<a class="anchor" id="ga2e534594cc8ad252d23b14fb363ae9e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCgR </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>rgbColor</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from RGB color space to YCoCgR color space. </p>
+<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
+<dd>
+<a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0f63b0dce5a5c3242cc6d9847e7d14f1"></a>
+<a class="anchor" id="ga6d7e988a79b299ca1fa59f537e13800b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::YCoCg2rgb </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
<td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< U, P > const & </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from YCoCg color space to RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga00a949fd345f4b31b259f033d3ab4a1c"></a>
+<a class="anchor" id="ga4bac5462c00df0ae89242ecdbbe5dbad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<U, P> glm::associatedMin </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::YCoCgR2rgb </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>c</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>w</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">U </td>
- <td class="paramname"><em>d</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Minimum comparison between 4 variables and returns 4 associated variable values. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00185.html" title="Min and max functions that return associated values not the compared onces. ">GLM_GTX_associated_min_max</a> </dd></dl>
+<p>Convert a color from YCoCgR color space to RGB color space. </p>
+<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
+<dd>
+<a class="el" href="a00185.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00186.html b/doc/api/a00186.html
index 8ea8b72..3ad0060 100644
--- a/doc/api/a00186.html
+++ b/doc/api/a00186.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_bit</title>
+<title>0.9.8: GLM_GTX_common</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,206 +39,70 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_bit<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_common<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
-<tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5eea3a4d429040af13d39a7d7cd84d73">highestBitValue</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga5eea3a4d429040af13d39a7d7cd84d73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
-<tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gafe08808a50226b75b50e640a08b32ddc"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gafe08808a50226b75b50e640a08b32ddc">powerOfTwoAbove</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gafe08808a50226b75b50e640a08b32ddc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
-<tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae33bb1ca2b55846b23a0f0796a679195"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#gae33bb1ca2b55846b23a0f0796a679195">powerOfTwoBelow</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:gae33bb1ca2b55846b23a0f0796a679195"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template<typename genIUType > </td></tr>
-<tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
-<tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2d7e85995d097518b8d70cd409bda39e"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2d7e85995d097518b8d70cd409bda39e">powerOfTwoNearest</a> (vecType< T, P > const &value)</td></tr>
-<tr class="separator:ga2d7e85995d097518b8d70cd409bda39e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00186.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &x)</td></tr>
+<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allow to perform bit operations on integer values. </p>
-<p><<a class="el" href="a00008.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/bit.hpp</a>> need to be included to use these functionalities. </p>
+<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
+<p><<a class="el" href="a00015.html" title="GLM_GTX_common ">glm/gtx/common.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga0dcc8fe7c3d3ad60dea409281efa3d05"></a>
+<a class="anchor" id="ga2580f50d4064557d62f4a533dfc6c7e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genIUType glm::highestBitValue </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5eea3a4d429040af13d39a7d7cd84d73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::highestBitValue </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Find the highest bit set to 1 in a integer variable and return its value. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8cda2459871f574a0aecbe702ac93291"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value. </p>
-<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafe08808a50226b75b50e640a08b32ddc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoAbove </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just higher the input value. </p>
-<p>Deprecated, use ceilPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3de7df63c589325101a2817a56f8e29d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow </td>
- <td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is just lower the input value. </p>
-<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae33bb1ca2b55846b23a0f0796a679195"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoBelow </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fmod </td>
<td>(</td>
<td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the power of two number which value is just lower the input value. </p>
-<p>Deprecated, use floorPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<p>Similar to 'mod' but with a different rounding and integer support. </p>
+<p>Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'</p>
+<dl class="section see"><dt>See also</dt><dd><a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a> </dd>
<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
+<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5f65973a5d2ea38c719e6a663149ead9"></a>
+<a class="anchor" id="ga74aa7c7462245d83bd5a9edf9c6c2d91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest </td>
+ <td class="memname">GLM_FUNC_DECL genType::bool_type glm::isdenormal </td>
<td>(</td>
- <td class="paramtype">genIUType </td>
- <td class="paramname"><em>Value</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the power of two number which value is the closet to the input value. </p>
-<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
-<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2d7e85995d097518b8d70cd409bda39e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_DEPRECATED GLM_FUNC_DECL vecType<T, P> glm::powerOfTwoNearest </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>value</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Return the power of two number which value is the closet to the input value. </p>
-<p>Deprecated, use roundPowerOfTwo from GTC_round instead</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00180.html" title="rounding value to specific boundings ">GLM_GTC_round</a> </dd>
+<p>Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. </p>
+<p>This format is less precise but can represent values closer to zero.</p>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
<dd>
-<a class="el" href="a00186.html" title="Allow to perform bit operations on integer values. ">GLM_GTX_bit</a> </dd></dl>
+<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00187.html b/doc/api/a00187.html
index 10b9ff2..79fc4b6 100644
--- a/doc/api/a00187.html
+++ b/doc/api/a00187.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_closest_point</title>
+<title>0.9.8: GLM_GTX_compatibility</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,61 +37,270 @@
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_closest_point<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_compatibility<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
+<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
+typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
+<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
+typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
+<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
+typedef tmat2x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
+<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
+typedef tmat2x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
+<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
+typedef tmat2x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
+<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
+typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
+<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
+typedef tmat3x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
+<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
+typedef tmat3x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
+<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
+typedef tmat3x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
+<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
+typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
+<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
+typedef tmat4x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
+<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
+typedef tmat4x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
+<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
+typedef tmat4x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
+<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
+<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
+typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
+<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
+typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
+<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
+typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
+<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
+typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
+<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
+typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
+<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
+typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
+<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
+typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
+<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
+typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
+<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
+typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
+<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
+typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
+<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
+typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
+<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
+typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
+<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
+typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
+<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
+<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
+typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
+<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
+typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
+<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
+typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
+<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
+typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
+<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
+typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
+<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
+typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
+<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
+typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
+<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
+typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
+<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
+typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
+<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
+typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
+<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
+typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
+<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
+typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
+<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
+typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
+<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
+<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
+<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
+typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
+<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
+typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
+<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
+typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
+<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
+typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
+<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
+typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
+<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
+typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
+<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
+typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
+<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
+typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
+<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
+typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
+<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
+typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
+<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
+typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
+<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
+typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00187.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
+<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac26353282a8213e469f5e33560c1200f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac26353282a8213e469f5e33560c1200f">closestPointOnLine</a> (tvec3< T, P > const &point, tvec3< T, P > const &a, tvec3< T, P > const &b)</td></tr>
-<tr class="separator:gac26353282a8213e469f5e33560c1200f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplParams" colspan="2"><a class="anchor" id="gadc7010070bb0cacd284f560299b21660"></a>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
template<typename T , precision P> </td></tr>
-<tr class="memitem:gadc7010070bb0cacd284f560299b21660"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gadc7010070bb0cacd284f560299b21660">closestPointOnLine</a> (tvec2< T, P > const &point, tvec2< T, P > const &a, tvec2< T, P > const &b)</td></tr>
-<tr class="separator:gadc7010070bb0cacd284f560299b21660"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
+<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2< T, P > &x, const tvec2< T, P > &y)</td></tr>
+<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3< T, P > &x, const tvec3< T, P > &y)</td></tr>
+<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4< T, P > &x, const tvec4< T, P > &y)</td></tr>
+<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
+template<typename genType > </td></tr>
+<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &x)</td></tr>
+<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1< T, P > &x)</td></tr>
+<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
+template<typename T > </td></tr>
+<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
+<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)</td></tr>
+<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)</td></tr>
+<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)</td></tr>
+<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)</td></tr>
+<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)</td></tr>
+<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</td></tr>
+<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
+<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2< T, P > &x)</td></tr>
+<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3< T, P > &x)</td></tr>
+<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00187.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4< T, P > &x)</td></tr>
+<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Find the point on a straight line which is the closet of a point. </p>
-<p><<a class="el" href="a00010.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/closest_point.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gac26353282a8213e469f5e33560c1200f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::closestPointOnLine </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>point</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>b</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Find the point on a straight line which is the closet of a point. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00187.html" title="Find the point on a straight line which is the closet of a point. ">GLM_GTX_closest_point</a> </dd></dl>
-
-</div>
-</div>
+<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
+<p><<a class="el" href="a00016.html" title="GLM_GTX_compatibility ">glm/gtx/compatibility.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00188.html b/doc/api/a00188.html
index 3f8ae78..b778768 100644
--- a/doc/api/a00188.html
+++ b/doc/api/a00188.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_color_space</title>
+<title>0.9.8: GLM_GTX_component_wise</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,166 +39,146 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_color_space<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_component_wise<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae72039c00a7be2f03a3b94b37a54349a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae72039c00a7be2f03a3b94b37a54349a">hsvColor</a> (tvec3< T, P > const &rgbValue)</td></tr>
-<tr class="separator:gae72039c00a7be2f03a3b94b37a54349a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaa2f38a5100c3e1c7d39920df43bd8cbe">luminosity</a> (tvec3< T, P > const &color)</td></tr>
-<tr class="separator:gaa2f38a5100c3e1c7d39920df43bd8cbe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga36b0619e31daf57bc4a54dac2dcf34b7">rgbColor</a> (tvec3< T, P > const &hsvValue)</td></tr>
-<tr class="separator:ga36b0619e31daf57bc4a54dac2dcf34b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gafecfb15d58da8445103745af3348e516"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gafecfb15d58da8445103745af3348e516">saturation</a> (T const s)</td></tr>
-<tr class="separator:gafecfb15d58da8445103745af3348e516"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga632ee8dadb44e90a05885f6f8c07d46c">saturation</a> (T const s, tvec3< T, P > const &color)</td></tr>
-<tr class="separator:ga632ee8dadb44e90a05885f6f8c07d46c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2033e0566c595230714af396744e8a61"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#ga2033e0566c595230714af396744e8a61">saturation</a> (T const s, tvec4< T, P > const &color)</td></tr>
-<tr class="separator:ga2033e0566c595230714af396744e8a61"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &v)</td></tr>
+<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &v)</td></tr>
+<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &v)</td></tr>
+<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &v)</td></tr>
+<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplParams" colspan="2">template<typename floatType , typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< floatType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaeb34fdf090d2d4da9babcdfec267f09e">compNormalize</a> (vecType< T, P > const &v)</td></tr>
+<tr class="separator:gaeb34fdf090d2d4da9babcdfec267f09e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplParams" colspan="2">template<typename T , typename floatType , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaea99a3271016bfd331d9fa7587f3db37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00188.html#gaea99a3271016bfd331d9fa7587f3db37">compScale</a> (vecType< floatType, P > const &v)</td></tr>
+<tr class="separator:gaea99a3271016bfd331d9fa7587f3db37"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Related to RGB to HSV conversions and operations. </p>
-<p><<a class="el" href="a00012.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/color_space.hpp</a>> need to be included to use these functionalities. </p>
+<p>Operations between components of a type. </p>
+<p><<a class="el" href="a00017.html" title="GLM_GTX_component_wise ">glm/gtx/component_wise.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gae72039c00a7be2f03a3b94b37a54349a"></a>
+<a class="anchor" id="gaf71833350e15e74d31cbf8a3e7f27051"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::hsvColor </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compAdd </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>rgbValue</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a color from RGB color space to its color in HSV color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Add all vector components together. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa2f38a5100c3e1c7d39920df43bd8cbe"></a>
+<a class="anchor" id="gabfa4bb19298c8c73d4217ba759c496b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::luminosity </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMax </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>color</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Find the maximum value between single vector components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga36b0619e31daf57bc4a54dac2dcf34b7"></a>
+<a class="anchor" id="gab5d0832b5c7bb01b8d7395973bfb1425"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgbColor </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMin </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>hsvValue</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a color from HSV color space to its color in RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Find the minimum value between single vector components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gafecfb15d58da8445103745af3348e516"></a>
+<a class="anchor" id="gae8ab88024197202c9479d33bdc5a8a5d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMul </td>
<td>(</td>
- <td class="paramtype">T const </td>
- <td class="paramname"><em>s</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a saturation matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Multiply all vector components together. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga632ee8dadb44e90a05885f6f8c07d46c"></a>
+<a class="anchor" id="gaeb34fdf090d2d4da9babcdfec267f09e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL vecType<floatType, P> glm::compNormalize </td>
<td>(</td>
- <td class="paramtype">T const </td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>color</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modify the saturation of a color. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Convert an integer vector to a normalized float vector. </p>
+<p>If the parameter value type is already a floating precision type, the value is passed through. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2033e0566c595230714af396744e8a61"></a>
+<a class="anchor" id="gaea99a3271016bfd331d9fa7587f3db37"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::saturation </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::compScale </td>
<td>(</td>
- <td class="paramtype">T const </td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>color</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">vecType< floatType, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Modify the saturation of a color. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Related to RGB to HSV conversions and operations. ">GLM_GTX_color_space</a> </dd></dl>
+<p>Convert a normalized float vector to an integer vector. </p>
+<p>If the parameter value type is already a floating precision type, the value is passed through. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00188.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00189.html b/doc/api/a00189.html
index f272d45..e8f9405 100644
--- a/doc/api/a00189.html
+++ b/doc/api/a00189.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_color_space_YCoCg</title>
+<title>0.9.8: GLM_GTX_dual_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,108 +37,419 @@
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_color_space_YCoCg<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_dual_quaternion<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
+<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
+<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
+<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
+<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
+<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
+<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
+<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
+<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
+<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
+<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
+<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00189.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
+<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga19481f6947c5b5482debd41e71b8c941"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga19481f6947c5b5482debd41e71b8c941">rgb2YCoCg</a> (tvec3< T, P > const &rgbColor)</td></tr>
-<tr class="separator:ga19481f6947c5b5482debd41e71b8c941"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2e534594cc8ad252d23b14fb363ae9e2">rgb2YCoCgR</a> (tvec3< T, P > const &rgbColor)</td></tr>
-<tr class="separator:ga2e534594cc8ad252d23b14fb363ae9e2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga6d7e988a79b299ca1fa59f537e13800b">YCoCg2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
-<tr class="separator:ga6d7e988a79b299ca1fa59f537e13800b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga4bac5462c00df0ae89242ecdbbe5dbad">YCoCgR2rgb</a> (tvec3< T, P > const &YCoCgColor)</td></tr>
-<tr class="separator:ga4bac5462c00df0ae89242ecdbbe5dbad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4< T, P > const &x)</td></tr>
+<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4< T, P > const &x)</td></tr>
+<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
+<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00189.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat< T, P > const &q)</td></tr>
+<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>RGB to YCoCg conversions and operations. </p>
-<p><<a class="el" href="a00013.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/color_space_YCoCg.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defines a templated dual-quaternion type and several dual-quaternion operations. </p>
+<p><<a class="el" href="a00019.html" title="GLM_GTX_dual_quaternion ">glm/gtx/dual_quaternion.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga3d71f98d84ba59dfe4e369fde4714cd6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_ddualquat ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of default double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00252">252</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gae93abee0c979902fbec6a7bee0f6fae1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_fdualquat dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00228">228</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga237c2b9b42c9a930e49de5840ae0f930"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef highp_fdualquat fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00233">233</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga8f67eafa7197d7a668dad5105a463d2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<double, highp> highp_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00221">221</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga9ef5bf1da52a9d4932335a517086ceaf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, highp> highp_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00189">189</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4c4e55e9c99dc57b299ed590968da564"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, highp> highp_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of high single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00205">205</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gab4c5103338af3dac7e0fbc86895a3f1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<double, lowp> lowp_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00211">211</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gade05d29ebd4deea0f883d0e1bb4169aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, lowp> lowp_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00179">179</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa38f671be25a7f3b136a452a8bb42860"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, lowp> lowp_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of low single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00195">195</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga0fb11e48e2d16348ccb06a25213641b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<double, mediump> mediump_ddualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium double-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00216">216</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7aeb54c167712b38f2178a1be2360ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, mediump> mediump_dualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00184">184</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga4a6b594ff7e81150d8143001367a9431"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tdualquat<float, mediump> mediump_fdualquat</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00019_source.html#l00200">200</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+
+</div>
+</div>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga19481f6947c5b5482debd41e71b8c941"></a>
+<a class="anchor" id="gada9799afe2b62394dc498534beb5bc78"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCg </td>
+ <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>rgbColor</em></td><td>)</td>
+ <td class="paramtype">tmat2x4< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga20eb5758beb73cc6dbc2d9104f03ec20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x4< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2149d3cb8af04d9530de0cd16aa1aab2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::inverse </td>
+ <td>(</td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the q inverse. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8039b88397ca09275be924a26a806a59"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::lerp </td>
+ <td>(</td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>a</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from RGB color space to YCoCg color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Returns the linear interpolation of two dual quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd>gtc_dual_quaternion </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2e534594cc8ad252d23b14fb363ae9e2"></a>
+<a class="anchor" id="ga2d124748183e12db8288eeaca350298e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rgb2YCoCgR </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x4<T, P> glm::mat2x4_cast </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>rgbColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from RGB color space to YCoCgR color space. </p>
-<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
-<dd>
-<a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Converts a quaternion to a 2 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6d7e988a79b299ca1fa59f537e13800b"></a>
+<a class="anchor" id="ga576745d979e3c079a64152490c816954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::YCoCg2rgb </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x4<T, P> glm::mat3x4_cast </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from YCoCg color space to RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Converts a quaternion to a 3 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4bac5462c00df0ae89242ecdbbe5dbad"></a>
+<a class="anchor" id="ga495818aa48c23e9e730f87a3c337d1d5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::YCoCgR2rgb </td>
+ <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::normalize </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>YCoCgColor</em></td><td>)</td>
+ <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert a color from YCoCgR color space to RGB color space. </p>
-<dl class="section see"><dt>See also</dt><dd>"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" </dd>
-<dd>
-<a class="el" href="a00189.html" title="RGB to YCoCg conversions and operations. ">GLM_GTX_color_space_YCoCg</a> </dd></dl>
+<p>Returns the normalized quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00189.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00190.html b/doc/api/a00190.html
index b5506b1..9d3173f 100644
--- a/doc/api/a00190.html
+++ b/doc/api/a00190.html
@@ -1,117 +1,565 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_common</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_common<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga2580f50d4064557d62f4a533dfc6c7e3">fmod</a> (vecType< T, P > const &v)</td></tr>
-<tr class="separator:ga2580f50d4064557d62f4a533dfc6c7e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &x)</td></tr>
-<tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
-<p><<a class="el" href="a00015.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/common.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2580f50d4064557d62f4a533dfc6c7e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fmod </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Similiar to 'mod' but with a different rounding and integer support. </p>
-<p>Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'</p>
-<dl class="section see"><dt>See also</dt><dd><a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a> </dd>
-<dd>
-<a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/mod.xml">GLSL mod man page</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga74aa7c7462245d83bd5a9edf9c6c2d91"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType::bool_type glm::isdenormal </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. </p>
-<p>This format is less precise but can represent values closer to zero.</p>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">genType</td><td>Floating-point scalar or vector types.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/isnan.xml">GLSL isnan man page</a> </dd>
-<dd>
-<a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: GLM_GTX_euler_angles</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">GLM_GTX_euler_angles<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &angleX)</td></tr>
+<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &angleX, T const &angleY)</td></tr>
+<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &t1, T const &t2, T const &t3)</td></tr>
+<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &angleX, T const &angleZ)</td></tr>
+<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &angleY)</td></tr>
+<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &angleY, T const &angleX)</td></tr>
+<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &angleY, T const &angleZ)</td></tr>
+<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &angleZ)</td></tr>
+<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &angle, T const &angleX)</td></tr>
+<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &angleZ, T const &angleY)</td></tr>
+<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gad5838a4c87ce2b8ee4c4e17bd162fd14">extractEulerAngleXYZ</a> (tmat4x4< T, defaultp > const &M, T &t1, T &t2, T &t3)</td></tr>
+<tr class="separator:gad5838a4c87ce2b8ee4c4e17bd162fd14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &angle)</td></tr>
+<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &angle)</td></tr>
+<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3< T, P > const &angles)</td></tr>
+<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00190.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
+<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Build matrices from Euler angles. </p>
+<p><<a class="el" href="a00021.html" title="GLM_GTX_euler_angles ">glm/gtx/euler_angles.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga82cd3b8a04943f1a0d1a562aff358dc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleX </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleX</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8bf84f92ca976a7f50dbe4b30ceb72dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXY </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleY</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaedda1657a1aebe0a904d864b33844e8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXYZ </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>t3</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab2d7dc94b9a7519d741aaa208c7a335b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXZ </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleX</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleZ</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaeb193af1184bdf39c23636d756e1ff33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleY </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleY</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafdd02f9a37511190962119adef5c1c25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYX </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleX</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0242b5ab68651db70c6025815549427f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYXZ </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>yaw</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>pitch</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>roll</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1033f84f51d61646145352ef0c1bb58c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYZ </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleY</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleZ</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab59c4fe7f735568255cc19fddd3ddfcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZ </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleZ</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaef83cf40bd9ae780011b29970f16f622"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZX </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleX</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02f037926568bbd12dfece3b28b20343"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZY </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleZ</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angleY</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad5838a4c87ce2b8ee4c4e17bd162fd14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::extractEulerAngleXYZ </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, defaultp > const & </td>
+ <td class="paramname"><em>M</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T & </td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T & </td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T & </td>
+ <td class="paramname"><em>t3</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6f465681cbbc575ad93a53ec918dacf3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::orientate2 </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab188e2526dea3c003e86e298f618085e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::orientate3 </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga33f0d790cecd8337ee83f8e3a8109b11"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::orientate3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>angles</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4e25c9468b6f002c76e9a2412bcfa503"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::orientate4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>angles</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf9c8d0f1df88c5344165600774489bc5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::yawPitchRoll </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>yaw</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>pitch</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>roll</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00190.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/a00191.html b/doc/api/a00191.html
index 488533b..2a9ed24 100644
--- a/doc/api/a00191.html
+++ b/doc/api/a00191.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_compatibility</title>
+<title>0.9.8: GLM_GTX_extend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,270 +37,57 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_compatibility<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_extend<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
-typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
-<tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
-typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
-<tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa8d0bc8dfa7eeb928208305714f648d"></a>
-typedef tvec2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gafa8d0bc8dfa7eeb928208305714f648d">bool2</a></td></tr>
-<tr class="separator:gafa8d0bc8dfa7eeb928208305714f648d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2bfb53bc320966c85149934fffb0329d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfb53bc320966c85149934fffb0329d"></a>
-typedef tmat2x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfb53bc320966c85149934fffb0329d">bool2x2</a></td></tr>
-<tr class="separator:ga2bfb53bc320966c85149934fffb0329d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad02e7dff74039bb1454643e293d85dfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad02e7dff74039bb1454643e293d85dfe"></a>
-typedef tmat2x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad02e7dff74039bb1454643e293d85dfe">bool2x3</a></td></tr>
-<tr class="separator:gad02e7dff74039bb1454643e293d85dfe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga379c0869949e8a69c3d06d7637caa5d7"></a>
-typedef tmat2x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga379c0869949e8a69c3d06d7637caa5d7">bool2x4</a></td></tr>
-<tr class="separator:ga379c0869949e8a69c3d06d7637caa5d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8d74ea4c4f4bd980b650ffb27cdb659"></a>
-typedef tvec3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8d74ea4c4f4bd980b650ffb27cdb659">bool3</a></td></tr>
-<tr class="separator:gab8d74ea4c4f4bd980b650ffb27cdb659"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0fc7ecb53df5be5f9d766fbbfe5190d7"></a>
-typedef tmat3x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fc7ecb53df5be5f9d766fbbfe5190d7">bool3x2</a></td></tr>
-<tr class="separator:ga0fc7ecb53df5be5f9d766fbbfe5190d7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae621c9eabcba552eea5f6ade1f403605"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae621c9eabcba552eea5f6ade1f403605"></a>
-typedef tmat3x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gae621c9eabcba552eea5f6ade1f403605">bool3x3</a></td></tr>
-<tr class="separator:gae621c9eabcba552eea5f6ade1f403605"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad13f8250579ebf79760dcf64215ddb17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13f8250579ebf79760dcf64215ddb17"></a>
-typedef tmat3x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad13f8250579ebf79760dcf64215ddb17">bool3x4</a></td></tr>
-<tr class="separator:gad13f8250579ebf79760dcf64215ddb17"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e79dbfab5917c467a154638ba27898e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6e79dbfab5917c467a154638ba27898e"></a>
-typedef tvec4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6e79dbfab5917c467a154638ba27898e">bool4</a></td></tr>
-<tr class="separator:ga6e79dbfab5917c467a154638ba27898e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga184ee05ac2bbbf0a91dd364ba8e528db"></a>
-typedef tmat4x2< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga184ee05ac2bbbf0a91dd364ba8e528db">bool4x2</a></td></tr>
-<tr class="separator:ga184ee05ac2bbbf0a91dd364ba8e528db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83e4c62ab1addfe708dc3409cc0e5dfb"></a>
-typedef tmat4x3< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga83e4c62ab1addfe708dc3409cc0e5dfb">bool4x3</a></td></tr>
-<tr class="separator:ga83e4c62ab1addfe708dc3409cc0e5dfb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9770607032813e7b0ca7362a47efea1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9770607032813e7b0ca7362a47efea1e"></a>
-typedef tmat4x4< bool, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga9770607032813e7b0ca7362a47efea1e">bool4x4</a></td></tr>
-<tr class="separator:ga9770607032813e7b0ca7362a47efea1e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
-typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
-<tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
-typedef double </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
-<tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa16a13c6f2768e83ca133430e82ab89e"></a>
-typedef tvec2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa16a13c6f2768e83ca133430e82ab89e">double2</a></td></tr>
-<tr class="separator:gaa16a13c6f2768e83ca133430e82ab89e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga320d0a71a4ad9f14a1992d40546cffa7"></a>
-typedef tmat2x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga320d0a71a4ad9f14a1992d40546cffa7">double2x2</a></td></tr>
-<tr class="separator:ga320d0a71a4ad9f14a1992d40546cffa7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade37cf30c69bacb41ceea7e32717eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade37cf30c69bacb41ceea7e32717eac7"></a>
-typedef tmat2x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gade37cf30c69bacb41ceea7e32717eac7">double2x3</a></td></tr>
-<tr class="separator:gade37cf30c69bacb41ceea7e32717eac7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf923922adf744404d5bfb3fafb7d0d8e"></a>
-typedef tmat2x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf923922adf744404d5bfb3fafb7d0d8e">double2x4</a></td></tr>
-<tr class="separator:gaf923922adf744404d5bfb3fafb7d0d8e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaed4bc64196bd25d46f6a1f417320a391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaed4bc64196bd25d46f6a1f417320a391"></a>
-typedef tvec3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaed4bc64196bd25d46f6a1f417320a391">double3</a></td></tr>
-<tr class="separator:gaed4bc64196bd25d46f6a1f417320a391"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeaac4d0e18164e4d2fe54432c0fbbcf6"></a>
-typedef tmat3x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaeaac4d0e18164e4d2fe54432c0fbbcf6">double3x2</a></td></tr>
-<tr class="separator:gaeaac4d0e18164e4d2fe54432c0fbbcf6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac934f579ee5cf3cbdbb25b73f2640c0a"></a>
-typedef tmat3x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac934f579ee5cf3cbdbb25b73f2640c0a">double3x3</a></td></tr>
-<tr class="separator:gac934f579ee5cf3cbdbb25b73f2640c0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaad84a1ea83be8fce04c1570c5e719413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad84a1ea83be8fce04c1570c5e719413"></a>
-typedef tmat3x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad84a1ea83be8fce04c1570c5e719413">double3x4</a></td></tr>
-<tr class="separator:gaad84a1ea83be8fce04c1570c5e719413"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8bbb086c9a6c2deffbe0e80afd6be56"></a>
-typedef tvec4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab8bbb086c9a6c2deffbe0e80afd6be56">double4</a></td></tr>
-<tr class="separator:gab8bbb086c9a6c2deffbe0e80afd6be56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f87500119da15e35e4a74780ba512bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f87500119da15e35e4a74780ba512bd"></a>
-typedef tmat4x2< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2f87500119da15e35e4a74780ba512bd">double4x2</a></td></tr>
-<tr class="separator:ga2f87500119da15e35e4a74780ba512bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4e6d53c03780dfa76bd399324f9fe37"></a>
-typedef tmat4x3< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa4e6d53c03780dfa76bd399324f9fe37">double4x3</a></td></tr>
-<tr class="separator:gaa4e6d53c03780dfa76bd399324f9fe37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga686a3a5590f0a0e721faba08bda301d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga686a3a5590f0a0e721faba08bda301d6"></a>
-typedef tmat4x4< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga686a3a5590f0a0e721faba08bda301d6">double4x4</a></td></tr>
-<tr class="separator:ga686a3a5590f0a0e721faba08bda301d6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
-typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
-<tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
-typedef float </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
-<tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga872a70333dd25af68b1ebba485be9e42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga872a70333dd25af68b1ebba485be9e42"></a>
-typedef tvec2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga872a70333dd25af68b1ebba485be9e42">float2</a></td></tr>
-<tr class="separator:ga872a70333dd25af68b1ebba485be9e42"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaad93cbc2b863e363d53d405d0451d03e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaad93cbc2b863e363d53d405d0451d03e"></a>
-typedef tmat2x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaad93cbc2b863e363d53d405d0451d03e">float2x2</a></td></tr>
-<tr class="separator:gaad93cbc2b863e363d53d405d0451d03e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga098c33a30f901f4f6a76969d6db6b01b"></a>
-typedef tmat2x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga098c33a30f901f4f6a76969d6db6b01b">float2x3</a></td></tr>
-<tr class="separator:ga098c33a30f901f4f6a76969d6db6b01b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2ce4c366abc06c8bf7fe097ecea0dde"></a>
-typedef tmat2x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab2ce4c366abc06c8bf7fe097ecea0dde">float2x4</a></td></tr>
-<tr class="separator:gab2ce4c366abc06c8bf7fe097ecea0dde"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2bfa618285894e34f299e4984f092d56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bfa618285894e34f299e4984f092d56"></a>
-typedef tvec3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2bfa618285894e34f299e4984f092d56">float3</a></td></tr>
-<tr class="separator:ga2bfa618285894e34f299e4984f092d56"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf30014e7b6874f45d58eb580d04764ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf30014e7b6874f45d58eb580d04764ff"></a>
-typedef tmat3x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf30014e7b6874f45d58eb580d04764ff">float3x2</a></td></tr>
-<tr class="separator:gaf30014e7b6874f45d58eb580d04764ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2692a729a69615d72dbebbdd0eba2363"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2692a729a69615d72dbebbdd0eba2363"></a>
-typedef tmat3x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2692a729a69615d72dbebbdd0eba2363">float3x3</a></td></tr>
-<tr class="separator:ga2692a729a69615d72dbebbdd0eba2363"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac38c8929ccc87a2dc81eaab97ad5190e"></a>
-typedef tmat3x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gac38c8929ccc87a2dc81eaab97ad5190e">float3x4</a></td></tr>
-<tr class="separator:gac38c8929ccc87a2dc81eaab97ad5190e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5d49ed44dd9a9e944abc30371fc9045b"></a>
-typedef tvec4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga5d49ed44dd9a9e944abc30371fc9045b">float4</a></td></tr>
-<tr class="separator:ga5d49ed44dd9a9e944abc30371fc9045b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga39a2af7aa8f2d29ca40afd2256c0e7c8"></a>
-typedef tmat4x2< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga39a2af7aa8f2d29ca40afd2256c0e7c8">float4x2</a></td></tr>
-<tr class="separator:ga39a2af7aa8f2d29ca40afd2256c0e7c8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad749b26be059f35394fd71c7f7a44034"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad749b26be059f35394fd71c7f7a44034"></a>
-typedef tmat4x3< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad749b26be059f35394fd71c7f7a44034">float4x3</a></td></tr>
-<tr class="separator:gad749b26be059f35394fd71c7f7a44034"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf40529862492ded2f3b96a6c886f6136"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf40529862492ded2f3b96a6c886f6136"></a>
-typedef tmat4x4< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaf40529862492ded2f3b96a6c886f6136">float4x4</a></td></tr>
-<tr class="separator:gaf40529862492ded2f3b96a6c886f6136"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
-typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
-<tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
-typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
-<tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2eca687990bf3a08ef28bc4a9f2fe700"></a>
-typedef tvec2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga2eca687990bf3a08ef28bc4a9f2fe700">int2</a></td></tr>
-<tr class="separator:ga2eca687990bf3a08ef28bc4a9f2fe700"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab1c5d0631a6ae34e28bfb2851da387cc"></a>
-typedef tmat2x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab1c5d0631a6ae34e28bfb2851da387cc">int2x2</a></td></tr>
-<tr class="separator:gab1c5d0631a6ae34e28bfb2851da387cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6dc93f0794eb5fadd7f68b85141a2434"></a>
-typedef tmat2x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga6dc93f0794eb5fadd7f68b85141a2434">int2x3</a></td></tr>
-<tr class="separator:ga6dc93f0794eb5fadd7f68b85141a2434"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad5da9e1b4e0c64c5436b5696ab49540e"></a>
-typedef tmat2x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gad5da9e1b4e0c64c5436b5696ab49540e">int2x4</a></td></tr>
-<tr class="separator:gad5da9e1b4e0c64c5436b5696ab49540e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa6ceedf08a85e5fd73a482bc8b77b88"></a>
-typedef tvec3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaaa6ceedf08a85e5fd73a482bc8b77b88">int3</a></td></tr>
-<tr class="separator:gaaa6ceedf08a85e5fd73a482bc8b77b88"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa98b1a06b802c975f02a5583f43632db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa98b1a06b802c975f02a5583f43632db"></a>
-typedef tmat3x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa98b1a06b802c975f02a5583f43632db">int3x2</a></td></tr>
-<tr class="separator:gaa98b1a06b802c975f02a5583f43632db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20c4d23defbc123ac4745c9b4262156f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c4d23defbc123ac4745c9b4262156f"></a>
-typedef tmat3x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga20c4d23defbc123ac4745c9b4262156f">int3x3</a></td></tr>
-<tr class="separator:ga20c4d23defbc123ac4745c9b4262156f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b00c53838143bce963177122ab92c39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b00c53838143bce963177122ab92c39"></a>
-typedef tmat3x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga7b00c53838143bce963177122ab92c39">int3x4</a></td></tr>
-<tr class="separator:ga7b00c53838143bce963177122ab92c39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab19c2df22e9b14081390fabd074081f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab19c2df22e9b14081390fabd074081f1"></a>
-typedef tvec4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gab19c2df22e9b14081390fabd074081f1">int4</a></td></tr>
-<tr class="separator:gab19c2df22e9b14081390fabd074081f1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa53815539021200c4e10fd282832dcd3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa53815539021200c4e10fd282832dcd3"></a>
-typedef tmat4x2< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#gaa53815539021200c4e10fd282832dcd3">int4x2</a></td></tr>
-<tr class="separator:gaa53815539021200c4e10fd282832dcd3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a3bf0ecd6f6ff60836c5bee26c14abe"></a>
-typedef tmat4x3< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga4a3bf0ecd6f6ff60836c5bee26c14abe">int4x3</a></td></tr>
-<tr class="separator:ga4a3bf0ecd6f6ff60836c5bee26c14abe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3bacf576b4b29f2f2959abff7a36652d"></a>
-typedef tmat4x4< int, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00191.html#ga3bacf576b4b29f2f2959abff7a36652d">int4x4</a></td></tr>
-<tr class="separator:ga3bacf576b4b29f2f2959abff7a36652d"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
-<tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga525f3e849d0fc64807f8ab571b4545f9"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga525f3e849d0fc64807f8ab571b4545f9">atan2</a> (const tvec2< T, P > &x, const tvec2< T, P > &y)</td></tr>
-<tr class="separator:ga525f3e849d0fc64807f8ab571b4545f9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad328042b6734d3f2c49c0ec1328b14c0"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gad328042b6734d3f2c49c0ec1328b14c0">atan2</a> (const tvec3< T, P > &x, const tvec3< T, P > &y)</td></tr>
-<tr class="separator:gad328042b6734d3f2c49c0ec1328b14c0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga09d39c391a509a045b6c7061f15bdff5"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga09d39c391a509a045b6c7061f15bdff5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga09d39c391a509a045b6c7061f15bdff5">atan2</a> (const tvec4< T, P > &x, const tvec4< T, P > &y)</td></tr>
-<tr class="separator:ga09d39c391a509a045b6c7061f15bdff5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
-template<typename genType > </td></tr>
-<tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &x)</td></tr>
-<tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga553e2e95b06a0f70c718605998889d3b"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga553e2e95b06a0f70c718605998889d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec1< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga553e2e95b06a0f70c718605998889d3b">isfinite</a> (const tvec1< T, P > &x)</td></tr>
-<tr class="separator:ga553e2e95b06a0f70c718605998889d3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7dd492aa7d6ec21715f9a91b6e5e596a"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7dd492aa7d6ec21715f9a91b6e5e596a">isfinite</a> (const tvec2< T, P > &x)</td></tr>
-<tr class="separator:ga7dd492aa7d6ec21715f9a91b6e5e596a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1be9593d810fceb278a2854da8a25273"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga1be9593d810fceb278a2854da8a25273"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga1be9593d810fceb278a2854da8a25273">isfinite</a> (const tvec3< T, P > &x)</td></tr>
-<tr class="separator:ga1be9593d810fceb278a2854da8a25273"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8c6a59e2f2ac84fba0c5932f1c35bf7a"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8c6a59e2f2ac84fba0c5932f1c35bf7a">isfinite</a> (const tvec4< T, P > &x)</td></tr>
-<tr class="separator:ga8c6a59e2f2ac84fba0c5932f1c35bf7a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
-template<typename T > </td></tr>
-<tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
-<tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0aa79a146332650a1eb18ae996c653fe"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0aa79a146332650a1eb18ae996c653fe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0aa79a146332650a1eb18ae996c653fe">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, T a)</td></tr>
-<tr class="separator:ga0aa79a146332650a1eb18ae996c653fe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4c885ac72b8879b05777cb516c555c9"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf4c885ac72b8879b05777cb516c555c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gaf4c885ac72b8879b05777cb516c555c9">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, T a)</td></tr>
-<tr class="separator:gaf4c885ac72b8879b05777cb516c555c9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga363d5d069d31a6c2cdd1e9589dde4a60"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga363d5d069d31a6c2cdd1e9589dde4a60">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, T a)</td></tr>
-<tr class="separator:ga363d5d069d31a6c2cdd1e9589dde4a60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga7609b44d8aefc5a277efe73395ff4070"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7609b44d8aefc5a277efe73395ff4070"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga7609b44d8aefc5a277efe73395ff4070">lerp</a> (const tvec2< T, P > &x, const tvec2< T, P > &y, const tvec2< T, P > &a)</td></tr>
-<tr class="separator:ga7609b44d8aefc5a277efe73395ff4070"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga90a1d1364a8d078846857178bdcc9af1"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga90a1d1364a8d078846857178bdcc9af1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga90a1d1364a8d078846857178bdcc9af1">lerp</a> (const tvec3< T, P > &x, const tvec3< T, P > &y, const tvec3< T, P > &a)</td></tr>
-<tr class="separator:ga90a1d1364a8d078846857178bdcc9af1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplParams" colspan="2"><a class="anchor" id="gae4b0244b0d882657bed0a99dfa33f379"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gae4b0244b0d882657bed0a99dfa33f379"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#gae4b0244b0d882657bed0a99dfa33f379">lerp</a> (const tvec4< T, P > &x, const tvec4< T, P > &y, const tvec4< T, P > &a)</td></tr>
-<tr class="separator:gae4b0244b0d882657bed0a99dfa33f379"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
-<tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5815a26488231dfdf92242cf0c2d2107"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5815a26488231dfdf92242cf0c2d2107"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga5815a26488231dfdf92242cf0c2d2107">saturate</a> (const tvec2< T, P > &x)</td></tr>
-<tr class="separator:ga5815a26488231dfdf92242cf0c2d2107"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga02ed1a53c6df104d56b69f8fb5e9af1b"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga02ed1a53c6df104d56b69f8fb5e9af1b">saturate</a> (const tvec3< T, P > &x)</td></tr>
-<tr class="separator:ga02ed1a53c6df104d56b69f8fb5e9af1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga63791409bdef9745b956406afe3157f1"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:ga63791409bdef9745b956406afe3157f1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga63791409bdef9745b956406afe3157f1">saturate</a> (const tvec4< T, P > &x)</td></tr>
-<tr class="separator:ga63791409bdef9745b956406afe3157f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00191.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &Origin, genType const &Source, typename genType::value_type const Length)</td></tr>
+<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Provide functions to increase the compatibility with Cg and HLSL languages. </p>
-<p><<a class="el" href="a00016.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/compatibility.hpp</a>> need to be included to use these functionalities. </p>
+<p>Extend a position from a source to a position at a defined length. </p>
+<p><<a class="el" href="a00024.html" title="GLM_GTX_extend ">glm/gtx/extend.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga8140caae613b0f847ab0d7175dc03a37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::extend </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Origin</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const </td>
+ <td class="paramname"><em>Length</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00191.html" title="Extend a position from a source to a position at a defined length. ">GLM_GTX_extend</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00192.html b/doc/api/a00192.html
index df58531..6bc56c3 100644
--- a/doc/api/a00192.html
+++ b/doc/api/a00192.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_component_wise</title>
+<title>0.9.8: GLM_GTX_extented_min_max</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,102 +39,506 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_component_wise<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_extented_min_max<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf71833350e15e74d31cbf8a3e7f27051">compAdd</a> (genType const &v)</td></tr>
-<tr class="separator:gaf71833350e15e74d31cbf8a3e7f27051"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gabfa4bb19298c8c73d4217ba759c496b6">compMax</a> (genType const &v)</td></tr>
-<tr class="separator:gabfa4bb19298c8c73d4217ba759c496b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gab5d0832b5c7bb01b8d7395973bfb1425">compMin</a> (genType const &v)</td></tr>
-<tr class="separator:gab5d0832b5c7bb01b8d7395973bfb1425"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae8ab88024197202c9479d33bdc5a8a5d">compMul</a> (genType const &v)</td></tr>
-<tr class="separator:gae8ab88024197202c9479d33bdc5a8a5d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &x, T const &y, T const &z)</td></tr>
+<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
+<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
+<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga95466987024d03039607f09e69813d69">min</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
+<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
+<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
+<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00192.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
+<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Operations between components of a type. </p>
-<p><<a class="el" href="a00017.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/component_wise.hpp</a>> need to be included to use these functionalities. </p>
+<p>Min and max functions for 3 to 4 parameters. </p>
+<p><glm/gtx/extented_min_max.hpp> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaf71833350e15e74d31cbf8a3e7f27051"></a>
+<a class="anchor" id="ga04991ccb9865c4c4e58488cfb209ce69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compAdd </td>
+ <td class="memname">GLM_FUNC_DECL T glm::max </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae1b7bbe5c91de4924835ea3e14530744"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf832e9d4ab4826b2dda2fda25935a3a4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78e04a0cef1c4863fcae1a2130500d87"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::max </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7cca8b53cfda402040494cdf40fbdf4a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaacffbc466c2d08c140b181e7fd8a4858"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Add all vector components together. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the maximum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gabfa4bb19298c8c73d4217ba759c496b6"></a>
+<a class="anchor" id="ga713d3f9b3e76312c0d314e0c8611a6a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMax </td>
+ <td class="memname">GLM_FUNC_DECL T glm::min </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Find the maximum value between single vector components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gab5d0832b5c7bb01b8d7395973bfb1425"></a>
+<a class="anchor" id="ga74d1a96e7cdbac40f6d35142d3bcbbd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMin </td>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Find the minimum value between single vector components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gae8ab88024197202c9479d33bdc5a8a5d"></a>
+<a class="anchor" id="ga42b5c3fc027fd3d9a50d2ccc9126d9f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::compMul </td>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 3 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga95466987024d03039607f09e69813d69"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::min </td>
+ <td>(</td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4fe35dd31dd0c45693c9b60b830b8d47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename C< T >::T const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7471ea4159eed8dd9ea4ac5d46c2fead"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
+ <td>(</td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>z</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">C< T > const & </td>
+ <td class="paramname"><em>w</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Multiply all vector components together. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Operations between components of a type. ">GLM_GTX_component_wise</a> </dd></dl>
+<p>Return the minimum component-wise values of 4 inputs. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00192.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00193.html b/doc/api/a00193.html
index 7eb5dc7..617c63a 100644
--- a/doc/api/a00193.html
+++ b/doc/api/a00193.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_dual_quaternion</title>
+<title>0.9.8: GLM_GTX_fast_exponential</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,351 +37,251 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_dual_quaternion<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_exponential<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memItemLeft" align="right" valign="top">typedef highp_ddualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga3d71f98d84ba59dfe4e369fde4714cd6">ddualquat</a></td></tr>
-<tr class="separator:ga3d71f98d84ba59dfe4e369fde4714cd6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gae93abee0c979902fbec6a7bee0f6fae1">dualquat</a></td></tr>
-<tr class="separator:gae93abee0c979902fbec6a7bee0f6fae1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memItemLeft" align="right" valign="top">typedef highp_fdualquat </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga237c2b9b42c9a930e49de5840ae0f930">fdualquat</a></td></tr>
-<tr class="separator:ga237c2b9b42c9a930e49de5840ae0f930"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga8f67eafa7197d7a668dad5105a463d2a">highp_ddualquat</a></td></tr>
-<tr class="separator:ga8f67eafa7197d7a668dad5105a463d2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga9ef5bf1da52a9d4932335a517086ceaf">highp_dualquat</a></td></tr>
-<tr class="separator:ga9ef5bf1da52a9d4932335a517086ceaf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4c4e55e9c99dc57b299ed590968da564"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, highp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4c4e55e9c99dc57b299ed590968da564">highp_fdualquat</a></td></tr>
-<tr class="separator:ga4c4e55e9c99dc57b299ed590968da564"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gab4c5103338af3dac7e0fbc86895a3f1a">lowp_ddualquat</a></td></tr>
-<tr class="separator:gab4c5103338af3dac7e0fbc86895a3f1a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gade05d29ebd4deea0f883d0e1bb4169aa">lowp_dualquat</a></td></tr>
-<tr class="separator:gade05d29ebd4deea0f883d0e1bb4169aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa38f671be25a7f3b136a452a8bb42860"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, lowp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa38f671be25a7f3b136a452a8bb42860">lowp_fdualquat</a></td></tr>
-<tr class="separator:gaa38f671be25a7f3b136a452a8bb42860"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< double, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga0fb11e48e2d16348ccb06a25213641b4">mediump_ddualquat</a></td></tr>
-<tr class="separator:ga0fb11e48e2d16348ccb06a25213641b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#gaa7aeb54c167712b38f2178a1be2360ad">mediump_dualquat</a></td></tr>
-<tr class="separator:gaa7aeb54c167712b38f2178a1be2360ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4a6b594ff7e81150d8143001367a9431"><td class="memItemLeft" align="right" valign="top">typedef tdualquat< float, mediump > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00193.html#ga4a6b594ff7e81150d8143001367a9431">mediump_fdualquat</a></td></tr>
-<tr class="separator:ga4a6b594ff7e81150d8143001367a9431"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gada9799afe2b62394dc498534beb5bc78"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gada9799afe2b62394dc498534beb5bc78">dualquat_cast</a> (tmat2x4< T, P > const &x)</td></tr>
-<tr class="separator:gada9799afe2b62394dc498534beb5bc78"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga20eb5758beb73cc6dbc2d9104f03ec20">dualquat_cast</a> (tmat3x4< T, P > const &x)</td></tr>
-<tr class="separator:ga20eb5758beb73cc6dbc2d9104f03ec20"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2149d3cb8af04d9530de0cd16aa1aab2">inverse</a> (tdualquat< T, P > const &q)</td></tr>
-<tr class="separator:ga2149d3cb8af04d9530de0cd16aa1aab2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8039b88397ca09275be924a26a806a59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga8039b88397ca09275be924a26a806a59">lerp</a> (tdualquat< T, P > const &x, tdualquat< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:ga8039b88397ca09275be924a26a806a59"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2d124748183e12db8288eeaca350298e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga2d124748183e12db8288eeaca350298e">mat2x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
-<tr class="separator:ga2d124748183e12db8288eeaca350298e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga576745d979e3c079a64152490c816954"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga576745d979e3c079a64152490c816954">mat3x4_cast</a> (tdualquat< T, P > const &x)</td></tr>
-<tr class="separator:ga576745d979e3c079a64152490c816954"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tdualquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga495818aa48c23e9e730f87a3c337d1d5">normalize</a> (tdualquat< T, P > const &q)</td></tr>
-<tr class="separator:ga495818aa48c23e9e730f87a3c337d1d5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
+<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
+<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
+<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
+<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
+<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template<typename genTypeT , typename genTypeU > </td></tr>
+<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
+<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00193.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines a templated dual-quaternion type and several dual-quaternion operations. </p>
-<p><<a class="el" href="a00019.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/dual_quaternion.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga3d71f98d84ba59dfe4e369fde4714cd6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_ddualquat ddualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of default double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00283">283</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gae93abee0c979902fbec6a7bee0f6fae1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_fdualquat dualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00259">259</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga237c2b9b42c9a930e49de5840ae0f930"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef highp_fdualquat fdualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00264">264</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga8f67eafa7197d7a668dad5105a463d2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat<double, highp> highp_ddualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00252">252</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga9ef5bf1da52a9d4932335a517086ceaf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat<float, highp> highp_dualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00220">220</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4c4e55e9c99dc57b299ed590968da564"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef tdualquat<float, highp> highp_fdualquat</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Dual-quaternion of high single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00236">236</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gab4c5103338af3dac7e0fbc86895a3f1a"></a>
+<p>Fast but less accurate implementations of exponential based functions. </p>
+<p><<a class="el" href="a00026.html" title="GLM_GTX_fast_exponential ">glm/gtx/fast_exponential.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaa3180ac8f96ab37ab96e0cacaf608e10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<double, lowp> lowp_ddualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastExp </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00242">242</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gade05d29ebd4deea0f883d0e1bb4169aa"></a>
+<a class="anchor" id="ga4faf0b61115de36efcf47c4ecb55a5fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<float, lowp> lowp_dualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastExp </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00210">210</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa38f671be25a7f3b136a452a8bb42860"></a>
+<a class="anchor" id="ga0af50585955eb14c60bb286297fabab2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<float, lowp> lowp_fdualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastExp2 </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of low single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00226">226</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga0fb11e48e2d16348ccb06a25213641b4"></a>
+<a class="anchor" id="ga9e6219327b7a33077dbec7620d981fff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<double, mediump> mediump_ddualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastExp2 </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium double-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00247">247</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7aeb54c167712b38f2178a1be2360ad"></a>
+<a class="anchor" id="gae1bdc97b7f96a600e29c753f1cd4388a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<float, mediump> mediump_dualquat</td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLog </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00215">215</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common log function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4a6b594ff7e81150d8143001367a9431"></a>
+<a class="anchor" id="ga789abcbc34d08008d2f5a4547dd6e5e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tdualquat<float, mediump> mediump_fdualquat</td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastLog </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Dual-quaternion of medium single-precision floating-point numbers. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00019_source.html#l00231">231</a> of file <a class="el" href="a00019_source.html">dual_quaternion.hpp</a>.</p>
+<p>Faster than the common exp2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gada9799afe2b62394dc498534beb5bc78"></a>
+<a class="anchor" id="ga6e98118685f6dc9e05fbb13dd5e5234e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLog2 </td>
<td>(</td>
- <td class="paramtype">tmat2x4< T, P > const & </td>
+ <td class="paramtype">T </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common log2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga20eb5758beb73cc6dbc2d9104f03ec20"></a>
+<a class="anchor" id="gabc46086fe6636b8be87f09e6c5d2bb58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::dualquat_cast </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastLog2 </td>
<td>(</td>
- <td class="paramtype">tmat3x4< T, P > const & </td>
+ <td class="paramtype">vecType< T, P > const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common log2 function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2149d3cb8af04d9530de0cd16aa1aab2"></a>
+<a class="anchor" id="ga5340e98a11fcbbd936ba6e983a154d50"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::inverse </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the q inverse. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga8039b88397ca09275be924a26a806a59"></a>
+<a class="anchor" id="ga07b73976a9af4005945bc338b45d8466"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::lerp </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat< T, P > const & </td>
+ <td class="paramtype">vecType< T, P > const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tdualquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -391,65 +291,56 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the linear interpolation of two dual quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd>gtc_dual_quaternion </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2d124748183e12db8288eeaca350298e"></a>
+<a class="anchor" id="ga7f2562db9c3e02ae76169c36b086c3f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4<T, P> glm::mat2x4_cast </td>
+ <td class="memname">GLM_FUNC_DECL genTypeT glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramtype">genTypeT </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">genTypeU </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 2 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga576745d979e3c079a64152490c816954"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4<T, P> glm::mat3x4_cast </td>
- <td>(</td>
- <td class="paramtype">tdualquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a quaternion to a 3 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga495818aa48c23e9e730f87a3c337d1d5"></a>
+<a class="anchor" id="ga29924aea1aa11c5c504fb2d621221906"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tdualquat<T, P> glm::normalize </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastPow </td>
<td>(</td>
- <td class="paramtype">tdualquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the normalized quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Defines a templated dual-quaternion type and several dual-quaternion operations. ">GLM_GTX_dual_quaternion</a> </dd></dl>
+<p>Faster than the common pow function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00193.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00194.html b/doc/api/a00194.html
index d81dba1..3669ba6 100644
--- a/doc/api/a00194.html
+++ b/doc/api/a00194.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_euler_angles</title>
+<title>0.9.8: GLM_GTX_fast_square_root</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,249 +39,62 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_euler_angles<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_square_root<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga82cd3b8a04943f1a0d1a562aff358dc8">eulerAngleX</a> (T const &angleX)</td></tr>
-<tr class="separator:ga82cd3b8a04943f1a0d1a562aff358dc8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga8bf84f92ca976a7f50dbe4b30ceb72dd">eulerAngleXY</a> (T const &angleX, T const &angleY)</td></tr>
-<tr class="separator:ga8bf84f92ca976a7f50dbe4b30ceb72dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaaedda1657a1aebe0a904d864b33844e8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaaedda1657a1aebe0a904d864b33844e8">eulerAngleXYZ</a> (T const &t1, T const &t2, T const &t3)</td></tr>
-<tr class="separator:gaaedda1657a1aebe0a904d864b33844e8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab2d7dc94b9a7519d741aaa208c7a335b">eulerAngleXZ</a> (T const &angleX, T const &angleZ)</td></tr>
-<tr class="separator:gab2d7dc94b9a7519d741aaa208c7a335b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaeb193af1184bdf39c23636d756e1ff33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaeb193af1184bdf39c23636d756e1ff33">eulerAngleY</a> (T const &angleY)</td></tr>
-<tr class="separator:gaeb193af1184bdf39c23636d756e1ff33"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gafdd02f9a37511190962119adef5c1c25"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafdd02f9a37511190962119adef5c1c25">eulerAngleYX</a> (T const &angleY, T const &angleX)</td></tr>
-<tr class="separator:gafdd02f9a37511190962119adef5c1c25"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0242b5ab68651db70c6025815549427f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga0242b5ab68651db70c6025815549427f">eulerAngleYXZ</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
-<tr class="separator:ga0242b5ab68651db70c6025815549427f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga1033f84f51d61646145352ef0c1bb58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga1033f84f51d61646145352ef0c1bb58c">eulerAngleYZ</a> (T const &angleY, T const &angleZ)</td></tr>
-<tr class="separator:ga1033f84f51d61646145352ef0c1bb58c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab59c4fe7f735568255cc19fddd3ddfcd">eulerAngleZ</a> (T const &angleZ)</td></tr>
-<tr class="separator:gab59c4fe7f735568255cc19fddd3ddfcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaef83cf40bd9ae780011b29970f16f622"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaef83cf40bd9ae780011b29970f16f622">eulerAngleZX</a> (T const &angle, T const &angleX)</td></tr>
-<tr class="separator:gaef83cf40bd9ae780011b29970f16f622"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga02f037926568bbd12dfece3b28b20343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga02f037926568bbd12dfece3b28b20343">eulerAngleZY</a> (T const &angleZ, T const &angleY)</td></tr>
-<tr class="separator:ga02f037926568bbd12dfece3b28b20343"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga77ab6440250bd8b7e87a06c5643d6e74">extractEulerAngleXYZ</a> (tmat4x4< T, defaultp > &M, T &t1, T &t2, T &t3)</td></tr>
-<tr class="separator:ga77ab6440250bd8b7e87a06c5643d6e74"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6f465681cbbc575ad93a53ec918dacf3">orientate2</a> (T const &angle)</td></tr>
-<tr class="separator:ga6f465681cbbc575ad93a53ec918dacf3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab188e2526dea3c003e86e298f618085e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gab188e2526dea3c003e86e298f618085e">orientate3</a> (T const &angle)</td></tr>
-<tr class="separator:gab188e2526dea3c003e86e298f618085e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga33f0d790cecd8337ee83f8e3a8109b11">orientate3</a> (tvec3< T, P > const &angles)</td></tr>
-<tr class="separator:ga33f0d790cecd8337ee83f8e3a8109b11"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga4e25c9468b6f002c76e9a2412bcfa503">orientate4</a> (tvec3< T, P > const &angles)</td></tr>
-<tr class="separator:ga4e25c9468b6f002c76e9a2412bcfa503"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf9c8d0f1df88c5344165600774489bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, defaultp > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaf9c8d0f1df88c5344165600774489bc5">yawPitchRoll</a> (T const &yaw, T const &pitch, T const &roll)</td></tr>
-<tr class="separator:gaf9c8d0f1df88c5344165600774489bc5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
+<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
+<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
+<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &x)</td></tr>
+<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
+<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00194.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build matrices from Euler angles. </p>
-<p><<a class="el" href="a00021.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/euler_angles.hpp</a>> need to be included to use these functionalities. </p>
+<p>Fast but less accurate implementations of square root based functions. </p>
+<ul>
+<li>Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956</li>
+</ul>
+<p><<a class="el" href="a00027.html" title="GLM_GTX_fast_square_root ">glm/gtx/fast_square_root.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga82cd3b8a04943f1a0d1a562aff358dc8"></a>
+<a class="anchor" id="gaac333418d0c4e0cc6d3d219ed606c238"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleX </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastDistance </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleX</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8bf84f92ca976a7f50dbe4b30ceb72dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXY </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleX</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleY</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaedda1657a1aebe0a904d864b33844e8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXYZ </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>t1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>t2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>t3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab2d7dc94b9a7519d741aaa208c7a335b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleXZ </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleX</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleZ</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaeb193af1184bdf39c23636d756e1ff33"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleY </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleY</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafdd02f9a37511190962119adef5c1c25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYX </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleY</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleX</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0242b5ab68651db70c6025815549427f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYXZ </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>yaw</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>pitch</em>, </td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>roll</em> </td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -291,74 +104,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1033f84f51d61646145352ef0c1bb58c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleYZ </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleY</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleZ</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab59c4fe7f735568255cc19fddd3ddfcd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZ </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleZ</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common distance function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaef83cf40bd9ae780011b29970f16f622"></a>
+<a class="anchor" id="ga6d1ac559cd77d69119e30c3aca0e14b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZX </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastDistance </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleX</em> </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -368,189 +133,141 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common distance function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga02f037926568bbd12dfece3b28b20343"></a>
+<a class="anchor" id="ga7f081b14d9c7035c8714eba5f7f75a8f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::eulerAngleZY </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastInverseSqrt </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleZ</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angleY</em> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common inversesqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga77ab6440250bd8b7e87a06c5643d6e74"></a>
+<a class="anchor" id="ga903878071f92e51e551791e584a171a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL void glm::extractEulerAngleXYZ </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastInverseSqrt </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, defaultp > & </td>
- <td class="paramname"><em>M</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T & </td>
- <td class="paramname"><em>t1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T & </td>
- <td class="paramname"><em>t2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T & </td>
- <td class="paramname"><em>t3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Extracts the (X * Y * Z) Euler angles from the rotation matrix M. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common inversesqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga6f465681cbbc575ad93a53ec918dacf3"></a>
+<a class="anchor" id="gafe697d6287719538346bbdf8b1367c59"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, defaultp> glm::orientate2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastLength </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 2D 2 * 2 rotation matrix from an euler angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common length function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gab188e2526dea3c003e86e298f618085e"></a>
+<a class="anchor" id="gae28a3099cbd6404a4ea8ef22147ed7b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, defaultp> glm::orientate3 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastLength </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common length function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga33f0d790cecd8337ee83f8e3a8109b11"></a>
+<a class="anchor" id="ga3b02c1d6e0c754144e2f1e110bf9f16c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::orientate3 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastNormalize </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>angles</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common normalize function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga4e25c9468b6f002c76e9a2412bcfa503"></a>
+<a class="anchor" id="ga6c460e9414a50b2fc455c8f64c86cdc9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::orientate4 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::fastSqrt </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>angles</em></td><td>)</td>
+ <td class="paramtype">genType </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common sqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf9c8d0f1df88c5344165600774489bc5"></a>
+<a class="anchor" id="gaad9f601bbc3faa04dda384e4c4e1592c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, defaultp> glm::yawPitchRoll </td>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastSqrt </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>yaw</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>pitch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>roll</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Build matrices from Euler angles. ">GLM_GTX_euler_angles</a> </dd></dl>
+<p>Faster than the common sqrt function but less accurate. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00194.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
</div>
</div>
diff --git a/doc/api/a00195.html b/doc/api/a00195.html
index ab1b21c..d880966 100644
--- a/doc/api/a00195.html
+++ b/doc/api/a00195.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_extend</title>
+<title>0.9.8: GLM_GTX_fast_trigonometry</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,41 +39,94 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_extend<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_fast_trigonometry<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8140caae613b0f847ab0d7175dc03a37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8140caae613b0f847ab0d7175dc03a37">extend</a> (genType const &Origin, genType const &Source, typename genType::value_type const Length)</td></tr>
-<tr class="separator:ga8140caae613b0f847ab0d7175dc03a37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
+<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
+<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
+<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
+<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
+<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
+<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
+<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
+<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00195.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
+<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Extend a position from a source to a position at a defined length. </p>
-<p><<a class="el" href="a00024.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/extend.hpp</a>> need to be included to use these functionalities. </p>
+<p>Fast but less accurate implementations of trigonometric functions. </p>
+<p><<a class="el" href="a00028.html" title="GLM_GTX_fast_trigonometry ">glm/gtx/fast_trigonometry.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8140caae613b0f847ab0d7175dc03a37"></a>
+<a class="anchor" id="ga9721d63356e5d94fdc4b393a426ab26b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::extend </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAcos </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Origin</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common acos function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga562cb62c51fbfe7fac7db0bce706b81f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAsin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Source</em>, </td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common asin function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8d197c6ef564f5e5d59af3b3f8adcc2c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const </td>
- <td class="paramname"><em>Length</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em> </td>
</tr>
<tr>
<td></td>
@@ -83,8 +136,102 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Extends of Length the Origin position using the (Source - Origin) direction. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00195.html" title="Extend a position from a source to a position at a defined length. ">GLM_GTX_extend</a> </dd></dl>
+<p>Faster than the common atan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae25de86a968490ff56856fa425ec9d30"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common atan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab34c8b45c23c0165a64dcecfcc3b302a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastCos </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common cos function but less accurate. </p>
+<p>From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0aab3257bb3b628d10a1e0483e2c6915"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastSin </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common sin function but less accurate. </p>
+<p>From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf29b9c1101a10007b4f79ee89df27ba2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::fastTan </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Faster than the common tan function but less accurate. </p>
+<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga069527c6dbd64f53435b8ebc4878b473"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::wrapAngle </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </p>
</div>
</div>
diff --git a/doc/api/a00196.html b/doc/api/a00196.html
index 4ed6445..59d74b2 100644
--- a/doc/api/a00196.html
+++ b/doc/api/a00196.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_extented_min_max</title>
+<title>0.9.8: GLM_GTX_gradient_paint</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,185 +39,44 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_extented_min_max<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_gradient_paint<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga04991ccb9865c4c4e58488cfb209ce69">max</a> (T const &x, T const &y, T const &z)</td></tr>
-<tr class="separator:ga04991ccb9865c4c4e58488cfb209ce69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gae1b7bbe5c91de4924835ea3e14530744"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gae1b7bbe5c91de4924835ea3e14530744">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
-<tr class="separator:gae1b7bbe5c91de4924835ea3e14530744"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaf832e9d4ab4826b2dda2fda25935a3a4">max</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
-<tr class="separator:gaf832e9d4ab4826b2dda2fda25935a3a4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga78e04a0cef1c4863fcae1a2130500d87">max</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
-<tr class="separator:ga78e04a0cef1c4863fcae1a2130500d87"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7cca8b53cfda402040494cdf40fbdf4a">max</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
-<tr class="separator:ga7cca8b53cfda402040494cdf40fbdf4a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gaacffbc466c2d08c140b181e7fd8a4858">max</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
-<tr class="separator:gaacffbc466c2d08c140b181e7fd8a4858"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga713d3f9b3e76312c0d314e0c8611a6a6">min</a> (T const &x, T const &y, T const &z)</td></tr>
-<tr class="separator:ga713d3f9b3e76312c0d314e0c8611a6a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)</td></tr>
-<tr class="separator:ga74d1a96e7cdbac40f6d35142d3bcbbd4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0">min</a> (C< T > const &x, C< T > const &y, C< T > const &z)</td></tr>
-<tr class="separator:ga42b5c3fc027fd3d9a50d2ccc9126d9f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga95466987024d03039607f09e69813d69"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga95466987024d03039607f09e69813d69">min</a> (T const &x, T const &y, T const &z, T const &w)</td></tr>
-<tr class="separator:ga95466987024d03039607f09e69813d69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga4fe35dd31dd0c45693c9b60b830b8d47">min</a> (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)</td></tr>
-<tr class="separator:ga4fe35dd31dd0c45693c9b60b830b8d47"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplParams" colspan="2">template<typename T , template< typename > class C> </td></tr>
-<tr class="memitem:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL C< T > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga7471ea4159eed8dd9ea4ac5d46c2fead">min</a> (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)</td></tr>
-<tr class="separator:ga7471ea4159eed8dd9ea4ac5d46c2fead"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</td></tr>
+<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00196.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</td></tr>
+<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Min and max functions for 3 to 4 parameters. </p>
-<p><<a class="el" href="a00025.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/extented_min_max.hpp</a>> need to be included to use these functionalities. </p>
+<p>Functions that return the color of procedural gradient for specific coordinates. </p>
+<p><<a class="el" href="a00041.html" title="GLM_GTX_gradient_paint ">glm/gtx/gradient_paint.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga04991ccb9865c4c4e58488cfb209ce69"></a>
+<a class="anchor" id="gacde26d5e0c4a1856467bded9dfad9040"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::max </td>
+ <td class="memname">GLM_FUNC_DECL T glm::linearGradient </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae1b7bbe5c91de4924835ea3e14530744"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf832e9d4ab4826b2dda2fda25935a3a4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78e04a0cef1c4863fcae1a2130500d87"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::max </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Point0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>z</em>, </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Point1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>w</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Position</em> </td>
</tr>
<tr>
<td></td>
@@ -227,307 +86,38 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+<p>Return a color from a linear gradient. </p>
+<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00196.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga7cca8b53cfda402040494cdf40fbdf4a"></a>
+<a class="anchor" id="ga166d43d567a4cf150579a92f69b0dc9f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
+ <td class="memname">GLM_FUNC_DECL T glm::radialGradient </td>
<td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>z</em>, </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Center</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaacffbc466c2d08c140b181e7fd8a4858"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::max </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the maximum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga713d3f9b3e76312c0d314e0c8611a6a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::min </td>
- <td>(</td>
<td class="paramtype">T const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga74d1a96e7cdbac40f6d35142d3bcbbd4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga42b5c3fc027fd3d9a50d2ccc9126d9f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>z</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 3 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga95466987024d03039607f09e69813d69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::min </td>
- <td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4fe35dd31dd0c45693c9b60b830b8d47"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>z</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename C< T >::T const & </td>
- <td class="paramname"><em>w</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7471ea4159eed8dd9ea4ac5d46c2fead"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL C<T> glm::min </td>
- <td>(</td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramname"><em>Radius</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>z</em>, </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Focal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">C< T > const & </td>
- <td class="paramname"><em>w</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>Position</em> </td>
</tr>
<tr>
<td></td>
@@ -537,8 +127,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return the minimum component-wise values of 4 inputs. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00196.html" title="Min and max functions for 3 to 4 parameters. ">GLM_GTX_extented_min_max</a> </dd></dl>
+<p>Return a color from a radial gradient. </p>
+<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00196.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00197.html b/doc/api/a00197.html
index 3dd169f..4d38d3c 100644
--- a/doc/api/a00197.html
+++ b/doc/api/a00197.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_exponential</title>
+<title>0.9.8: GLM_GTX_handed_coordinate_space</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,220 +39,44 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_fast_exponential<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_handed_coordinate_space<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gaa3180ac8f96ab37ab96e0cacaf608e10">fastExp</a> (T x)</td></tr>
-<tr class="separator:gaa3180ac8f96ab37ab96e0cacaf608e10"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga4faf0b61115de36efcf47c4ecb55a5fa">fastExp</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga4faf0b61115de36efcf47c4ecb55a5fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0af50585955eb14c60bb286297fabab2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga0af50585955eb14c60bb286297fabab2">fastExp2</a> (T x)</td></tr>
-<tr class="separator:ga0af50585955eb14c60bb286297fabab2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga9e6219327b7a33077dbec7620d981fff"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga9e6219327b7a33077dbec7620d981fff">fastExp2</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga9e6219327b7a33077dbec7620d981fff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gae1bdc97b7f96a600e29c753f1cd4388a">fastLog</a> (T x)</td></tr>
-<tr class="separator:gae1bdc97b7f96a600e29c753f1cd4388a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga789abcbc34d08008d2f5a4547dd6e5e3">fastLog</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga789abcbc34d08008d2f5a4547dd6e5e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga6e98118685f6dc9e05fbb13dd5e5234e">fastLog2</a> (T x)</td></tr>
-<tr class="separator:ga6e98118685f6dc9e05fbb13dd5e5234e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#gabc46086fe6636b8be87f09e6c5d2bb58">fastLog2</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gabc46086fe6636b8be87f09e6c5d2bb58"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga5340e98a11fcbbd936ba6e983a154d50">fastPow</a> (genType x, genType y)</td></tr>
-<tr class="separator:ga5340e98a11fcbbd936ba6e983a154d50"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga07b73976a9af4005945bc338b45d8466"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga07b73976a9af4005945bc338b45d8466">fastPow</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga07b73976a9af4005945bc338b45d8466"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplParams" colspan="2">template<typename genTypeT , typename genTypeU > </td></tr>
-<tr class="memitem:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7f2562db9c3e02ae76169c36b086c3f6">fastPow</a> (genTypeT x, genTypeU y)</td></tr>
-<tr class="separator:ga7f2562db9c3e02ae76169c36b086c3f6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga29924aea1aa11c5c504fb2d621221906"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga29924aea1aa11c5c504fb2d621221906">fastPow</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga29924aea1aa11c5c504fb2d621221906"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00197.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of exponential based functions. </p>
-<p><<a class="el" href="a00026.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_exponential.hpp</a>> need to be included to use these functionalities. </p>
+<p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
+<p><glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaa3180ac8f96ab37ab96e0cacaf608e10"></a>
+<a class="anchor" id="ga7425e0ebfe6a56919900a072ae1f8017"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastExp </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::leftHanded </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4faf0b61115de36efcf47c4ecb55a5fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastExp </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0af50585955eb14c60bb286297fabab2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastExp2 </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9e6219327b7a33077dbec7620d981fff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastExp2 </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae1bdc97b7f96a600e29c753f1cd4388a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLog </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga789abcbc34d08008d2f5a4547dd6e5e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastLog </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>tangent</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common exp2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e98118685f6dc9e05fbb13dd5e5234e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLog2 </td>
- <td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabc46086fe6636b8be87f09e6c5d2bb58"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastLog2 </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common log2 function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5340e98a11fcbbd936ba6e983a154d50"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>binormal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>normal</em> </td>
</tr>
<tr>
<td></td>
@@ -262,55 +86,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
+<p>Return if a trihedron left handed or not. </p>
+<p>From GLM_GTX_handed_coordinate_space extension. </p>
</div>
</div>
-<a class="anchor" id="ga07b73976a9af4005945bc338b45d8466"></a>
+<a class="anchor" id="ga17cd83888de8755c0435c589fafd3603"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastPow </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::rightHanded </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>tangent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f2562db9c3e02ae76169c36b086c3f6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genTypeT glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">genTypeT </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>binormal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genTypeU </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>normal</em> </td>
</tr>
<tr>
<td></td>
@@ -320,27 +121,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga29924aea1aa11c5c504fb2d621221906"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastPow </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common pow function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00197.html" title="Fast but less accurate implementations of exponential based functions. ">GLM_GTX_fast_exponential</a> </dd></dl>
+<p>Return if a trihedron right handed or not. </p>
+<p>From GLM_GTX_handed_coordinate_space extension. </p>
</div>
</div>
diff --git a/doc/api/a00198.html b/doc/api/a00198.html
index 6a3f29e..1e42b2d 100644
--- a/doc/api/a00198.html
+++ b/doc/api/a00198.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_square_root</title>
+<title>0.9.8: GLM_GTX_hash</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,241 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_fast_square_root<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_hash<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaac333418d0c4e0cc6d3d219ed606c238">fastDistance</a> (genType x, genType y)</td></tr>
-<tr class="separator:gaac333418d0c4e0cc6d3d219ed606c238"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6d1ac559cd77d69119e30c3aca0e14b5">fastDistance</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga6d1ac559cd77d69119e30c3aca0e14b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga7f081b14d9c7035c8714eba5f7f75a8f">fastInverseSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga7f081b14d9c7035c8714eba5f7f75a8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga903878071f92e51e551791e584a171a1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga903878071f92e51e551791e584a171a1">fastInverseSqrt</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:ga903878071f92e51e551791e584a171a1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gafe697d6287719538346bbdf8b1367c59"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gafe697d6287719538346bbdf8b1367c59">fastLength</a> (genType x)</td></tr>
-<tr class="separator:gafe697d6287719538346bbdf8b1367c59"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gae28a3099cbd6404a4ea8ef22147ed7b0">fastLength</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gae28a3099cbd6404a4ea8ef22147ed7b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga3b02c1d6e0c754144e2f1e110bf9f16c">fastNormalize</a> (genType const &x)</td></tr>
-<tr class="separator:ga3b02c1d6e0c754144e2f1e110bf9f16c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#ga6c460e9414a50b2fc455c8f64c86cdc9">fastSqrt</a> (genType x)</td></tr>
-<tr class="separator:ga6c460e9414a50b2fc455c8f64c86cdc9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00198.html#gaad9f601bbc3faa04dda384e4c4e1592c">fastSqrt</a> (vecType< T, P > const &x)</td></tr>
-<tr class="separator:gaad9f601bbc3faa04dda384e4c4e1592c"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of square root based functions. </p>
-<ul>
-<li>Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956</li>
-</ul>
-<p><<a class="el" href="a00027.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_square_root.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaac333418d0c4e0cc6d3d219ed606c238"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastDistance </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common distance function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6d1ac559cd77d69119e30c3aca0e14b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastDistance </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common distance function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7f081b14d9c7035c8714eba5f7f75a8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastInverseSqrt </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common inversesqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga903878071f92e51e551791e584a171a1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastInverseSqrt </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common inversesqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafe697d6287719538346bbdf8b1367c59"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastLength </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common length function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae28a3099cbd6404a4ea8ef22147ed7b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastLength </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common length function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3b02c1d6e0c754144e2f1e110bf9f16c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastNormalize </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common normalize function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6c460e9414a50b2fc455c8f64c86cdc9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::fastSqrt </td>
- <td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common sqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaad9f601bbc3faa04dda384e4c4e1592c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::fastSqrt </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Faster than the common sqrt function but less accurate. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00198.html" title="Fast but less accurate implementations of square root based functions. ">GLM_GTX_fast_square_root</a> extension. </dd></dl>
-
-</div>
-</div>
+<p>Add std::hash support for glm types. </p>
+<p><<a class="el" href="a00043.html" title="GLM_GTX_hash ">glm/gtx/hash.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00199.html b/doc/api/a00199.html
index 198a85d..ce404c4 100644
--- a/doc/api/a00199.html
+++ b/doc/api/a00199.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_fast_trigonometry</title>
+<title>0.9.8: GLM_GTX_integer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,96 +37,114 @@
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_fast_trigonometry<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_integer<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
+<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga9721d63356e5d94fdc4b393a426ab26b">fastAcos</a> (T angle)</td></tr>
-<tr class="separator:ga9721d63356e5d94fdc4b393a426ab26b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga562cb62c51fbfe7fac7db0bce706b81f">fastAsin</a> (T angle)</td></tr>
-<tr class="separator:ga562cb62c51fbfe7fac7db0bce706b81f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c">fastAtan</a> (T y, T x)</td></tr>
-<tr class="separator:ga8d197c6ef564f5e5d59af3b3f8adcc2c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gae25de86a968490ff56856fa425ec9d30"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gae25de86a968490ff56856fa425ec9d30">fastAtan</a> (T angle)</td></tr>
-<tr class="separator:gae25de86a968490ff56856fa425ec9d30"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gab34c8b45c23c0165a64dcecfcc3b302a">fastCos</a> (T angle)</td></tr>
-<tr class="separator:gab34c8b45c23c0165a64dcecfcc3b302a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga0aab3257bb3b628d10a1e0483e2c6915">fastSin</a> (T angle)</td></tr>
-<tr class="separator:ga0aab3257bb3b628d10a1e0483e2c6915"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#gaf29b9c1101a10007b4f79ee89df27ba2">fastTan</a> (T angle)</td></tr>
-<tr class="separator:gaf29b9c1101a10007b4f79ee89df27ba2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga069527c6dbd64f53435b8ebc4878b473"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga069527c6dbd64f53435b8ebc4878b473">wrapAngle</a> (T angle)</td></tr>
-<tr class="separator:ga069527c6dbd64f53435b8ebc4878b473"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00199.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &x)</td></tr>
+<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
+<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
+<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
+<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
+<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
+<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
+<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
+<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00199.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
+<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Fast but less accurate implementations of trigonometric functions. </p>
-<p><<a class="el" href="a00028.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/fast_trigonometry.hpp</a>> need to be included to use these functionalities. </p>
+<p>Add support for integer for core functions. </p>
+<p><<a class="el" href="a00045.html" title="GLM_GTX_integer ">glm/gtx/integer.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef signed int sint</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32bit signed integer. </p>
+<p>From GLM_GTX_integer extension. </p>
+
+<p>Definition at line <a class="el" href="a00045_source.html#l00051">51</a> of file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
+
+</div>
+</div>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9721d63356e5d94fdc4b393a426ab26b"></a>
+<a class="anchor" id="ga8cbd3120905f398ec321b5d1836e08fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAcos </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::factorial </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common acos function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga562cb62c51fbfe7fac7db0bce706b81f"></a>
+<a class="anchor" id="ga7011b4e1c1e1ed492149b028feacc00e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAsin </td>
+ <td class="memname">GLM_FUNC_DECL unsigned int glm::floor_log2 </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">unsigned int </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common asin function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the floor log2 of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga8d197c6ef564f5e5d59af3b3f8adcc2c"></a>
+<a class="anchor" id="gaabfbb41531ab7ad8d06fc176edfba785"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td class="memname">GLM_FUNC_DECL int glm::mod </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em> </td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -136,102 +154,152 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common atan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Modulus. </p>
+<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gae25de86a968490ff56856fa425ec9d30"></a>
+<a class="anchor" id="ga63fc8d63e7da1706439233b386ba8b6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastAtan </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::mod </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common atan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Modulus. </p>
+<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gab34c8b45c23c0165a64dcecfcc3b302a"></a>
+<a class="anchor" id="ga78dff8bdb361bf0061194c93e003d189"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastCos </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::nlz </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common cos function but less accurate. </p>
-<p>From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the number of leading zeros. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga0aab3257bb3b628d10a1e0483e2c6915"></a>
+<a class="anchor" id="ga89c591b970882714bd1e89a4e2f249f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastSin </td>
+ <td class="memname">GLM_FUNC_DECL int glm::pow </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns x raised to the y power. </p>
+<p>From GLM_GTX_integer extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga998e5ee915d3769255519e2fbaa2bbf0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL uint glm::pow </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common sin function but less accurate. </p>
-<p>From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns x raised to the y power. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="gaf29b9c1101a10007b4f79ee89df27ba2"></a>
+<a class="anchor" id="ga7ce36693a75879ccd9bb10167cfa722d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastTan </td>
+ <td class="memname">GLM_FUNC_DECL int glm::sqrt </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Faster than the common tan function but less accurate. </p>
-<p>Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the positive square root of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
-<a class="anchor" id="ga069527c6dbd64f53435b8ebc4878b473"></a>
+<a class="anchor" id="ga1975d318978d6dacf78b6444fa5ed7bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::wrapAngle </td>
+ <td class="memname">GLM_FUNC_DECL uint glm::sqrt </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em></td><td>)</td>
+ <td class="paramtype"><a class="el" href="a00158.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. </p>
+<p>Returns the positive square root of x. </p>
+<p>From GLM_GTX_integer extension. </p>
</div>
</div>
diff --git a/doc/api/a00200.html b/doc/api/a00200.html
index eaecfa6..4458837 100644
--- a/doc/api/a00200.html
+++ b/doc/api/a00200.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_gradient_paint</title>
+<title>0.9.8: GLM_GTX_intersect</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,44 +39,286 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_gradient_paint<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_intersect<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacde26d5e0c4a1856467bded9dfad9040"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gacde26d5e0c4a1856467bded9dfad9040">linearGradient</a> (tvec2< T, P > const &Point0, tvec2< T, P > const &Point1, tvec2< T, P > const &Position)</td></tr>
-<tr class="separator:gacde26d5e0c4a1856467bded9dfad9040"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga166d43d567a4cf150579a92f69b0dc9f">radialGradient</a> (tvec2< T, P > const &Center, T const &Radius, tvec2< T, P > const &Focal, tvec2< T, P > const &Position)</td></tr>
-<tr class="separator:ga166d43d567a4cf150579a92f69b0dc9f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType & [...]
+<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</td></tr>
+<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</td></tr>
+<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDist [...]
+<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersect [...]
+<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00200.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</td></tr>
+<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Functions that return the color of procedural gradient for specific coordinates. </p>
-<p><<a class="el" href="a00041.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/gradient_paint.hpp</a>> need to be included to use these functionalities. </p>
+<p>Add intersection functions. </p>
+<p><<a class="el" href="a00047.html" title="GLM_GTX_intersect ">glm/gtx/intersect.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gacde26d5e0c4a1856467bded9dfad9040"></a>
+<a class="anchor" id="ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::linearGradient </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectLineSphere </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Point0</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>point0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Point1</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>point1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Position</em> </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type </td>
+ <td class="paramname"><em>sphereRadius</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionPosition1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionNormal1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionPosition2</em> = <code>genType()</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionNormal2</em> = <code>genType()</code> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a line and a sphere. </p>
+<p>From GLM_GTX_intersect extension </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9d29b9b3acb504d43986502f42740df4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectLineTriangle </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>position</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a line and a triangle. </p>
+<p>From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad3697a9700ea379739a667ea02573488"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRayPlane </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>planeOrig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>planeNormal</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type & </td>
+ <td class="paramname"><em>intersectionDistance</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection of a ray and a plane. </p>
+<p>Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac88f8cd84c4bcb5b947d56acbbcfa56e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>rayStarting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>rayNormalizedDirection</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const </td>
+ <td class="paramname"><em>sphereRadiusSquered</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type & </td>
+ <td class="paramname"><em>intersectionDistance</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the intersection distance of a ray and a sphere. </p>
+<p>The ray direction vector is unit length. From GLM_GTX_intersect extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad28c00515b823b579c608aafa1100c1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>rayStarting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>rayNormalizedDirection</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>sphereCenter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const typename genType::value_type </td>
+ <td class="paramname"><em>sphereRadius</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionPosition</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>intersectionNormal</em> </td>
</tr>
<tr>
<td></td>
@@ -86,38 +328,50 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a color from a linear gradient. </p>
-<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00200.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
+<p>Compute the intersection of a ray and a sphere. </p>
+<p>From GLM_GTX_intersect extension. </p>
</div>
</div>
-<a class="anchor" id="ga166d43d567a4cf150579a92f69b0dc9f"></a>
+<a class="anchor" id="gab16c1b47c10451e7604b51b39a7ef21d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::radialGradient </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::intersectRayTriangle </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Center</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>dir</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>Radius</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Focal</em>, </td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>vert2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>Position</em> </td>
+ <td class="paramtype">genType & </td>
+ <td class="paramname"><em>baryPosition</em> </td>
</tr>
<tr>
<td></td>
@@ -127,8 +381,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a color from a radial gradient. </p>
-<dl class="section see"><dt>See also</dt><dd>- <a class="el" href="a00200.html" title="Functions that return the color of procedural gradient for specific coordinates. ">GLM_GTX_gradient_paint</a> </dd></dl>
+<p>Compute the intersection of a ray and a triangle. </p>
+<p>From GLM_GTX_intersect extension. </p>
</div>
</div>
diff --git a/doc/api/a00201.html b/doc/api/a00201.html
index eaf37d3..bb9ca39 100644
--- a/doc/api/a00201.html
+++ b/doc/api/a00201.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_handed_coordinate_space</title>
+<title>0.9.8: GLM_GTX_io</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,96 +36,14 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_handed_coordinate_space<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_io<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga7425e0ebfe6a56919900a072ae1f8017">leftHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:ga7425e0ebfe6a56919900a072ae1f8017"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga17cd83888de8755c0435c589fafd3603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00201.html#ga17cd83888de8755c0435c589fafd3603">rightHanded</a> (tvec3< T, P > const &tangent, tvec3< T, P > const &binormal, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:ga17cd83888de8755c0435c589fafd3603"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>To know if a set of three basis vectors defines a right or left-handed coordinate system. </p>
-<p><glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7425e0ebfe6a56919900a072ae1f8017"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::leftHanded </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>tangent</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>binormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return if a trihedron left handed or not. </p>
-<p>From GLM_GTX_handed_coordinate_space extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga17cd83888de8755c0435c589fafd3603"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::rightHanded </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>tangent</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>binormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return if a trihedron right handed or not. </p>
-<p>From GLM_GTX_handed_coordinate_space extension. </p>
-
-</div>
-</div>
+<p>std::[w]ostream support for glm types </p>
+<p>std::[w]ostream support for glm types + precision/width/etc. manipulators based on howard hinnant's std::chrono io proposal [<a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html">http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html</a>]</p>
+<p><<a class="el" href="a00048.html" title="GLM_GTX_io ">glm/gtx/io.hpp</a>> needs to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00202.html b/doc/api/a00202.html
index 5ebc44a..f4066fd 100644
--- a/doc/api/a00202.html
+++ b/doc/api/a00202.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_hash</title>
+<title>0.9.8: GLM_GTX_log_base</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,85 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_hash<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_log_base<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Add std::hash support for glm types. </p>
-<p><<a class="el" href="a00043.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/hash.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga60a7b0a401da660869946b2b77c710c9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga60a7b0a401da660869946b2b77c710c9">log</a> (genType const &x, genType const &base)</td></tr>
+<tr class="separator:ga60a7b0a401da660869946b2b77c710c9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00202.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType< T, P > const &x, vecType< T, P > const &base)</td></tr>
+<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Logarithm for any base. </p>
+<p>base can be a vector or a scalar.</p>
+<p><<a class="el" href="a00049.html" title="GLM_GTX_log_base ">glm/gtx/log_base.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga60a7b0a401da660869946b2b77c710c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::log </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>base</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Logarithm for any base. </p>
+<p>From GLM_GTX_log_base. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1842004a127a9f3573764362ff639191"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sign </td>
+ <td>(</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>base</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Logarithm for any base. </p>
+<p>From GLM_GTX_log_base. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00203.html b/doc/api/a00203.html
index fae319a..b45c145 100644
--- a/doc/api/a00203.html
+++ b/doc/api/a00203.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_integer</title>
+<title>0.9.8: GLM_GTX_matrix_cross_product</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,269 +37,60 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_integer<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_cross_product<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memItemLeft" align="right" valign="top">typedef signed int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gada7e83fdfe943aba4f1d5bf80cb66f40">sint</a></td></tr>
-<tr class="separator:gada7e83fdfe943aba4f1d5bf80cb66f40"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga8cbd3120905f398ec321b5d1836e08fb">factorial</a> (genType const &x)</td></tr>
-<tr class="separator:ga8cbd3120905f398ec321b5d1836e08fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7011b4e1c1e1ed492149b028feacc00e">floor_log2</a> (unsigned int x)</td></tr>
-<tr class="separator:ga7011b4e1c1e1ed492149b028feacc00e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#gaabfbb41531ab7ad8d06fc176edfba785">mod</a> (int x, int y)</td></tr>
-<tr class="separator:gaabfbb41531ab7ad8d06fc176edfba785"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga63fc8d63e7da1706439233b386ba8b6f">mod</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga63fc8d63e7da1706439233b386ba8b6f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78dff8bdb361bf0061194c93e003d189"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga78dff8bdb361bf0061194c93e003d189">nlz</a> (uint x)</td></tr>
-<tr class="separator:ga78dff8bdb361bf0061194c93e003d189"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga89c591b970882714bd1e89a4e2f249f1"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga89c591b970882714bd1e89a4e2f249f1">pow</a> (int x, int y)</td></tr>
-<tr class="separator:ga89c591b970882714bd1e89a4e2f249f1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga998e5ee915d3769255519e2fbaa2bbf0">pow</a> (uint x, uint y)</td></tr>
-<tr class="separator:ga998e5ee915d3769255519e2fbaa2bbf0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga7ce36693a75879ccd9bb10167cfa722d">sqrt</a> (int x)</td></tr>
-<tr class="separator:ga7ce36693a75879ccd9bb10167cfa722d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint </td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html#ga1975d318978d6dacf78b6444fa5ed7bc">sqrt</a> (uint x)</td></tr>
-<tr class="separator:ga1975d318978d6dacf78b6444fa5ed7bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00203.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add support for integer for core functions. </p>
-<p><<a class="el" href="a00045.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/integer.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="gada7e83fdfe943aba4f1d5bf80cb66f40"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef signed int sint</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32bit signed integer. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-<p>Definition at line <a class="el" href="a00045_source.html#l00080">80</a> of file <a class="el" href="a00045_source.html">gtx/integer.hpp</a>.</p>
-
-</div>
-</div>
+<p>Build cross product matrices. </p>
+<p><<a class="el" href="a00062.html" title="GLM_GTX_matrix_cross_product ">glm/gtx/matrix_cross_product.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8cbd3120905f398ec321b5d1836e08fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::factorial </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7011b4e1c1e1ed492149b028feacc00e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL unsigned int glm::floor_log2 </td>
- <td>(</td>
- <td class="paramtype">unsigned int </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the floor log2 of x. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaabfbb41531ab7ad8d06fc176edfba785"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::mod </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga63fc8d63e7da1706439233b386ba8b6f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::mod </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Modulus. </p>
-<p>Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga78dff8bdb361bf0061194c93e003d189"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::nlz </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the number of leading zeros. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga89c591b970882714bd1e89a4e2f249f1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL int glm::pow </td>
- <td>(</td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the y power. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga998e5ee915d3769255519e2fbaa2bbf0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL uint glm::pow </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the y power. </p>
-<p>From GLM_GTX_integer extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7ce36693a75879ccd9bb10167cfa722d"></a>
+<a class="anchor" id="ga04385b2e3a93c78d116b51af2d8d708e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL int glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::matrixCross3 </td>
<td>(</td>
- <td class="paramtype">int </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of x. </p>
-<p>From GLM_GTX_integer extension. </p>
+<p>Build a cross product matrix. </p>
+<p>From GLM_GTX_matrix_cross_product extension. </p>
</div>
</div>
-<a class="anchor" id="ga1975d318978d6dacf78b6444fa5ed7bc"></a>
+<a class="anchor" id="ga2d46cc5253761c214aa5c782865156b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL uint glm::sqrt </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::matrixCross4 </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00164.html#ga91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the positive square root of x. </p>
-<p>From GLM_GTX_integer extension. </p>
+<p>Build a cross product matrix. </p>
+<p>From GLM_GTX_matrix_cross_product extension. </p>
</div>
</div>
diff --git a/doc/api/a00204.html b/doc/api/a00204.html
index 74f221f..1407f9a 100644
--- a/doc/api/a00204.html
+++ b/doc/api/a00204.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_intersect</title>
+<title>0.9.8: GLM_GTX_matrix_decompose</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,339 +39,59 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_intersect<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_decompose<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7">intersectLineSphere</a> (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType & [...]
-<tr class="separator:ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga9d29b9b3acb504d43986502f42740df4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga9d29b9b3acb504d43986502f42740df4">intersectLineTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)</td></tr>
-<tr class="separator:ga9d29b9b3acb504d43986502f42740df4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad3697a9700ea379739a667ea02573488"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad3697a9700ea379739a667ea02573488">intersectRayPlane</a> (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)</td></tr>
-<tr class="separator:gad3697a9700ea379739a667ea02573488"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gac88f8cd84c4bcb5b947d56acbbcfa56e">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDist [...]
-<tr class="separator:gac88f8cd84c4bcb5b947d56acbbcfa56e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gad28c00515b823b579c608aafa1100c1d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gad28c00515b823b579c608aafa1100c1d">intersectRaySphere</a> (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersect [...]
-<tr class="separator:gad28c00515b823b579c608aafa1100c1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#gab16c1b47c10451e7604b51b39a7ef21d">intersectRayTriangle</a> (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)</td></tr>
-<tr class="separator:gab16c1b47c10451e7604b51b39a7ef21d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00204.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)< [...]
+<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add intersection functions. </p>
-<p><<a class="el" href="a00047.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/intersect.hpp</a>> need to be included to use these functionalities. </p>
+<p>Decomposes a model matrix to translations, rotation and scale components. </p>
+<p><<a class="el" href="a00063.html" title="GLM_GTX_matrix_decompose ">glm/gtx/matrix_decompose.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9c68139f3d8a4f3d7fe45f9dbc0de5b7"></a>
+<a class="anchor" id="ga0f1245817507156b337798a253577c8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectLineSphere </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::decompose </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>point0</em>, </td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>modelMatrix</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>point1</em>, </td>
+ <td class="paramtype">tvec3< T, P > & </td>
+ <td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>sphereCenter</em>, </td>
+ <td class="paramtype">tquat< T, P > & </td>
+ <td class="paramname"><em>orientation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type </td>
- <td class="paramname"><em>sphereRadius</em>, </td>
+ <td class="paramtype">tvec3< T, P > & </td>
+ <td class="paramname"><em>translation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionPosition1</em>, </td>
+ <td class="paramtype">tvec3< T, P > & </td>
+ <td class="paramname"><em>skew</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionNormal1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionPosition2</em> = <code>genType()</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionNormal2</em> = <code>genType()</code> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a line and a sphere. </p>
-<p>From GLM_GTX_intersect extension </p>
-
-</div>
-</div>
-<a class="anchor" id="ga9d29b9b3acb504d43986502f42740df4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectLineTriangle </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>orig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>dir</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>position</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a line and a triangle. </p>
-<p>From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gad3697a9700ea379739a667ea02573488"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRayPlane </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>orig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>dir</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>planeOrig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>planeNormal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type & </td>
- <td class="paramname"><em>intersectionDistance</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a ray and a plane. </p>
-<p>Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac88f8cd84c4bcb5b947d56acbbcfa56e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>rayStarting</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>rayNormalizedDirection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>sphereCenter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type const </td>
- <td class="paramname"><em>sphereRadiusSquered</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">typename genType::value_type & </td>
- <td class="paramname"><em>intersectionDistance</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection distance of a ray and a sphere. </p>
-<p>The ray direction vector is unit length. From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gad28c00515b823b579c608aafa1100c1d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRaySphere </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>rayStarting</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>rayNormalizedDirection</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>sphereCenter</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const typename genType::value_type </td>
- <td class="paramname"><em>sphereRadius</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionPosition</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>intersectionNormal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Compute the intersection of a ray and a sphere. </p>
-<p>From GLM_GTX_intersect extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gab16c1b47c10451e7604b51b39a7ef21d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::intersectRayTriangle </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>orig</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>dir</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>vert2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">genType & </td>
- <td class="paramname"><em>baryPosition</em> </td>
+ <td class="paramtype">tvec4< T, P > & </td>
+ <td class="paramname"><em>perspective</em> </td>
</tr>
<tr>
<td></td>
@@ -381,8 +101,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute the intersection of a ray and a triangle. </p>
-<p>From GLM_GTX_intersect extension. </p>
+<p>Decomposes a model matrix to translations, rotation and scale components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00204.html" title="Decomposes a model matrix to translations, rotation and scale components. ">GLM_GTX_matrix_decompose</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00205.html b/doc/api/a00205.html
index 65d7f92..78ba95e 100644
--- a/doc/api/a00205.html
+++ b/doc/api/a00205.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_io</title>
+<title>0.9.8: GLM_GTX_matrix_interpolation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,14 +36,150 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_io<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_interpolation<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
+<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
+<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
+<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00205.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
+<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>std::[w]ostream support for glm types </p>
-<p>std::[w]ostream support for glm types + precision/width/etc. manipulators based on howard hinnant's std::chrono io proposal [<a href="http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html">http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html</a>]</p>
-<p><<a class="el" href="a00055.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/io.hpp</a>> needs to be included to use these functionalities. </p>
+<p>Allows to directly interpolate two exiciting matrices. </p>
+<p><<a class="el" href="a00065.html" title="GLM_GTX_matrix_interpolation ">glm/gtx/matrix_interpolation.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga9aef292eb5f29bdbb58a53ef4281af92"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL void glm::axisAngle </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>mat</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > & </td>
+ <td class="paramname"><em>axis</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T & </td>
+ <td class="paramname"><em>angle</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the axis and angle of the rotation from a matrix. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga82d4bc058e9628cb2ea1d4e117a0cf39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::axisAngleMatrix </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const </td>
+ <td class="paramname"><em>angle</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a matrix from axis and angle. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b8170aa4cf43caf81400696ebb38afe"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::extractMatrixRotation </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>mat</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extracts the rotation part of a matrix. </p>
+<p>From GLM_GTX_matrix_interpolation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga45099a92c5c704503565619ac2bcd5c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::interpolate </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const </td>
+ <td class="paramname"><em>delta</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a interpolation of 4 * 4 matrixes. </p>
+<p>From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results. </p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00206.html b/doc/api/a00206.html
index e7500b0..a801a7c 100644
--- a/doc/api/a00206.html
+++ b/doc/api/a00206.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_log_base</title>
+<title>0.9.8: GLM_GTX_matrix_major_storage</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,39 +39,68 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_log_base<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_major_storage<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3e5bcabee78a977e3d7d1bf352b9ea9f">log</a> (genType x, genType base)</td></tr>
-<tr class="separator:ga3e5bcabee78a977e3d7d1bf352b9ea9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga1842004a127a9f3573764362ff639191"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga1842004a127a9f3573764362ff639191">sign</a> (vecType< T, P > const &x, vecType< T, P > const &base)</td></tr>
-<tr class="separator:ga1842004a127a9f3573764362ff639191"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
+<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
+<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
+<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
+<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
+<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
+<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
+<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00206.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
+<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Logarithm for any base. </p>
-<p>base can be a vector or a scalar.</p>
-<p><<a class="el" href="a00056.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/log_base.hpp</a>> need to be included to use these functionalities. </p>
+<p>Build matrices with specific matrix order, row or column. </p>
+<p><<a class="el" href="a00067.html" title="GLM_GTX_matrix_major_storage ">glm/gtx/matrix_major_storage.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga3e5bcabee78a977e3d7d1bf352b9ea9f"></a>
+<a class="anchor" id="ga599fff4f1c65912b256a82138ebcca37"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::log </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 </td>
<td>(</td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType </td>
- <td class="paramname"><em>base</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
@@ -81,26 +110,159 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Logarithm for any base. </p>
-<p>From GLM_GTX_log_base. </p>
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
</div>
</div>
-<a class="anchor" id="ga1842004a127a9f3573764362ff639191"></a>
+<a class="anchor" id="ga5cfd25de9d5b4c6a825085f38ddfeff7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType<T, P> glm::sign </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tmat2x2< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3a55e2948193e91733e434e7cc3c1540"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v3</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa93f3dcc47ced18e5db4a853363d9386"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2829de096bb67ab5cd670958f3d402b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v4</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from column vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7592acfd27da055e2d7c39564cf8803d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a column major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0c7f4d56a85865f0002127119ab7d551"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>base</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
@@ -110,8 +272,141 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Logarithm for any base. </p>
-<p>From GLM_GTX_log_base. </p>
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga42a006aa66198452bd3c89415f892196"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaba4de9afc4e65ec8ea0403e7cba3fb9f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v3</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga38537061135b55e7a053926ca55e6e20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3ce8f2a78fb2f15bf28151ee128b0ae8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v4</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from row vectors. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga85771a88c114a088a0414bcfce55e729"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a row major matrix from other matrix. </p>
+<p>From GLM_GTX_matrix_major_storage extension. </p>
</div>
</div>
diff --git a/doc/api/a00207.html b/doc/api/a00207.html
index 15d1490..3c41c6e 100644
--- a/doc/api/a00207.html
+++ b/doc/api/a00207.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_cross_product</title>
+<title>0.9.8: GLM_GTX_matrix_operation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,58 +39,212 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_cross_product<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_operation<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga04385b2e3a93c78d116b51af2d8d708e">matrixCross3</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga04385b2e3a93c78d116b51af2d8d708e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2d46cc5253761c214aa5c782865156b1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga2d46cc5253761c214aa5c782865156b1">matrixCross4</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga2d46cc5253761c214aa5c782865156b1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00207.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4< T, P > const &v)</td></tr>
+<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build cross product matrices. </p>
-<p><<a class="el" href="a00069.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_cross_product.hpp</a>> need to be included to use these functionalities. </p>
+<p>Build diagonal matrices from vectors. </p>
+<p><<a class="el" href="a00068.html" title="GLM_GTX_matrix_operation ">glm/gtx/matrix_operation.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga04385b2e3a93c78d116b51af2d8d708e"></a>
+<a class="anchor" id="ga01dc503262dba9c457113d131fc8c024"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::matrixCross3 </td>
+ <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::diagonal2x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga763817f07d6a94b722a48adfa87a35db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x3<T, P> glm::diagonal2x3 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga49b37c819cf6dd8e35112ed1a13d45a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat2x4<T, P> glm::diagonal2x4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga586e1ced91fd8a7c414186a200f13532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x2<T, P> glm::diagonal3x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8e817dba22f2305cdebae07bbbe0360c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::diagonal3x3 </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae3f85af86c18c80f2acbe3223feb8e81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x4<T, P> glm::diagonal3x4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga70cc5632aa9f41e7cf0b81fee6f2bfe6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x2<T, P> glm::diagonal4x2 </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a cross product matrix. </p>
-<p>From GLM_GTX_matrix_cross_product extension. </p>
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
</div>
</div>
-<a class="anchor" id="ga2d46cc5253761c214aa5c782865156b1"></a>
+<a class="anchor" id="ga4242ea5681f81539e0c5b54fadcd9ddf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::matrixCross4 </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x3<T, P> glm::diagonal4x3 </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gade576e044d8e52f343166f665589d782"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::diagonal4x4 </td>
+ <td>(</td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a cross product matrix. </p>
-<p>From GLM_GTX_matrix_cross_product extension. </p>
+<p>Build a diagonal matrix. </p>
+<p>From GLM_GTX_matrix_operation extension. </p>
</div>
</div>
diff --git a/doc/api/a00208.html b/doc/api/a00208.html
index 4f98f31..09008f7 100644
--- a/doc/api/a00208.html
+++ b/doc/api/a00208.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_decompose</title>
+<title>0.9.8: GLM_GTX_matrix_query</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,59 +39,259 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_decompose<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_query<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0f1245817507156b337798a253577c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga0f1245817507156b337798a253577c8b">decompose</a> (tmat4x4< T, P > const &modelMatrix, tvec3< T, P > &scale, tquat< T, P > &orientation, tvec3< T, P > &translation, tvec3< T, P > &skew, tvec4< T, P > &perspective)< [...]
-<tr class="separator:ga0f1245817507156b337798a253577c8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
+<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00208.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
+<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Decomposes a model matrix to translations, rotation and scale components. </p>
-<p><glm/gtx/decomposition.hpp> need to be included to use these functionalities. </p>
+<p>Query to evaluate matrix properties. </p>
+<p><<a class="el" href="a00069.html" title="GLM_GTX_matrix_query ">glm/gtx/matrix_query.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga0f1245817507156b337798a253577c8b"></a>
+<a class="anchor" id="gafc1ce12c738b8c5d007179e615609330"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::decompose </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::isIdentity </td>
+ <td>(</td>
+ <td class="paramtype">matType< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is an identity matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga11a8d5cdb36496b85f61e4f5f7f2602c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga351bcc8d485d329b78cfa875e084964d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga934b673ec0e16d79eca0ca9dbb5d6d8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
<td>(</td>
<td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>modelMatrix</em>, </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > & </td>
- <td class="paramname"><em>scale</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a normalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga37e535cbeaea383b8c1247b98875cd4b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat2x2< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat< T, P > & </td>
- <td class="paramname"><em>orientation</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac67a5c7e029a84b74b02ac9599b8972d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > & </td>
- <td class="paramname"><em>translation</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga326de496972051413c7b44b85fc9cb6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > & </td>
- <td class="paramname"><em>skew</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return whether a matrix is a null matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab2cb5d23df77b4e4e63ad2965acd31b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL bool glm::isOrthogonal </td>
+ <td>(</td>
+ <td class="paramtype">matType< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec4< T, P > & </td>
- <td class="paramname"><em>perspective</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -101,8 +301,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Decomposes a model matrix to translations, rotation and scale components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00208.html" title="Decomposes a model matrix to translations, rotation and scale components. ">GLM_GTX_matrix_decompose</a> </dd></dl>
+<p>Return whether a matrix is an orthonormalized matrix. </p>
+<p>From GLM_GTX_matrix_query extension. </p>
</div>
</div>
diff --git a/doc/api/a00209.html b/doc/api/a00209.html
index ff3c64a..1b7033e 100644
--- a/doc/api/a00209.html
+++ b/doc/api/a00209.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_interpolation</title>
+<title>0.9.8: GLM_GTX_matrix_transform_2d</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,49 +39,46 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_interpolation<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_matrix_transform_2d<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga9aef292eb5f29bdbb58a53ef4281af92">axisAngle</a> (tmat4x4< T, P > const &mat, tvec3< T, P > &axis, T &angle)</td></tr>
-<tr class="separator:ga9aef292eb5f29bdbb58a53ef4281af92"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga82d4bc058e9628cb2ea1d4e117a0cf39">axisAngleMatrix</a> (tvec3< T, P > const &axis, T const angle)</td></tr>
-<tr class="separator:ga82d4bc058e9628cb2ea1d4e117a0cf39"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga6b8170aa4cf43caf81400696ebb38afe">extractMatrixRotation</a> (tmat4x4< T, P > const &mat)</td></tr>
-<tr class="separator:ga6b8170aa4cf43caf81400696ebb38afe"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga45099a92c5c704503565619ac2bcd5c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga45099a92c5c704503565619ac2bcd5c6">interpolate</a> (tmat4x4< T, P > const &m1, tmat4x4< T, P > const &m2, T const delta)</td></tr>
-<tr class="separator:ga45099a92c5c704503565619ac2bcd5c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3< T, P > const &m, T angle)</td></tr>
+<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3< T, P > const &m, T y)</td></tr>
+<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3< T, P > const &m, T x)</td></tr>
+<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00209.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
+<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Allows to directly interpolate two exiciting matrices. </p>
-<p><<a class="el" href="a00072.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_interpolation.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defines functions that generate common 2d transformation matrices. </p>
+<p><<a class="el" href="a00071.html" title="GLM_GTX_matrix_transform_2d ">glm/gtx/matrix_transform_2d.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga9aef292eb5f29bdbb58a53ef4281af92"></a>
+<a class="anchor" id="gab4f798c6048db91a6d0686812fd54022"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL void glm::axisAngle </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::rotate </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>mat</em>, </td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > & </td>
- <td class="paramname"><em>axis</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T & </td>
+ <td class="paramtype">T </td>
<td class="paramname"><em>angle</em> </td>
</tr>
<tr>
@@ -92,26 +89,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Get the axis and angle of the rotation from a matrix. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds a rotation 3 * 3 matrix created from an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga82d4bc058e9628cb2ea1d4e117a0cf39"></a>
+<a class="anchor" id="ga5a608eaf1fdfd0a349a30181cb6a0240"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::axisAngleMatrix </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::scale </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em>, </td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const </td>
- <td class="paramname"><em>angle</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
</tr>
<tr>
<td></td>
@@ -121,51 +124,102 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build a matrix from axis and angle. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds a scale 3 * 3 matrix created from a vector of 2 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a scale vector. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga6b8170aa4cf43caf81400696ebb38afe"></a>
+<a class="anchor" id="ga3da9ea234fdb2a96c75a97a18c903489"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::extractMatrixRotation </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearX </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>mat</em></td><td>)</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Extracts the rotation part of a matrix. </p>
-<p>From GLM_GTX_matrix_interpolation extension. </p>
+<p>Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">y</td><td>Shear factor. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
-<a class="anchor" id="ga45099a92c5c704503565619ac2bcd5c6"></a>
+<a class="anchor" id="ga93bb348e7d251bcc2c17bfc11bd82e91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::interpolate </td>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearY </td>
<td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m1</em>, </td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m2</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">x</td><td>Shear factor. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22b5e806a6d2e2be54ebd29100d11c51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const </td>
- <td class="paramname"><em>delta</em> </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
</tr>
<tr>
<td></td>
@@ -175,8 +229,14 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build a interpolation of 4 * 4 matrixes. </p>
-<p>From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results. </p>
+<p>Builds a translation 3 * 3 matrix created from a vector of 2 components. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
+ <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
+ </table>
+ </dd>
+</dl>
</div>
</div>
diff --git a/doc/api/a00210.html b/doc/api/a00210.html
index 7400286..2a4fdab 100644
--- a/doc/api/a00210.html
+++ b/doc/api/a00210.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_major_storage</title>
+<title>0.9.8: GLM_GTX_mixed_producte</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,377 +39,20 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_major_storage<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_mixed_producte<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga599fff4f1c65912b256a82138ebcca37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga599fff4f1c65912b256a82138ebcca37">colMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
-<tr class="separator:ga599fff4f1c65912b256a82138ebcca37"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga5cfd25de9d5b4c6a825085f38ddfeff7">colMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
-<tr class="separator:ga5cfd25de9d5b4c6a825085f38ddfeff7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3a55e2948193e91733e434e7cc3c1540"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3a55e2948193e91733e434e7cc3c1540">colMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:ga3a55e2948193e91733e434e7cc3c1540"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaa93f3dcc47ced18e5db4a853363d9386">colMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:gaa93f3dcc47ced18e5db4a853363d9386"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2829de096bb67ab5cd670958f3d402b6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga2829de096bb67ab5cd670958f3d402b6">colMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
-<tr class="separator:ga2829de096bb67ab5cd670958f3d402b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7592acfd27da055e2d7c39564cf8803d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga7592acfd27da055e2d7c39564cf8803d">colMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
-<tr class="separator:ga7592acfd27da055e2d7c39564cf8803d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0c7f4d56a85865f0002127119ab7d551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga0c7f4d56a85865f0002127119ab7d551">rowMajor2</a> (tvec2< T, P > const &v1, tvec2< T, P > const &v2)</td></tr>
-<tr class="separator:ga0c7f4d56a85865f0002127119ab7d551"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga42a006aa66198452bd3c89415f892196"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga42a006aa66198452bd3c89415f892196">rowMajor2</a> (tmat2x2< T, P > const &m)</td></tr>
-<tr class="separator:ga42a006aa66198452bd3c89415f892196"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaba4de9afc4e65ec8ea0403e7cba3fb9f">rowMajor3</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:gaba4de9afc4e65ec8ea0403e7cba3fb9f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga38537061135b55e7a053926ca55e6e20"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga38537061135b55e7a053926ca55e6e20">rowMajor3</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:ga38537061135b55e7a053926ca55e6e20"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga3ce8f2a78fb2f15bf28151ee128b0ae8">rowMajor4</a> (tvec4< T, P > const &v1, tvec4< T, P > const &v2, tvec4< T, P > const &v3, tvec4< T, P > const &v4)</td></tr>
-<tr class="separator:ga3ce8f2a78fb2f15bf28151ee128b0ae8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga85771a88c114a088a0414bcfce55e729"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#ga85771a88c114a088a0414bcfce55e729">rowMajor4</a> (tmat4x4< T, P > const &m)</td></tr>
-<tr class="separator:ga85771a88c114a088a0414bcfce55e729"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
+template<typename T , precision P> </td></tr>
+<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00210.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
+<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build matrices with specific matrix order, row or column. </p>
-<p><<a class="el" href="a00074.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_major_storage.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga599fff4f1c65912b256a82138ebcca37"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v2</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga5cfd25de9d5b4c6a825085f38ddfeff7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::colMajor2 </td>
- <td>(</td>
- <td class="paramtype">tmat2x2< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga3a55e2948193e91733e434e7cc3c1540"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaa93f3dcc47ced18e5db4a853363d9386"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::colMajor3 </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga2829de096bb67ab5cd670958f3d402b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v4</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from column vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga7592acfd27da055e2d7c39564cf8803d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::colMajor4 </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a column major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c7f4d56a85865f0002127119ab7d551"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v2</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga42a006aa66198452bd3c89415f892196"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::rowMajor2 </td>
- <td>(</td>
- <td class="paramtype">tmat2x2< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaba4de9afc4e65ec8ea0403e7cba3fb9f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v3</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga38537061135b55e7a053926ca55e6e20"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::rowMajor3 </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga3ce8f2a78fb2f15bf28151ee128b0ae8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v3</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v4</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from row vectors. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga85771a88c114a088a0414bcfce55e729"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rowMajor4 </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a row major matrix from other matrix. </p>
-<p>From GLM_GTX_matrix_major_storage extension. </p>
-
-</div>
-</div>
+<p>Mixed product of 3 vectors. </p>
+<p><<a class="el" href="a00072.html" title="GLM_GTX_mixed_producte ">glm/gtx/mixed_product.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00211.html b/doc/api/a00211.html
index c7a6665..d1dd03e 100644
--- a/doc/api/a00211.html
+++ b/doc/api/a00211.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_operation</title>
+<title>0.9.8: GLM_GTX_norm</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,212 +39,246 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_operation<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_norm<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga01dc503262dba9c457113d131fc8c024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga01dc503262dba9c457113d131fc8c024">diagonal2x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga01dc503262dba9c457113d131fc8c024"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga763817f07d6a94b722a48adfa87a35db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga763817f07d6a94b722a48adfa87a35db">diagonal2x3</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga763817f07d6a94b722a48adfa87a35db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat2x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga49b37c819cf6dd8e35112ed1a13d45a3">diagonal2x4</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga49b37c819cf6dd8e35112ed1a13d45a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga586e1ced91fd8a7c414186a200f13532"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga586e1ced91fd8a7c414186a200f13532">diagonal3x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga586e1ced91fd8a7c414186a200f13532"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga8e817dba22f2305cdebae07bbbe0360c">diagonal3x3</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga8e817dba22f2305cdebae07bbbe0360c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gae3f85af86c18c80f2acbe3223feb8e81">diagonal3x4</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:gae3f85af86c18c80f2acbe3223feb8e81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga70cc5632aa9f41e7cf0b81fee6f2bfe6">diagonal4x2</a> (tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga70cc5632aa9f41e7cf0b81fee6f2bfe6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga4242ea5681f81539e0c5b54fadcd9ddf">diagonal4x3</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga4242ea5681f81539e0c5b54fadcd9ddf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gade576e044d8e52f343166f665589d782"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gade576e044d8e52f343166f665589d782">diagonal4x4</a> (tvec4< T, P > const &v)</td></tr>
-<tr class="separator:gade576e044d8e52f343166f665589d782"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga647d2602008801d6ed78f9708eb439cc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga647d2602008801d6ed78f9708eb439cc">distance2</a> (vecType< T, P > const &p0, vecType< T, P > const &p1)</td></tr>
+<tr class="separator:ga647d2602008801d6ed78f9708eb439cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3< T, P > const &x)</td></tr>
+<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga6d326d62fd9b7f4f0a1b79e56492a7e4">length2</a> (vecType< T, P > const &x)</td></tr>
+<tr class="separator:ga6d326d62fd9b7f4f0a1b79e56492a7e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)</td></tr>
+<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00211.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3< T, P > const &x, unsigned int Depth)</td></tr>
+<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Build diagonal matrices from vectors. </p>
-<p><<a class="el" href="a00075.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_operation.hpp</a>> need to be included to use these functionalities. </p>
+<p>Various ways to compute vector norms. </p>
+<p><<a class="el" href="a00074.html" title="GLM_GTX_norm ">glm/gtx/norm.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga01dc503262dba9c457113d131fc8c024"></a>
+<a class="anchor" id="ga647d2602008801d6ed78f9708eb439cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x2<T, P> glm::diagonal2x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::distance2 </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>p0</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>p1</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga763817f07d6a94b722a48adfa87a35db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x3<T, P> glm::diagonal2x3 </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga49b37c819cf6dd8e35112ed1a13d45a3"></a>
+<a class="anchor" id="gaebe5a39b06e262e615622129f37da4f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat2x4<T, P> glm::diagonal2x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L1 norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga586e1ced91fd8a7c414186a200f13532"></a>
+<a class="anchor" id="ga6d5964f09cdb43803496a5ee3ced71cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x2<T, P> glm::diagonal3x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L1 norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga8e817dba22f2305cdebae07bbbe0360c"></a>
+<a class="anchor" id="gafa6fbbc99cd44d81bf030e74eaf7ad64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::diagonal3x3 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L2 norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="gae3f85af86c18c80f2acbe3223feb8e81"></a>
+<a class="anchor" id="ga0a8cb8a0ce88d1d977de23209bf04610"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x4<T, P> glm::diagonal3x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L2 norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga70cc5632aa9f41e7cf0b81fee6f2bfe6"></a>
+<a class="anchor" id="ga6d326d62fd9b7f4f0a1b79e56492a7e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x2<T, P> glm::diagonal4x2 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
<td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the squared length of x. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="ga4242ea5681f81539e0c5b54fadcd9ddf"></a>
+<a class="anchor" id="ga932bb0854e5c5a6ab5a14b023c451ca7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x3<T, P> glm::diagonal4x3 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int </td>
+ <td class="paramname"><em>Depth</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L norm between x and y. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
-<a class="anchor" id="gade576e044d8e52f343166f665589d782"></a>
+<a class="anchor" id="gaab931b0d1acfe2f9c1cb78311edf24fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::diagonal4x4 </td>
+ <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
<td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">unsigned int </td>
+ <td class="paramname"><em>Depth</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Build a diagonal matrix. </p>
-<p>From GLM_GTX_matrix_operation extension. </p>
+<p>Returns the L norm of v. </p>
+<p>From GLM_GTX_norm extension. </p>
</div>
</div>
diff --git a/doc/api/a00212.html b/doc/api/a00212.html
index c9455a2..c2912ed 100644
--- a/doc/api/a00212.html
+++ b/doc/api/a00212.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_query</title>
+<title>0.9.8: GLM_GTX_normal</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,259 +39,41 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_query<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_normal<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:gafc1ce12c738b8c5d007179e615609330"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gafc1ce12c738b8c5d007179e615609330">isIdentity</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gafc1ce12c738b8c5d007179e615609330"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga11a8d5cdb36496b85f61e4f5f7f2602c">isNormalized</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga11a8d5cdb36496b85f61e4f5f7f2602c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga351bcc8d485d329b78cfa875e084964d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga351bcc8d485d329b78cfa875e084964d">isNormalized</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga351bcc8d485d329b78cfa875e084964d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga934b673ec0e16d79eca0ca9dbb5d6d8b">isNormalized</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga934b673ec0e16d79eca0ca9dbb5d6d8b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga37e535cbeaea383b8c1247b98875cd4b">isNull</a> (tmat2x2< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga37e535cbeaea383b8c1247b98875cd4b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gac67a5c7e029a84b74b02ac9599b8972d">isNull</a> (tmat3x3< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gac67a5c7e029a84b74b02ac9599b8972d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga326de496972051413c7b44b85fc9cb6e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga326de496972051413c7b44b85fc9cb6e">isNull</a> (tmat4x4< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:ga326de496972051413c7b44b85fc9cb6e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class matType> </td></tr>
-<tr class="memitem:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#gab2cb5d23df77b4e4e63ad2965acd31b3">isOrthogonal</a> (matType< T, P > const &m, T const &epsilon)</td></tr>
-<tr class="separator:gab2cb5d23df77b4e4e63ad2965acd31b3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00212.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</td></tr>
+<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Query to evaluate matrix properties. </p>
-<p><<a class="el" href="a00076.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_query.hpp</a>> need to be included to use these functionalities. </p>
+<p>Compute the normal of a triangle. </p>
+<p><<a class="el" href="a00075.html" title="GLM_GTX_normal ">glm/gtx/normal.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gafc1ce12c738b8c5d007179e615609330"></a>
+<a class="anchor" id="ga7842850bcda582f1756883e3ed950e14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isIdentity </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::triangleNormal </td>
<td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is an identity matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga11a8d5cdb36496b85f61e4f5f7f2602c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat2x2< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga351bcc8d485d329b78cfa875e084964d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga934b673ec0e16d79eca0ca9dbb5d6d8b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a normalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga37e535cbeaea383b8c1247b98875cd4b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">tmat2x2< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac67a5c7e029a84b74b02ac9599b8972d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga326de496972051413c7b44b85fc9cb6e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Return whether a matrix is a null matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gab2cb5d23df77b4e4e63ad2965acd31b3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isOrthogonal </td>
- <td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>p3</em> </td>
</tr>
<tr>
<td></td>
@@ -301,8 +83,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return whether a matrix is an orthonormalized matrix. </p>
-<p>From GLM_GTX_matrix_query extension. </p>
+<p>Computes triangle normal from triangle points. </p>
+<p>From GLM_GTX_normal extension. </p>
</div>
</div>
diff --git a/doc/api/a00213.html b/doc/api/a00213.html
index 730d51f..b0252fc 100644
--- a/doc/api/a00213.html
+++ b/doc/api/a00213.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_matrix_transform_2d</title>
+<title>0.9.8: GLM_GTX_normalize_dot</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,116 +39,37 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_matrix_transform_2d<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_normalize_dot<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gab4f798c6048db91a6d0686812fd54022"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gab4f798c6048db91a6d0686812fd54022">rotate</a> (tmat3x3< T, P > const &m, T angle)</td></tr>
-<tr class="separator:gab4f798c6048db91a6d0686812fd54022"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga5a608eaf1fdfd0a349a30181cb6a0240">scale</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga5a608eaf1fdfd0a349a30181cb6a0240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga3da9ea234fdb2a96c75a97a18c903489">shearX</a> (tmat3x3< T, P > const &m, T y)</td></tr>
-<tr class="separator:ga3da9ea234fdb2a96c75a97a18c903489"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga93bb348e7d251bcc2c17bfc11bd82e91">shearY</a> (tmat3x3< T, P > const &m, T x)</td></tr>
-<tr class="separator:ga93bb348e7d251bcc2c17bfc11bd82e91"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga22b5e806a6d2e2be54ebd29100d11c51">translate</a> (tmat3x3< T, P > const &m, tvec2< T, P > const &v)</td></tr>
-<tr class="separator:ga22b5e806a6d2e2be54ebd29100d11c51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00213.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
+<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines functions that generate common 2d transformation matrices. </p>
-<p><<a class="el" href="a00078.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/matrix_transform_2d.hpp</a>> need to be included to use these functionalities. </p>
+<p>Dot product of vectors that need to be normalize with a single square root. </p>
+<p><glm/gtx/normalized_dot.hpp> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab4f798c6048db91a6d0686812fd54022"></a>
+<a class="anchor" id="ga8593b21bc2fe22184f01d5e08b5a2024"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL T glm::fastNormalizeDot </td>
<td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a rotation 3 * 3 matrix created from an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5a608eaf1fdfd0a349a30181cb6a0240"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::scale </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a scale 3 * 3 matrix created from a vector of 2 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a scale vector. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3da9ea234fdb2a96c75a97a18c903489"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearX </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
+ <td class="paramtype">vecType< T, P > const & </td>
<td class="paramname"><em>y</em> </td>
</tr>
<tr>
@@ -159,67 +80,27 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">y</td><td>Shear factor. </td></tr>
- </table>
- </dd>
-</dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93bb348e7d251bcc2c17bfc11bd82e91"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::shearY </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">x</td><td>Shear factor. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Normalize parameters and returns the dot product of x and y. </p>
+<p>Faster that dot(fastNormalize(x), fastNormalize(y)).</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00213.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga22b5e806a6d2e2be54ebd29100d11c51"></a>
+<a class="anchor" id="gaffbc2f2cb15838de8886a68048f9004d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_QUALIFIER tmat3x3<T, P> glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL T glm::normalizeDot </td>
<td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -229,14 +110,9 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Builds a translation 3 * 3 matrix created from a vector of 2 components. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this translation matrix. </td></tr>
- <tr><td class="paramname">v</td><td>Coordinates of a translation vector. </td></tr>
- </table>
- </dd>
-</dl>
+<p>Normalize parameters and returns the dot product of x and y. </p>
+<p>It's faster that dot(normalize(x), normalize(y)).</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00213.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
</div>
</div>
diff --git a/doc/api/a00214.html b/doc/api/a00214.html
index 79c2e31..4daafef 100644
--- a/doc/api/a00214.html
+++ b/doc/api/a00214.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_mixed_producte</title>
+<title>0.9.8: GLM_GTX_number_precision</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,22 +37,48 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_mixed_producte<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_number_precision<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaaee4cf80d69cb86de80f12af88b3c3af"></a>
-template<typename T , precision P> </td></tr>
-<tr class="memitem:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00214.html#gaaee4cf80d69cb86de80f12af88b3c3af">mixedProduct</a> (tvec3< T, P > const &v1, tvec3< T, P > const &v2, tvec3< T, P > const &v3)</td></tr>
-<tr class="separator:gaaee4cf80d69cb86de80f12af88b3c3af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
+<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
+<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
+typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
+<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
+<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
+<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
+typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
+<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
+typedef u16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
+<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
+typedef u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
+<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
+typedef u64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
+<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
+typedef u8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00214.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
+<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Mixed product of 3 vectors. </p>
-<p><<a class="el" href="a00079.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/mixed_product.hpp</a>> need to be included to use these functionalities. </p>
+<p>Defined size types. </p>
+<p><<a class="el" href="a00077.html" title="GLM_GTX_number_precision ">glm/gtx/number_precision.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00215.html b/doc/api/a00215.html
index a591df9..bb2c446 100644
--- a/doc/api/a00215.html
+++ b/doc/api/a00215.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_norm</title>
+<title>0.9.8: GLM_GTX_optimum_pow</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,226 +39,70 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_norm<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_optimum_pow<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga3544f6288d3bce2cf2a9f6ebe39e0557">distance2</a> (T const &p0, T const &p1)</td></tr>
-<tr class="separator:ga3544f6288d3bce2cf2a9f6ebe39e0557"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaec2d9df62436879b48207d39516f3788"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaec2d9df62436879b48207d39516f3788">distance2</a> (genType const &p0, genType const &p1)</td></tr>
-<tr class="separator:gaec2d9df62436879b48207d39516f3788"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaebe5a39b06e262e615622129f37da4f4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaebe5a39b06e262e615622129f37da4f4">l1Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gaebe5a39b06e262e615622129f37da4f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga6d5964f09cdb43803496a5ee3ced71cb">l1Norm</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga6d5964f09cdb43803496a5ee3ced71cb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gafa6fbbc99cd44d81bf030e74eaf7ad64">l2Norm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gafa6fbbc99cd44d81bf030e74eaf7ad64"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga0a8cb8a0ce88d1d977de23209bf04610">l2Norm</a> (tvec3< T, P > const &x)</td></tr>
-<tr class="separator:ga0a8cb8a0ce88d1d977de23209bf04610"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr class="memitem:ga08c670024cd230e22f8b853f185ff533"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga08c670024cd230e22f8b853f185ff533">length2</a> (T const &x)</td></tr>
-<tr class="separator:ga08c670024cd230e22f8b853f185ff533"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaa279ba7fdecbed3f9f2b60502b7ec8ca">length2</a> (genType const &x)</td></tr>
-<tr class="separator:gaa279ba7fdecbed3f9f2b60502b7ec8ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga932bb0854e5c5a6ab5a14b023c451ca7">lxNorm</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, unsigned int Depth)</td></tr>
-<tr class="separator:ga932bb0854e5c5a6ab5a14b023c451ca7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gaab931b0d1acfe2f9c1cb78311edf24fc">lxNorm</a> (tvec3< T, P > const &x, unsigned int Depth)</td></tr>
-<tr class="separator:gaab931b0d1acfe2f9c1cb78311edf24fc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &x)</td></tr>
+<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &x)</td></tr>
+<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00215.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &x)</td></tr>
+<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Various ways to compute vector norms. </p>
-<p><<a class="el" href="a00081.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/norm.hpp</a>> need to be included to use these functionalities. </p>
+<p>Integer exponentiation of power functions. </p>
+<p><<a class="el" href="a00078.html" title="GLM_GTX_optimum_pow ">glm/gtx/optimum_pow.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga3544f6288d3bce2cf2a9f6ebe39e0557"></a>
+<a class="anchor" id="ga19aaff3213bf23bdec3ef124ace237e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::distance2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow2 </td>
<td>(</td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>p0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>p1</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaec2d9df62436879b48207d39516f3788"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::distance2 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>p0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
<td class="paramtype">genType const & </td>
- <td class="paramname"><em>p1</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaebe5a39b06e262e615622129f37da4f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L1 norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga6d5964f09cdb43803496a5ee3ced71cb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l1Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L1 norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafa6fbbc99cd44d81bf030e74eaf7ad64"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L2 norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0a8cb8a0ce88d1d977de23209bf04610"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::l2Norm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the L2 norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 2. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga08c670024cd230e22f8b853f185ff533"></a>
+<a class="anchor" id="ga35689d03cd434d6ea819f1942d3bf82e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow3 </td>
<td>(</td>
- <td class="paramtype">T const & </td>
+ <td class="paramtype">genType const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the squared length of x. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 3. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa279ba7fdecbed3f9f2b60502b7ec8ca"></a>
+<a class="anchor" id="gacef0968763026e180e53e735007dbf5a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType::value_type glm::length2 </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow4 </td>
<td>(</td>
<td class="paramtype">genType const & </td>
<td class="paramname"><em>x</em></td><td>)</td>
@@ -267,72 +111,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns the squared length of x. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga932bb0854e5c5a6ab5a14b023c451ca7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int </td>
- <td class="paramname"><em>Depth</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L norm between x and y. </p>
-<p>From GLM_GTX_norm extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaab931b0d1acfe2f9c1cb78311edf24fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::lxNorm </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int </td>
- <td class="paramname"><em>Depth</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the L norm of v. </p>
-<p>From GLM_GTX_norm extension. </p>
+<p>Returns x raised to the power of 4. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00215.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00216.html b/doc/api/a00216.html
index 258018e..2d6e7df 100644
--- a/doc/api/a00216.html
+++ b/doc/api/a00216.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_normal</title>
+<title>0.9.8: GLM_GTX_orthonormalize</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,41 +39,57 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_normal<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_orthonormalize<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7842850bcda582f1756883e3ed950e14"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga7842850bcda582f1756883e3ed950e14">triangleNormal</a> (tvec3< T, P > const &p1, tvec3< T, P > const &p2, tvec3< T, P > const &p3)</td></tr>
-<tr class="separator:ga7842850bcda582f1756883e3ed950e14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3< T, P > const &m)</td></tr>
+<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00216.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
+<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Compute the normal of a triangle. </p>
-<p><<a class="el" href="a00082.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/normal.hpp</a>> need to be included to use these functionalities. </p>
+<p>Orthonormalize matrices. </p>
+<p><<a class="el" href="a00079.html" title="GLM_GTX_orthonormalize ">glm/gtx/orthonormalize.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7842850bcda582f1756883e3ed950e14"></a>
+<a class="anchor" id="ga23c4340b8f1559d259229b6d8bdc3f97"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::triangleNormal </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::orthonormalize </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>p1</em>, </td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the orthonormalized matrix of m. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00216.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7afff30d7323fdc7aed7f5a16a0c596"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::orthonormalize </td>
+ <td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>p2</em>, </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>p3</em> </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -83,8 +99,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Computes triangle normal from triangle points. </p>
-<p>From GLM_GTX_normal extension. </p>
+<p>Orthonormalizes x according y. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00216.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00217.html b/doc/api/a00217.html
index b1f2ab1..7463965 100644
--- a/doc/api/a00217.html
+++ b/doc/api/a00217.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_normalize_dot</title>
+<title>0.9.8: GLM_GTX_perpendicular</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,38 +39,35 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_normalize_dot<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_perpendicular<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga8593b21bc2fe22184f01d5e08b5a2024">fastNormalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:ga8593b21bc2fe22184f01d5e08b5a2024"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaffbc2f2cb15838de8886a68048f9004d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#gaffbc2f2cb15838de8886a68048f9004d">normalizeDot</a> (vecType< T, P > const &x, vecType< T, P > const &y)</td></tr>
-<tr class="separator:gaffbc2f2cb15838de8886a68048f9004d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00217.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &x, vecType const &Normal)</td></tr>
+<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Dot product of vectors that need to be normalize with a single square root. </p>
-<p><glm/gtx/normalized_dot.hpp> need to be included to use these functionalities. </p>
+<p>Perpendicular of a vector from other one. </p>
+<p><<a class="el" href="a00083.html" title="GLM_GTX_perpendicular ">glm/gtx/perpendicular.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8593b21bc2fe22184f01d5e08b5a2024"></a>
+<a class="anchor" id="ga41f8c73da9798a18e6b1e32f1e301f07"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL T glm::fastNormalizeDot </td>
+ <td class="memname">GLM_FUNC_DECL vecType glm::perp </td>
<td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramtype">vecType const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramtype">vecType const & </td>
+ <td class="paramname"><em>Normal</em> </td>
</tr>
<tr>
<td></td>
@@ -80,39 +77,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Normalize parameters and returns the dot product of x and y. </p>
-<p>Faster that dot(fastNormalize(x), fastNormalize(y)).</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00217.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaffbc2f2cb15838de8886a68048f9004d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::normalizeDot </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Normalize parameters and returns the dot product of x and y. </p>
-<p>It's faster that dot(normalize(x), normalize(y)).</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00217.html" title="Dot product of vectors that need to be normalize with a single square root. ">GLM_GTX_normalize_dot</a> extension. </dd></dl>
+<p>Projects x a perpendicular axis of Normal. </p>
+<p>From GLM_GTX_perpendicular extension. </p>
</div>
</div>
diff --git a/doc/api/a00218.html b/doc/api/a00218.html
index 9988de4..e333b1e 100644
--- a/doc/api/a00218.html
+++ b/doc/api/a00218.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_number_precision</title>
+<title>0.9.8: GLM_GTX_polar_coordinates</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,48 +37,63 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_number_precision<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_polar_coordinates<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga145ad477a2a3e152855511c3b52469a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga145ad477a2a3e152855511c3b52469a6"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga145ad477a2a3e152855511c3b52469a6">f32mat1</a></td></tr>
-<tr class="separator:ga145ad477a2a3e152855511c3b52469a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88c6a4dbfc380aa26e3adbbade36348"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gac88c6a4dbfc380aa26e3adbbade36348">f32mat1x1</a></td></tr>
-<tr class="separator:gac88c6a4dbfc380aa26e3adbbade36348"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f8d7348eb7ae059a84c118fdfeb943"></a>
-typedef f32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga07f8d7348eb7ae059a84c118fdfeb943">f32vec1</a></td></tr>
-<tr class="separator:ga07f8d7348eb7ae059a84c118fdfeb943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga59bfa589419b5265d01314fcecd33435"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59bfa589419b5265d01314fcecd33435"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga59bfa589419b5265d01314fcecd33435">f64mat1</a></td></tr>
-<tr class="separator:ga59bfa589419b5265d01314fcecd33435"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga448eeb08d0b7d8c43a8b292c981955fd"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga448eeb08d0b7d8c43a8b292c981955fd">f64mat1x1</a></td></tr>
-<tr class="separator:ga448eeb08d0b7d8c43a8b292c981955fd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5987a61b8c03d5c432a9e62f0b3efe1"></a>
-typedef f64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#gae5987a61b8c03d5c432a9e62f0b3efe1">f64vec1</a></td></tr>
-<tr class="separator:gae5987a61b8c03d5c432a9e62f0b3efe1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52cc069a92e126c3a8dcde93424d2ef0"></a>
-typedef u16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga52cc069a92e126c3a8dcde93424d2ef0">u16vec1</a></td></tr>
-<tr class="separator:ga52cc069a92e126c3a8dcde93424d2ef0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9bbc1e14aea65cba5e2dcfef6a67d9f3"></a>
-typedef u32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3">u32vec1</a></td></tr>
-<tr class="separator:ga9bbc1e14aea65cba5e2dcfef6a67d9f3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga818de170e2584ab037130f2881925974"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga818de170e2584ab037130f2881925974"></a>
-typedef u64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga818de170e2584ab037130f2881925974">u64vec1</a></td></tr>
-<tr class="separator:ga818de170e2584ab037130f2881925974"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5853fe457f4c8a6bc09343d0e9833980"></a>
-typedef u8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00218.html#ga5853fe457f4c8a6bc09343d0e9833980">u8vec1</a></td></tr>
-<tr class="separator:ga5853fe457f4c8a6bc09343d0e9833980"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2< T, P > const &polar)</td></tr>
+<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00218.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3< T, P > const &euclidean)</td></tr>
+<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defined size types. </p>
-<p><<a class="el" href="a00084.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/number_precision.hpp</a>> need to be included to use these functionalities. </p>
+<p>Conversion from Euclidean space to polar space and revert. </p>
+<p><<a class="el" href="a00084.html" title="GLM_GTX_polar_coordinates ">glm/gtx/polar_coordinates.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga45ece1fbf7260c43e0f873c498202581"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::euclidean </td>
+ <td>(</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>polar</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert Polar to Euclidean coordinates. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00218.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafcf95a38c780a4ad5ba14c8ac9e522bb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::polar </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>euclidean</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00218.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00219.html b/doc/api/a00219.html
index 9ba0816..6096040 100644
--- a/doc/api/a00219.html
+++ b/doc/api/a00219.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_optimum_pow</title>
+<title>0.9.8: GLM_GTX_projection</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,80 +39,46 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_optimum_pow<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_projection<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga19aaff3213bf23bdec3ef124ace237e9">pow2</a> (genType const &x)</td></tr>
-<tr class="separator:ga19aaff3213bf23bdec3ef124ace237e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#ga35689d03cd434d6ea819f1942d3bf82e">pow3</a> (genType const &x)</td></tr>
-<tr class="separator:ga35689d03cd434d6ea819f1942d3bf82e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gacef0968763026e180e53e735007dbf5a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gacef0968763026e180e53e735007dbf5a">pow4</a> (genType const &x)</td></tr>
-<tr class="separator:gacef0968763026e180e53e735007dbf5a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00219.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &x, vecType const &Normal)</td></tr>
+<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Integer exponentiation of power functions. </p>
-<p><<a class="el" href="a00085.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/optimum_pow.hpp</a>> need to be included to use these functionalities. </p>
+<p>Projection of a vector to other one. </p>
+<p><<a class="el" href="a00086.html" title="GLM_GTX_projection ">glm/gtx/projection.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga19aaff3213bf23bdec3ef124ace237e9"></a>
+<a class="anchor" id="gadf29123bcf748fc9d6fb0998192184cf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow2 </td>
+ <td class="memname">GLM_FUNC_DECL vecType glm::proj </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">vecType const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the power of 2. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga35689d03cd434d6ea819f1942d3bf82e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow3 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">vecType const & </td>
+ <td class="paramname"><em>Normal</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns x raised to the power of 3. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacef0968763026e180e53e735007dbf5a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::gtx::pow4 </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns x raised to the power of 4. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Integer exponentiation of power functions. ">GLM_GTX_optimum_pow</a> </dd></dl>
+<p>Projects x on Normal. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00219.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00220.html b/doc/api/a00220.html
index d863024..4c01172 100644
--- a/doc/api/a00220.html
+++ b/doc/api/a00220.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_orthonormalize</title>
+<title>0.9.8: GLM_GTX_quaternion</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,56 +39,289 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_orthonormalize<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_quaternion<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga23c4340b8f1559d259229b6d8bdc3f97">orthonormalize</a> (tmat3x3< T, P > const &m)</td></tr>
-<tr class="separator:ga23c4340b8f1559d259229b6d8bdc3f97"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gad7afff30d7323fdc7aed7f5a16a0c596">orthonormalize</a> (tvec3< T, P > const &x, tvec3< T, P > const &y)</td></tr>
-<tr class="separator:gad7afff30d7323fdc7aed7f5a16a0c596"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3< T, P > const &v, tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</td></tr>
+<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat< T, P > const &q)</td></tr>
+<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat< T, P > const &x, T const &y)</td></tr>
+<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat< T, P > const &q, tvec4< T, P > const &v)</td></tr>
+<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3< T, P > const &orig, tvec3< T, P > const &dest)</td></tr>
+<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</td></tr>
+<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat< T, P > const &x)</td></tr>
+<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3< T, P > const &x)</td></tr>
+<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00220.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4< T, P > const &x)</td></tr>
+<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Orthonormalize matrices. </p>
-<p><<a class="el" href="a00086.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/orthonormalize.hpp</a>> need to be included to use these functionalities. </p>
+<p>Extented quaternion types and functions. </p>
+<p><<a class="el" href="a00088.html" title="GLM_GTX_quaternion ">glm/gtx/quaternion.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga23c4340b8f1559d259229b6d8bdc3f97"></a>
+<a class="anchor" id="ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::orthonormalize </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::cross </td>
<td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em></td><td>)</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Returns the orthonormalized matrix of m. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+<p>Compute a cross product between a quaternion and a vector. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad7afff30d7323fdc7aed7f5a16a0c596"></a>
+<a class="anchor" id="ga4bfe3c7770fc43d14b8ef0058c4a86b5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::orthonormalize </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::cross </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute a cross product between a vector and a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga17295173d4c2b5ae49b84e9993b63a62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::exp </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a exp of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga90de879d97487ec804522dd418e5d8a0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::extractRealComponent </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extract the real component of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac11bf550f17d1da14423595a27575084"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::fastMix </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>a</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Quaternion normalized linear interpolation. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga56abae85b3669c866e91f3c57b298b9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::intermediate </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>prev</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>curr</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>next</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns an intermediate control point for squad interpolation. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga02b45352c7ac345cabc9e877314acda6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns the squared length of x. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga791f42e134bfe97fc9c96f4668dd7489"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::log </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns a log of a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga42a0cf206c59eaeff4c67dd62e09a580"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::pow </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
<td class="paramname"><em>y</em> </td>
</tr>
<tr>
@@ -99,8 +332,273 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Orthonormalizes x according y. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Orthonormalize matrices. ">GLM_GTX_orthonormalize</a> </dd></dl>
+<p>Returns x raised to the y power. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9f39f0d3ecd66839a4af44560aa10fb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns quarternion square root. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> Rotates a 3 components vector by a quaternion.</dd>
+<dd>
+<a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga96575f8868b3f2aa3e13cab9b94ccbd3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rotates a 4 components vector by a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac4856d356c5c97cec74e9b672ea89240"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotation </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>orig</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>dest</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute the rotation between two vectors. </p>
+<p>param orig vector, needs to be normalized param dest vector, needs to be normalized</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3534443de2a1a806f386976546cddc81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::shortMix </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>a</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Quaternion interpolation using the rotation short path. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae75f537becdf2b1381b4482ec96e6c82"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::squad </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>s1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>s2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>h</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compute a point on a path according squad equation. </p>
+<p>q1 and q2 are control points; s1 and s2 are intermediate control points.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01935b66ba245c2fd7dee5427d86ce9b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::toMat3 </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a quaternion to a 3 * 3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00088_source.html#l00124">124</a> of file <a class="el" href="a00088_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaedc9fba6485eade37cc26c16df9d7aad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::toMat4 </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a quaternion to a 4 * 4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00088_source.html#l00131">131</a> of file <a class="el" href="a00088_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac9e3109ca60b644ce508d6b71a1697bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::toQuat </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 3 * 3 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00088_source.html#l00138">138</a> of file <a class="el" href="a00088_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga808dd0f83ee8150db7e652313bde8eb2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::toQuat </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts a 4 * 4 matrix to a quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00220.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="a00088_source.html#l00145">145</a> of file <a class="el" href="a00088_source.html">gtx/quaternion.hpp</a>.</p>
+
+<p>References <a class="el" href="a00172.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
</div>
</div>
diff --git a/doc/api/a00221.html b/doc/api/a00221.html
index 37235d0..6234d05 100644
--- a/doc/api/a00221.html
+++ b/doc/api/a00221.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_perpendicular</title>
+<title>0.9.8: GLM_GTX_range</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,52 +36,14 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_perpendicular<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_range<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00221.html#ga41f8c73da9798a18e6b1e32f1e301f07">perp</a> (vecType const &x, vecType const &Normal)</td></tr>
-<tr class="separator:ga41f8c73da9798a18e6b1e32f1e301f07"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Perpendicular of a vector from other one. </p>
-<p><<a class="el" href="a00090.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/perpendicular.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga41f8c73da9798a18e6b1e32f1e301f07"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType glm::perp </td>
- <td>(</td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>Normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Projects x a perpendicular axis of Normal. </p>
-<p>From GLM_GTX_perpendicular extension. </p>
-
-</div>
-</div>
+<p>Defines begin and end for vectors and matrices. </p>
+<p>Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).</p>
+<p><<a class="el" href="a00090.html" title="GLM_GTX_range ">glm/gtx/range.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00222.html b/doc/api/a00222.html
index 0f9bbf4..91a45a6 100644
--- a/doc/api/a00222.html
+++ b/doc/api/a00222.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_polar_coordinates</title>
+<title>0.9.8: GLM_GTX_raw_data</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,60 +37,92 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#func-members">Functions</a> </div>
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_polar_coordinates<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_raw_data<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga45ece1fbf7260c43e0f873c498202581"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#ga45ece1fbf7260c43e0f873c498202581">euclidean</a> (tvec2< T, P > const &polar)</td></tr>
-<tr class="separator:ga45ece1fbf7260c43e0f873c498202581"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00222.html#gafcf95a38c780a4ad5ba14c8ac9e522bb">polar</a> (tvec3< T, P > const &euclidean)</td></tr>
-<tr class="separator:gafcf95a38c780a4ad5ba14c8ac9e522bb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
+<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
+<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
+<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00222.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
+<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Conversion from Euclidean space to polar space and revert. </p>
-<p><<a class="el" href="a00091.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/polar_coordinates.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga45ece1fbf7260c43e0f873c498202581"></a>
+<p>Projection of a vector to other one. </p>
+<p><<a class="el" href="a00091.html" title="GLM_GTX_raw_data ">glm/gtx/raw_data.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga3005cb0d839d546c616becfa6602c607"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::euclidean </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>polar</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint8 byte</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert Polar to Euclidean coordinates. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00222.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+<p>Type for byte numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00091_source.html#l00030">30</a> of file <a class="el" href="a00091_source.html">raw_data.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga86e46fff9f80ae33893d8d697f2ca98a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint32 dword</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type for dword numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00091_source.html#l00038">38</a> of file <a class="el" href="a00091_source.html">raw_data.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="gafcf95a38c780a4ad5ba14c8ac9e522bb"></a>
+<a class="anchor" id="ga4021754ffb8e5ef14c75802b15657714"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::polar </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>euclidean</em></td><td>)</td>
- <td></td>
+ <td class="memname">typedef detail::uint64 qword</td>
</tr>
</table>
</div><div class="memdoc">
-<p>Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00222.html" title="Conversion from Euclidean space to polar space and revert. ">GLM_GTX_polar_coordinates</a> </dd></dl>
+<p>Type for qword numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00091_source.html#l00042">42</a> of file <a class="el" href="a00091_source.html">raw_data.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga16e9fea0ef1e6c4ef472d3d1731c49a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef detail::uint16 word</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type for word numbers. </p>
+<p>From GLM_GTX_raw_data extension. </p>
+
+<p>Definition at line <a class="el" href="a00091_source.html#l00034">34</a> of file <a class="el" href="a00091_source.html">raw_data.hpp</a>.</p>
</div>
</div>
diff --git a/doc/api/a00223.html b/doc/api/a00223.html
index 7fff347..df53e17 100644
--- a/doc/api/a00223.html
+++ b/doc/api/a00223.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_projection</title>
+<title>0.9.8: GLM_GTX_rotate_normalized_axis</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,35 +39,99 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_projection<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_rotate_normalized_axis<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:gadf29123bcf748fc9d6fb0998192184cf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gadf29123bcf748fc9d6fb0998192184cf">proj</a> (vecType const &x, vecType const &Normal)</td></tr>
-<tr class="separator:gadf29123bcf748fc9d6fb0998192184cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00223.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
+<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Projection of a vector to other one. </p>
-<p><<a class="el" href="a00093.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/projection.hpp</a>> need to be included to use these functionalities. </p>
+<p>Quaternions and matrices rotations around normalized axis. </p>
+<p><<a class="el" href="a00093.html" title="GLM_GTX_rotate_normalized_axis ">glm/gtx/rotate_normalized_axis.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gadf29123bcf748fc9d6fb0998192184cf"></a>
+<a class="anchor" id="gaada623964a895def5a8b77b5b7887dc4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL vecType glm::proj </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotateNormalizedAxis </td>
<td>(</td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tmat4x4< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>Normal</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
+ <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
+ <tr><td class="paramname">axis</td><td>Rotation axis, must be normalized. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="tparams"><dt>Template Parameters</dt><dd>
+ <table class="tparams">
+ <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd>
+<dd>
+- rotate(T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z) </dd>
+<dd>
+- rotate(T angle, tvec3<T, P> const & v) </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6c00234d844faef36a6a94669fbd1639"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotateNormalizedAxis </td>
+ <td>(</td>
+ <td class="paramtype">tquat< T, P > const & </td>
+ <td class="paramname"><em>q</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>axis</em> </td>
</tr>
<tr>
<td></td>
@@ -77,8 +141,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Projects x on Normal. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Projection of a vector to other one. ">GLM_GTX_projection</a> </dd></dl>
+<p>Rotates a quaternion from a vector of 3 components normalized axis and an angle. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">q</td><td>Source orientation </td></tr>
+ <tr><td class="paramname">angle</td><td>Angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
+ <tr><td class="paramname">axis</td><td>Normalized axis of the rotation, must be normalized.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00223.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00224.html b/doc/api/a00224.html
index f68ffa1..7c902cc 100644
--- a/doc/api/a00224.html
+++ b/doc/api/a00224.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_quaternion</title>
+<title>0.9.8: GLM_GTX_rotate_vector</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,86 +39,65 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_quaternion<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_rotate_vector<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga33ecf8ba903eee5fc09f0fbfc0d5ca6b">cross</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga4bfe3c7770fc43d14b8ef0058c4a86b5">cross</a> (tvec3< T, P > const &v, tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga4bfe3c7770fc43d14b8ef0058c4a86b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga17295173d4c2b5ae49b84e9993b63a62">exp</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga17295173d4c2b5ae49b84e9993b63a62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga90de879d97487ec804522dd418e5d8a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga90de879d97487ec804522dd418e5d8a0">extractRealComponent</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga90de879d97487ec804522dd418e5d8a0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac11bf550f17d1da14423595a27575084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac11bf550f17d1da14423595a27575084">fastMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:gac11bf550f17d1da14423595a27575084"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga56abae85b3669c866e91f3c57b298b9c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga56abae85b3669c866e91f3c57b298b9c">intermediate</a> (tquat< T, P > const &prev, tquat< T, P > const &curr, tquat< T, P > const &next)</td></tr>
-<tr class="separator:ga56abae85b3669c866e91f3c57b298b9c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga02b45352c7ac345cabc9e877314acda6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga02b45352c7ac345cabc9e877314acda6">length2</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga02b45352c7ac345cabc9e877314acda6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga791f42e134bfe97fc9c96f4668dd7489">log</a> (tquat< T, P > const &q)</td></tr>
-<tr class="separator:ga791f42e134bfe97fc9c96f4668dd7489"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga42a0cf206c59eaeff4c67dd62e09a580">pow</a> (tquat< T, P > const &x, T const &y)</td></tr>
-<tr class="separator:ga42a0cf206c59eaeff4c67dd62e09a580"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9f39f0d3ecd66839a4af44560aa10fb2">rotate</a> (tquat< T, P > const &q, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga9f39f0d3ecd66839a4af44560aa10fb2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga96575f8868b3f2aa3e13cab9b94ccbd3">rotate</a> (tquat< T, P > const &q, tvec4< T, P > const &v)</td></tr>
-<tr class="separator:ga96575f8868b3f2aa3e13cab9b94ccbd3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac4856d356c5c97cec74e9b672ea89240"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac4856d356c5c97cec74e9b672ea89240">rotation</a> (tvec3< T, P > const &orig, tvec3< T, P > const &dest)</td></tr>
-<tr class="separator:gac4856d356c5c97cec74e9b672ea89240"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga3534443de2a1a806f386976546cddc81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga3534443de2a1a806f386976546cddc81">shortMix</a> (tquat< T, P > const &x, tquat< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:ga3534443de2a1a806f386976546cddc81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae75f537becdf2b1381b4482ec96e6c82"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae75f537becdf2b1381b4482ec96e6c82">squad</a> (tquat< T, P > const &q1, tquat< T, P > const &q2, tquat< T, P > const &s1, tquat< T, P > const &s2, T const &h)</td></tr>
-<tr class="separator:gae75f537becdf2b1381b4482ec96e6c82"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga01935b66ba245c2fd7dee5427d86ce9b">toMat3</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:ga01935b66ba245c2fd7dee5427d86ce9b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaedc9fba6485eade37cc26c16df9d7aad">toMat4</a> (tquat< T, P > const &x)</td></tr>
-<tr class="separator:gaedc9fba6485eade37cc26c16df9d7aad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gac9e3109ca60b644ce508d6b71a1697bc">toQuat</a> (tmat3x3< T, P > const &x)</td></tr>
-<tr class="separator:gac9e3109ca60b644ce508d6b71a1697bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga808dd0f83ee8150db7e652313bde8eb2">toQuat</a> (tmat4x4< T, P > const &x)</td></tr>
-<tr class="separator:ga808dd0f83ee8150db7e652313bde8eb2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</td></tr>
+<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
+<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
+<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00224.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</td></tr>
+<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Extented quaternion types and functions. </p>
-<p><<a class="el" href="a00095.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/quaternion.hpp</a>> need to be included to use these functionalities. </p>
+<p>Function to directly rotate a vector. </p>
+<p><<a class="el" href="a00094.html" title="GLM_GTX_rotate_vector ">glm/gtx/rotate_vector.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga33ecf8ba903eee5fc09f0fbfc0d5ca6b"></a>
+<a class="anchor" id="ga49b4d082305cdfcfe0a5c184f684a902"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::cross </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::orientation </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>Normal</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
+ <td class="paramname"><em>Up</em> </td>
</tr>
<tr>
<td></td>
@@ -128,26 +107,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a cross product between a quaternion and a vector. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Build a rotation matrix from a normal and a up vector. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga4bfe3c7770fc43d14b8ef0058c4a86b5"></a>
+<a class="anchor" id="ga9bff444fb191e2e089a906b899cd033d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::cross </td>
+ <td class="memname">GLM_FUNC_DECL tvec2<T, P> glm::rotate </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramtype">tvec2< T, P > const & </td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -157,70 +136,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a cross product between a vector and a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga17295173d4c2b5ae49b84e9993b63a62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::exp </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a exp of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga90de879d97487ec804522dd418e5d8a0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::extractRealComponent </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Extract the real component of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a two dimensional vector. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="gac11bf550f17d1da14423595a27575084"></a>
+<a class="anchor" id="ga526b6f8995bc0946aa1a04e9297de7c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::fastMix </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotate </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>normal</em> </td>
</tr>
<tr>
<td></td>
@@ -230,32 +171,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Quaternion normalized linear interpolation. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around an axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga56abae85b3669c866e91f3c57b298b9c"></a>
+<a class="anchor" id="gaf4d59dd2f668f9ffb38048055d1316bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::intermediate </td>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotate </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>prev</em>, </td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>curr</em>, </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>next</em> </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>normal</em> </td>
</tr>
<tr>
<td></td>
@@ -265,64 +206,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns an intermediate control point for squad interpolation. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga02b45352c7ac345cabc9e877314acda6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::length2 </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the squared length of x. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga791f42e134bfe97fc9c96f4668dd7489"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::log </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns a log of a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around an axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga42a0cf206c59eaeff4c67dd62e09a580"></a>
+<a class="anchor" id="ga0c2dc9f8507bffcbb957db9818b18508"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::pow </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateX </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const & </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -332,26 +235,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns x raised to the y power. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga9f39f0d3ecd66839a4af44560aa10fb2"></a>
+<a class="anchor" id="gadab312d430a564741ae02215255027a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateX </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -361,28 +264,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Returns quarternion square root. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> Rotates a 3 components vector by a quaternion.</dd>
-<dd>
-<a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimentionnals vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga96575f8868b3f2aa3e13cab9b94ccbd3"></a>
+<a class="anchor" id="gabb5d19eba5befeebcb35a0aad4a114e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateY </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -392,26 +293,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Rotates a 4 components vector by a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the Y axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="gac4856d356c5c97cec74e9b672ea89240"></a>
+<a class="anchor" id="gae2507577c4bffa3548b32852791dd90c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotation </td>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateY </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>orig</em>, </td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>dest</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -421,33 +322,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute the rotation between two vectors. </p>
-<p>param orig vector, needs to be normalized param dest vector, needs to be normalized</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga3534443de2a1a806f386976546cddc81"></a>
+<a class="anchor" id="gae30ac01b89d4f16a972fee696c964908"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::shortMix </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateZ </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const & </td>
- <td class="paramname"><em>a</em> </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -457,44 +351,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Quaternion interpolation using the rotation short path. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a three dimensional vector around the Z axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="gae75f537becdf2b1381b4482ec96e6c82"></a>
+<a class="anchor" id="ga034e5d197ab4bd8685624bc2cf16e586"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::squad </td>
+ <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateZ </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q2</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>s1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>s2</em>, </td>
+ <td class="paramtype">tvec4< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T const & </td>
- <td class="paramname"><em>h</em> </td>
+ <td class="paramname"><em>angle</em> </td>
</tr>
<tr>
<td></td>
@@ -504,101 +380,51 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Compute a point on a path according squad equation. </p>
-<p>q1 and q2 are control points; s1 and s2 are intermediate control points.</p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
+<p>Rotate a four dimensional vector around the X axis. </p>
+<p>From GLM_GTX_rotate_vector extension. </p>
</div>
</div>
-<a class="anchor" id="ga01935b66ba245c2fd7dee5427d86ce9b"></a>
+<a class="anchor" id="gafc9ab3101c3f3799f3d5d6d9d3baac09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::toMat3 </td>
+ <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::slerp </td>
<td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 3 * 3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00153">153</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#gae04c39422eb4e450ec8c4f45a1057b40">glm::mat3_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gaedc9fba6485eade37cc26c16df9d7aad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::toMat4 </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a quaternion to a 4 * 4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00160">160</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga14bb2ddf028c91542763eb6f2bba47ef">glm::mat4_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="gac9e3109ca60b644ce508d6b71a1697bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::toQuat </td>
- <td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>a</em> </td>
</tr>
- </table>
-</div><div class="memdoc">
-
-<p>Converts a 3 * 3 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00167">167</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga808dd0f83ee8150db7e652313bde8eb2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::toQuat </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Converts a 4 * 4 matrix to a quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Extented quaternion types and functions. ">GLM_GTX_quaternion</a> </dd></dl>
-
-<p>Definition at line <a class="el" href="a00095_source.html#l00174">174</a> of file <a class="el" href="a00095_source.html">gtx/quaternion.hpp</a>.</p>
-
-<p>References <a class="el" href="a00177.html#ga950f8acff3e33bbda77895a3dcb7e5ce">glm::quat_cast()</a>.</p>
+<p>Returns Spherical interpolation between two vectors. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>A first vector </td></tr>
+ <tr><td class="paramname">y</td><td>A second vector </td></tr>
+ <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00224.html" title="Function to directly rotate a vector. ">GLM_GTX_rotate_vector</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00225.html b/doc/api/a00225.html
index 04ef36c..13dc0e1 100644
--- a/doc/api/a00225.html
+++ b/doc/api/a00225.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_range</title>
+<title>0.9.8: GLM_GTX_scalar_relational</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,13 +37,11 @@
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">GLM_GTX_range<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_scalar_relational<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines begin and end for vectors and matrices. </p>
-<p>Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).</p>
-<p><<a class="el" href="a00097.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/range.hpp</a>> need to be included to use these functionalities. </p>
+<p>Extend a position from a source to a position at a defined length. </p>
+<p><<a class="el" href="a00097.html" title="GLM_GTX_scalar_relational ">glm/gtx/scalar_relational.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00226.html b/doc/api/a00226.html
index f2884c9..ca6548e 100644
--- a/doc/api/a00226.html
+++ b/doc/api/a00226.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_raw_data</title>
+<title>0.9.8: GLM_GTX_simd_mat4</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,96 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_raw_data<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_simd_mat4<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga3005cb0d839d546c616becfa6602c607"><td class="memItemLeft" align="right" valign="top">typedef detail::uint8 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga3005cb0d839d546c616becfa6602c607">byte</a></td></tr>
-<tr class="separator:ga3005cb0d839d546c616becfa6602c607"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memItemLeft" align="right" valign="top">typedef detail::uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga86e46fff9f80ae33893d8d697f2ca98a">dword</a></td></tr>
-<tr class="separator:ga86e46fff9f80ae33893d8d697f2ca98a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4021754ffb8e5ef14c75802b15657714"><td class="memItemLeft" align="right" valign="top">typedef detail::uint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga4021754ffb8e5ef14c75802b15657714">qword</a></td></tr>
-<tr class="separator:ga4021754ffb8e5ef14c75802b15657714"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memItemLeft" align="right" valign="top">typedef detail::uint16 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00226.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5">word</a></td></tr>
-<tr class="separator:ga16e9fea0ef1e6c4ef472d3d1731c49a5"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Projection of a vector to other one. </p>
-<p><<a class="el" href="a00098.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/raw_data.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga3005cb0d839d546c616becfa6602c607"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint8 byte</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type for byte numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00059">59</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga86e46fff9f80ae33893d8d697f2ca98a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint32 dword</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type for dword numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00067">67</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga4021754ffb8e5ef14c75802b15657714"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint64 qword</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type for qword numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00071">71</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga16e9fea0ef1e6c4ef472d3d1731c49a5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef detail::uint16 word</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Type for word numbers. </p>
-<p>From GLM_GTX_raw_data extension. </p>
-
-<p>Definition at line <a class="el" href="a00098_source.html#l00063">63</a> of file <a class="el" href="a00098_source.html">raw_data.hpp</a>.</p>
-
-</div>
-</div>
+<p>SIMD implementation of mat4 type. </p>
+<p><<a class="el" href="a00099.html" title="GLM_GTX_simd_mat4 ">glm/gtx/simd_mat4.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00227.html b/doc/api/a00227.html
index d7b7a89..0b3eb18 100644
--- a/doc/api/a00227.html
+++ b/doc/api/a00227.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_rotate_normalized_axis</title>
+<title>0.9.8: GLM_GTX_simd_quat</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,124 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_rotate_normalized_axis<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_simd_quat<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaada623964a895def5a8b77b5b7887dc4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#gaada623964a895def5a8b77b5b7887dc4">rotateNormalizedAxis</a> (tmat4x4< T, P > const &m, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:gaada623964a895def5a8b77b5b7887dc4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga6c00234d844faef36a6a94669fbd1639"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tquat< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00227.html#ga6c00234d844faef36a6a94669fbd1639">rotateNormalizedAxis</a> (tquat< T, P > const &q, T const &angle, tvec3< T, P > const &axis)</td></tr>
-<tr class="separator:ga6c00234d844faef36a6a94669fbd1639"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Quaternions and matrices rotations around normalized axis. </p>
-<p><<a class="el" href="a00100.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/rotate_normalized_axis.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gaada623964a895def5a8b77b5b7887dc4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotateNormalizedAxis </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">m</td><td>Input matrix multiplied by this rotation matrix. </td></tr>
- <tr><td class="paramname">angle</td><td>Rotation angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
- <tr><td class="paramname">axis</td><td>Rotation axis, must be normalized. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="tparams"><dt>Template Parameters</dt><dd>
- <table class="tparams">
- <tr><td class="paramname">T</td><td>Value type used to build the matrix. Currently supported: half (not recommanded), float or double.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00227.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd>
-<dd>
-- rotate(T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(tmat4x4<T, P> const & m, T angle, T x, T y, T z) </dd>
-<dd>
-- rotate(T angle, tvec3<T, P> const & v) </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6c00234d844faef36a6a94669fbd1639"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tquat<T, P> glm::rotateNormalizedAxis </td>
- <td>(</td>
- <td class="paramtype">tquat< T, P > const & </td>
- <td class="paramname"><em>q</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>axis</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotates a quaternion from a vector of 3 components normalized axis and an angle. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">q</td><td>Source orientation </td></tr>
- <tr><td class="paramname">angle</td><td>Angle expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise. </td></tr>
- <tr><td class="paramname">axis</td><td>Normalized axis of the rotation, must be normalized.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00227.html" title="Quaternions and matrices rotations around normalized axis. ">GLM_GTX_rotate_normalized_axis</a> </dd></dl>
-
-</div>
-</div>
+<p>SIMD implementation of quat type. </p>
+<p><<a class="el" href="a00100.html" title="GLM_GTX_simd_quat ">glm/gtx/simd_quat.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00228.html b/doc/api/a00228.html
index 97bf2cf..f46f99c 100644
--- a/doc/api/a00228.html
+++ b/doc/api/a00228.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_rotate_vector</title>
+<title>0.9.8: GLM_GTX_simd_vec4</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,398 +36,12 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_rotate_vector<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_simd_vec4<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga49b4d082305cdfcfe0a5c184f684a902">orientation</a> (tvec3< T, P > const &Normal, tvec3< T, P > const &Up)</td></tr>
-<tr class="separator:ga49b4d082305cdfcfe0a5c184f684a902"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga9bff444fb191e2e089a906b899cd033d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec2< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga9bff444fb191e2e089a906b899cd033d">rotate</a> (tvec2< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga9bff444fb191e2e089a906b899cd033d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga526b6f8995bc0946aa1a04e9297de7c6">rotate</a> (tvec3< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:ga526b6f8995bc0946aa1a04e9297de7c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gaf4d59dd2f668f9ffb38048055d1316bd">rotate</a> (tvec4< T, P > const &v, T const &angle, tvec3< T, P > const &normal)</td></tr>
-<tr class="separator:gaf4d59dd2f668f9ffb38048055d1316bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga0c2dc9f8507bffcbb957db9818b18508">rotateX</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga0c2dc9f8507bffcbb957db9818b18508"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gadab312d430a564741ae02215255027a0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gadab312d430a564741ae02215255027a0">rotateX</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gadab312d430a564741ae02215255027a0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gabb5d19eba5befeebcb35a0aad4a114e3">rotateY</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gabb5d19eba5befeebcb35a0aad4a114e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae2507577c4bffa3548b32852791dd90c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae2507577c4bffa3548b32852791dd90c">rotateY</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gae2507577c4bffa3548b32852791dd90c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae30ac01b89d4f16a972fee696c964908"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gae30ac01b89d4f16a972fee696c964908">rotateZ</a> (tvec3< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:gae30ac01b89d4f16a972fee696c964908"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#ga034e5d197ab4bd8685624bc2cf16e586">rotateZ</a> (tvec4< T, P > const &v, T const &angle)</td></tr>
-<tr class="separator:ga034e5d197ab4bd8685624bc2cf16e586"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tvec3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00228.html#gafc9ab3101c3f3799f3d5d6d9d3baac09">slerp</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, T const &a)</td></tr>
-<tr class="separator:gafc9ab3101c3f3799f3d5d6d9d3baac09"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Function to directly rotate a vector. </p>
-<p><<a class="el" href="a00101.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/rotate_vector.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga49b4d082305cdfcfe0a5c184f684a902"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::orientation </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>Normal</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>Up</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a rotation matrix from a normal and a up vector. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga9bff444fb191e2e089a906b899cd033d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec2<T, P> glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a two dimensional vector. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga526b6f8995bc0946aa1a04e9297de7c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around an axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gaf4d59dd2f668f9ffb38048055d1316bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotate </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around an axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga0c2dc9f8507bffcbb957db9818b18508"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateX </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gadab312d430a564741ae02215255027a0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateX </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimentionnals vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gabb5d19eba5befeebcb35a0aad4a114e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateY </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the Y axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae2507577c4bffa3548b32852791dd90c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateY </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae30ac01b89d4f16a972fee696c964908"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::rotateZ </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a three dimensional vector around the Z axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="ga034e5d197ab4bd8685624bc2cf16e586"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec4<T, P> glm::rotateZ </td>
- <td>(</td>
- <td class="paramtype">tvec4< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>angle</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Rotate a four dimensional vector around the X axis. </p>
-<p>From GLM_GTX_rotate_vector extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafc9ab3101c3f3799f3d5d6d9d3baac09"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tvec3<T, P> glm::slerp </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>a</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns Spherical interpolation between two vectors. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">x</td><td>A first vector </td></tr>
- <tr><td class="paramname">y</td><td>A second vector </td></tr>
- <tr><td class="paramname">a</td><td>Interpolation factor. The interpolation is defined beyond the range [0, 1].</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00228.html" title="Function to directly rotate a vector. ">GLM_GTX_rotate_vector</a> </dd></dl>
-
-</div>
-</div>
+<p>SIMD implementation of vec4 type. </p>
+<p><<a class="el" href="a00101.html" title="GLM_GTX_simd_vec4 ">glm/gtx/simd_vec4.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00229.html b/doc/api/a00229.html
index baa36b8..e8f3dad 100644
--- a/doc/api/a00229.html
+++ b/doc/api/a00229.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_scalar_relational</title>
+<title>0.9.8: GLM_GTX_spline</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,170 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_scalar_relational<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_spline<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>Extend a position from a source to a position at a defined length. </p>
-<p><<a class="el" href="a00104.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/scalar_relational.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
+<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
+<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00229.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</td></tr>
+<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Spline functions. </p>
+<p><<a class="el" href="a00102.html" title="GLM_GTX_spline ">glm/gtx/spline.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga8119c04f8210fd0d292757565cd6918d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::catmullRom </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v4</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const & </td>
+ <td class="paramname"><em>s</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return a point from a catmull rom curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00229.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6b867eb52e2fc933d2e0bf26aabc9a70"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::cubic </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v3</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v4</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const & </td>
+ <td class="paramname"><em>s</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return a point from a cubic curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00229.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa69e143f6374d32f934a8edeaa50bac9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL genType glm::hermite </td>
+ <td>(</td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>t1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>v2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>t2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">typename genType::value_type const & </td>
+ <td class="paramname"><em>s</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return a point from a hermite curve. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00229.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00230.html b/doc/api/a00230.html
index 7090b44..801e74a 100644
--- a/doc/api/a00230.html
+++ b/doc/api/a00230.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_mat4</title>
+<title>0.9.8: GLM_GTX_std_based_type</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,172 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_simd_mat4<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_std_based_type<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of mat4 type. </p>
-<p><<a class="el" href="a00106.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_mat4.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
+<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
+<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
+<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
+<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
+<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
+<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
+<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00230.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
+<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Adds vector types based on STL value types. </p>
+<p><<a class="el" href="a00103.html" title="GLM_GTX_std_based_type ">glm/gtx/std_based_type.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga47c940f279a6b97ffc301eb4526a445a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1<std::size_t, defaultp> size1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of one std::size_t component. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00030">30</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga77d0b061efa41cb2ed2285d09294314e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec1<std::size_t, defaultp> size1_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of one std::size_t component. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00046">46</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac0ef172641a1555684da0beb735c2a79"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<std::size_t, defaultp> size2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of two std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00034">34</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7d72bbe318d27da9d30f27095e4c75e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec2<std::size_t, defaultp> size2_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of two std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00050">50</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga51b5e9650c459973134ffb4236ae88b6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<std::size_t, defaultp> size3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of three std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00038">38</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gad364e6c302642e3bb89d756df5d0c8c6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec3<std::size_t, defaultp> size3_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of three std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00054">54</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gaf07a3f432e328c99d35637225c988121"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<std::size_t, defaultp> size4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of four std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00042">42</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga06862b7d59094244025d34407b2cb796"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef tvec4<std::size_t, defaultp> size4_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Vector type based of four std::size_t components. </p>
+<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+
+<p>Definition at line <a class="el" href="a00103_source.html#l00058">58</a> of file <a class="el" href="a00103_source.html">std_based_type.hpp</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00231.html b/doc/api/a00231.html
index d8ddd1c..b2442da 100644
--- a/doc/api/a00231.html
+++ b/doc/api/a00231.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_quat</title>
+<title>0.9.8: GLM_GTX_string_cast</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,42 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_simd_quat<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_string_cast<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of quat type. </p>
-<p><<a class="el" href="a00107.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_quat.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template<template< typename, precision > class matType, typename T , precision P> </td></tr>
+<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00231.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType< T, P > const &x)</td></tr>
+<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Setup strings for GLM type values. </p>
+<p><<a class="el" href="a00104.html" title="GLM_GTX_string_cast ">glm/gtx/string_cast.hpp</a>> need to be included to use these functionalities. This extension is not supported with CUDA </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga7b4f9233593bbf1d53762f801ef56fe6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL std::string glm::to_string </td>
+ <td>(</td>
+ <td class="paramtype">matType< T, P > const & </td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Create a string from a GLM vector or matrix typed variable. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00231.html" title="Setup strings for GLM type values. ">GLM_GTX_string_cast</a> extension. </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00232.html b/doc/api/a00232.html
index ef0b016..22ebf66 100644
--- a/doc/api/a00232.html
+++ b/doc/api/a00232.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_simd_vec4</title>
+<title>0.9.8: GLM_GTX_transform</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,12 +36,102 @@
</div>
</div><!-- top -->
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_simd_vec4<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_transform<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<p>SIMD implementation of vec4 type. </p>
-<p><<a class="el" href="a00108.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/simd_vec4.hpp</a>> need to be included to use these functionalities. </p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00232.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3< T, P > const &v)</td></tr>
+<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Add transformation matrices. </p>
+<p><<a class="el" href="a00105.html" title="GLM_GTX_transform ">glm/gtx/transform.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga2020c91bf61e050882b3a5c18eada700"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotate </td>
+ <td>(</td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>angle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1972d4a66a2e92637c8aaee598417a71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::scale </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga838c4505ef7f254ed05117b1ac9691fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::translate </td>
+ <td>(</td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>v</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00169.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
+<dd>
+<a class="el" href="a00232.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+
+</div>
+</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00233.html b/doc/api/a00233.html
index 21edfef..bedfa6d 100644
--- a/doc/api/a00233.html
+++ b/doc/api/a00233.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_spline</title>
+<title>0.9.8: GLM_GTX_transform2</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,59 +39,152 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_spline<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_transform2<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga8119c04f8210fd0d292757565cd6918d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga8119c04f8210fd0d292757565cd6918d">catmullRom</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
-<tr class="separator:ga8119c04f8210fd0d292757565cd6918d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga6b867eb52e2fc933d2e0bf26aabc9a70">cubic</a> (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)</td></tr>
-<tr class="separator:ga6b867eb52e2fc933d2e0bf26aabc9a70"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gaa69e143f6374d32f934a8edeaa50bac9">hermite</a> (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)</td></tr>
-<tr class="separator:gaa69e143f6374d32f934a8edeaa50bac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</td></tr>
+<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</td></tr>
+<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
+<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
+<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
+<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4< valType, P > const &m, valType scale, valType bias)</td></tr>
+<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3< T, P > const &m, T y)</td></tr>
+<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4< T, P > &m, T y, T z)</td></tr>
+<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3< T, P > const &m, T x)</td></tr>
+<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4< T, P > &m, T x, T z)</td></tr>
+<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00233.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4< T, P > &m, T x, T y)</td></tr>
+<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Spline functions. </p>
-<p><<a class="el" href="a00109.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/spline.hpp</a>> need to be included to use these functionalities. </p>
+<p>Add extra transformation matrices. </p>
+<p><<a class="el" href="a00106.html" title="GLM_GTX_transform2 ">glm/gtx/transform2.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga8119c04f8210fd0d292757565cd6918d"></a>
+<a class="anchor" id="gacfce1085167a8bfb71a55ea14d22752f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::catmullRom </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::proj2D </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v1</em>, </td>
+ <td class="paramtype">const tmat3x3< T, P > & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v2</em>, </td>
+ <td class="paramtype">const tvec3< T, P > & </td>
+ <td class="paramname"><em>normal</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build planar projection matrix along normal axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafab0418f2503ec2133cb2de828cc482a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::proj3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4< T, P > & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v3</em>, </td>
+ <td class="paramtype">const tvec3< T, P > & </td>
+ <td class="paramname"><em>normal</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build planar projection matrix along normal axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2874abd228989556d610a0bff993667a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias </td>
+ <td>(</td>
+ <td class="paramtype">valType </td>
+ <td class="paramname"><em>scale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">valType </td>
+ <td class="paramname"><em>bias</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Build a scale bias matrix. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac1a1139e2980021422d1fc1c42dc74f2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias </td>
+ <td>(</td>
+ <td class="paramtype">tmat4x4< valType, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v4</em>, </td>
+ <td class="paramtype">valType </td>
+ <td class="paramname"><em>scale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const & </td>
- <td class="paramname"><em>s</em> </td>
+ <td class="paramtype">valType </td>
+ <td class="paramname"><em>bias</em> </td>
</tr>
<tr>
<td></td>
@@ -101,44 +194,89 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a point from a catmull rom curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+<p>Build a scale bias matrix. </p>
+<p>From GLM_GTX_transform2 extension. </p>
</div>
</div>
-<a class="anchor" id="ga6b867eb52e2fc933d2e0bf26aabc9a70"></a>
+<a class="anchor" id="ga10f6c62d8f827c4cacedb71fd05e4ba2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::cubic </td>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::shearX2D </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v1</em>, </td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v2</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on X axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae06ce274e4754f925d5d68440e89452e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearX3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4< T, P > & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v3</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v4</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga21ade82859e09a5cdaf4a01fbf8dc61b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::shearY2D </td>
+ <td>(</td>
+ <td class="paramtype">tmat3x3< T, P > const & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const & </td>
- <td class="paramname"><em>s</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em> </td>
</tr>
<tr>
<td></td>
@@ -148,44 +286,67 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a point from a cubic curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+<p>Transforms a matrix with a shearing on Y axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
</div>
</div>
-<a class="anchor" id="gaa69e143f6374d32f934a8edeaa50bac9"></a>
+<a class="anchor" id="ga31253ea18fdcdfde08c134c8b67688f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL genType glm::hermite </td>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearY3D </td>
<td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v1</em>, </td>
+ <td class="paramtype">const tmat4x4< T, P > & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>t1</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>v2</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>z</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms a matrix with a shearing on Y axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5558ac64a7144685bf2eb4483a0e2f51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearZ3D </td>
+ <td>(</td>
+ <td class="paramtype">const tmat4x4< T, P > & </td>
+ <td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>t2</em>, </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">typename genType::value_type const & </td>
- <td class="paramname"><em>s</em> </td>
+ <td class="paramtype">T </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -195,8 +356,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Return a point from a hermite curve. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00233.html" title="Spline functions. ">GLM_GTX_spline</a> extension. </dd></dl>
+<p>Transforms a matrix with a shearing on Z axis. </p>
+<p>From GLM_GTX_transform2 extension. </p>
</div>
</div>
diff --git a/doc/api/a00234.html b/doc/api/a00234.html
index d6ab12e..a3f7030 100644
--- a/doc/api/a00234.html
+++ b/doc/api/a00234.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_std_based_type</title>
+<title>0.9.8: GLM_GTX_type_aligned</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -37,168 +37,7766 @@
</div><!-- top -->
<div class="header">
<div class="summary">
-<a href="#typedef-members">Typedefs</a> </div>
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_std_based_type<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_type_aligned<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:ga47c940f279a6b97ffc301eb4526a445a"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47c940f279a6b97ffc301eb4526a445a">size1</a></td></tr>
-<tr class="separator:ga47c940f279a6b97ffc301eb4526a445a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77d0b061efa41cb2ed2285d09294314e"><td class="memItemLeft" align="right" valign="top">typedef tvec1< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77d0b061efa41cb2ed2285d09294314e">size1_t</a></td></tr>
-<tr class="separator:ga77d0b061efa41cb2ed2285d09294314e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac0ef172641a1555684da0beb735c2a79"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac0ef172641a1555684da0beb735c2a79">size2</a></td></tr>
-<tr class="separator:gac0ef172641a1555684da0beb735c2a79"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memItemLeft" align="right" valign="top">typedef tvec2< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa7d72bbe318d27da9d30f27095e4c75e">size2_t</a></td></tr>
-<tr class="separator:gaa7d72bbe318d27da9d30f27095e4c75e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga51b5e9650c459973134ffb4236ae88b6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga51b5e9650c459973134ffb4236ae88b6">size3</a></td></tr>
-<tr class="separator:ga51b5e9650c459973134ffb4236ae88b6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memItemLeft" align="right" valign="top">typedef tvec3< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad364e6c302642e3bb89d756df5d0c8c6">size3_t</a></td></tr>
-<tr class="separator:gad364e6c302642e3bb89d756df5d0c8c6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf07a3f432e328c99d35637225c988121"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf07a3f432e328c99d35637225c988121">size4</a></td></tr>
-<tr class="separator:gaf07a3f432e328c99d35637225c988121"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06862b7d59094244025d34407b2cb796"><td class="memItemLeft" align="right" valign="top">typedef tvec4< std::size_t, defaultp > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06862b7d59094244025d34407b2cb796">size4_t</a></td></tr>
-<tr class="separator:ga06862b7d59094244025d34407b2cb796"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
+<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
+<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
+<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
+<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
+<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
+<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
+<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
+<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
+<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
+<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
+<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
+<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
+<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
+<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
+<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
+<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
+<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
+<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
+<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
+<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
+<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
+<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
+<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
+<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
+<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
+<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
+<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
+<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
+<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
+<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
+<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
+<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
+<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
+<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
+<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
+<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
+<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
+<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
+<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
+<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
+<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
+<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
+<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
+<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
+<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
+<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
+<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
+<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
+<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
+<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
+<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
+<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
+<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
+<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
+<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
+<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
+<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
+<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
+<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
+<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
+<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
+<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
+<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
+<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
+<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
+<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
+<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
+<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
+<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
+<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
+<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
+<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
+<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
+<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
+<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
+<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
+<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
+<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
+<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
+<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
+<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
+<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
+<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
+<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
+<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
+<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
+<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
+<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
+<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
+<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
+<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
+<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
+<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
+<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
+<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
+<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
+<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
+<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
+<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
+<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
+<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
+<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
+<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
+<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
+<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
+<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
+<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
+<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
+<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
+<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
+<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
+<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
+<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
+<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
+<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
+<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
+<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
+<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
+<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
+<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
+<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
+<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
+<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
+<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
+<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
+<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
+<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
+<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
+<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
+<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
+<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
+<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
+<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
+<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
+<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
+<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
+<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
+<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
+<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
+<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
+<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
+<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
+<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
+<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
+<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
+<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
+<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
+<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
+<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
+<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
+<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
+<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
+<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
+<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
+<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
+<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
+<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
+<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
+<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
+<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
+<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
+<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
+<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
+<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
+<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
+<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
+<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
+<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
+<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
+<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
+<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
+<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
+<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
+<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
+<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
+<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
+<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
+<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
+<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
+<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
+<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
+<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
+<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
+<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
+<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
+<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
+<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
+<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
+<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
+<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
+<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
+<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
+<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
+<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
+<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
+<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
+<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
+<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
+<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
+<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
+<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
+<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
+<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
+<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
+<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
+<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
+<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
+<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00234.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
+<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Adds vector types based on STL value types. </p>
-<p><<a class="el" href="a00110.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/std_based_type.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Typedef Documentation</h2>
-<a class="anchor" id="ga47c940f279a6b97ffc301eb4526a445a"></a>
+<p>Defines aligned types. </p>
+<p><a class="el" href="a00158.html">Precision types</a> defines aligned types.</p>
+<p><<a class="el" href="a00109.html" title="GLM_GTX_type_aligned ">glm/gtx/type_aligned.hpp</a>> need to be included to use these functionalities. </p>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gab5cd5c5fad228b25c782084f1cc30114"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec1<std::size_t, defaultp> size1</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5bb5dd895ef625c1b113f2cf400186b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac6efa54cf7c6c86f7158922abdb1a430"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6612eb77c8607048e7552279a11eeb5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ddc1848ff2223026db8968ce0c97497"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22240dd9458b0f8c11fbcc4f48714f68"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8130ea381d76a2cc34a93ccbb6cf487d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7ccb60f3215d293fd62b33b31ed0e7be"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_int64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac20d508d2ef5cc95ad3daf083c57ec2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50257b48069a31d0c8d9c1f644d267de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa07e98e67b7a3435c0746018c7a2a839"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga62601fc6f8ca298b77285bedf03faffd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_i64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac8cff825951aeb54dd846037113c72db"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78f443d88f438575a62b5df497cdf66b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0680cd3b5d4e8006985fb41a4f9b57af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad9e5babb1dd3e3531b42c37bf25dd951"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga353fd9fa8a9ad952fcabd0d53ad9a6dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2196442c0e5c5e8c77842de388c42521"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1284488189daf897cf095c5eefad9744"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga73fdc86a539808af58808b7c60a1c4d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_int64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafafeea923e1983262c972e2b83922d3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga63b882e29170d428463d99c3d630acc6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b20507bb048c1edea2d441cc953e6f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_i64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga56c5ca60813027b603c7b61425a0479d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a751b3aff24c0259f4a7357c2969089"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga70cd2144351c556469ee6119e59971fc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga46bbf08dc004d8c433041e0b5018a5d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3e10c77a20d1abad2de1c561c7a5c18"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga968f30319ebeaca9ebcd3a25a8e139fb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaae773c28e6390c6aa76f5b678b7098a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga790cfff1ca39d0ed696ffed980809311"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_int64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8265b91eb23c120a9b0c3e381bc37b96"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae6d384de17588d8edb894fbe06e0d410"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9c8172b745ee03fc5b2b91c350c2922f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga77e0dff12aa4020ddc3f8cabbea7b2e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_i64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabd82b9faa9d4d618dbbe0fc8a1efee63"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga285649744560be21000cfd81bbb5d507"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07732da630b2deda428ce95c0ecaf3ff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1a8da2a8c51f69c07a2e7f473aa420f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga848aedf13e2d9738acf0bb482c590174"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafd2803d39049dd45a37a63931e25d943"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae553b33349d6da832cf0724f1e024094"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga16d223a2b3409e812e1d3bd87f0e9e5c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_int64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2de065d2ddfdb366bcd0febca79ae2ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabd786bdc20a11c8cb05c92c8212e28d3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad4aefe56691cdb640c72f0d46d3fb532"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8fe9745f7de24a8394518152ff9fccdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadb997e409103d4da18abd837e636a496">i64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaad735483450099f7f882d4e3a3569bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">ivec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga76298aed82a439063c3d55980c84aa0b">aligned_ivec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac7b6f823802edbd6edbaf70ea25bf068"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gae4f38fd2c86cee6940986197777b3ca4">aligned_ivec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3e235bcd2b8029613f25b8d40a2d3ef7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga34aee73784bcc247d426250540c1911c">ivec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga32794322d294e5ace7fed4a61896f270">aligned_ivec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga50d8a9523968c77f8325b4c9bfbff41e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga7f79eae5927c9033d84617e49f6f34e4">aligned_ivec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9ec20fdfb729c702032da9378c79679f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga25b3fe1d9e8d0a5e86c1949c1acd8131"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2958f907719d94d8109b562540c910e2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1fe6fc032a978f1c845fac9aa0668714"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i8vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa4161e7a496dc96972254143fe873e55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9d7cb211ccda69b1c22ddeeb0f3e7aba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaee91dd2ab34423bcc11072ef6bd0f02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga49f047ccaa8b31fad9f26c67bf9b3510"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i16vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga904e9c2436bb099397c0823506a0771f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf90651cf2f5e7ee2b11cfdc5a6749534"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7354a4ead8cb17868aec36b9c30d6010"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad2ecbdea18732163e2636e27b37981ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i32vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga965b1c9aa1800e93d4abc2eb2b5afcbf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1f9e9c2ea2768675dff9bae5cde2d829"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad77c317b7d942322cd5be4c8127b3187"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga716f8ea809bdb11b5b542d8b71aeb04f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_i64vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit signed integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad46f8e9082d5878b1bc04f9c1471cdaa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1246094581af624aca6c7499aaabf801"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7a5009a1d0196bbf21dd7518f61f0249"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga45213fd18b3bb1df391671afefe4d1e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0ba26b4e3fd9ecbc25358efd68d8a4ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf2b58f5fb6d4ec8ce7b76221d3af43e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadc246401847dcba155f0699425e49dcd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaace64bddf51a9def01498da9a94fb01c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_uint64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad7bb97c29d664bd86ffb1bed4abc5534"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga404bba7785130e0b1384d695a9450b28"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga31ba41fd896257536958ec6080203d2a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacca5f13627f57b3505676e40a6e43e5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_lowp_u64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5faf1d3e70bf33174dd7f3d01d5b883b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga727e2bf2c433bb3b0182605860a48363"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12566ca66d5962dadb4a5eb4c74e891e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7b66a97a8acaa35c5a377b947318c6bc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa9cde002439b74fa66120a16a9f55fcc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1ca98c67f7d1e975f7c5202f1da1df1f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1dc8bc6199d785f235576948d80a597c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad14a0f2ec93519682b73d70b8e401d81"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_uint64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada8b996eb6526dc1ead813bd49539d1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga28948f6bfb52b42deb9d73ae1ea8d8b0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gad6a7c0b5630f89d3f1c5b4ef2919bb4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa0fc531cbaa972ac3a0b86d21ef4a7fa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mediump_u64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0ee829f7b754b262bbfe6317c0d678ac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga447848a817a626cae08cedc9778b331c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6027ae13b2734f542a6e7beee11b8820"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2aca46c8608c95ef991ee4c332acde5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaff50b10dd1c48be324fdaffd18e2c7ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9fc4421dbb833d5461e6d4e59dcfde55"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga329f1e2b94b33ba5e3918197030bcf03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga71e646f7e301aa422328194162c9c998"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_uint64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8942e09f479489441a7a5004c6d8cb66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaab32497d6e4db16ee439dbedd64c5865"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaaadbb34952eca8e3d7fe122c3e167742"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga92024d27c74a3650afb55ec8e024ed25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_highp_u64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>High precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabde1d0b4072df35453db76075ab896a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga06c296c9e398b294c8c9dd2a7693dcbb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacf1744488c96ebd33c9f36ad33b2010a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3328061a64c20ba59d5f9da24c2cd059"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf6ced36f13bae57f377bafa6f5fcc299"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint8_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafbc7fb7847bfc78a339d1d371c915c73"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint16_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa86bc56a73fd8120b1121b5f5e6245ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga68c0b9e669060d0eb5ab8c3ddeb483d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_uint64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4f3bab577daf3343e99cc005134bce86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga13a2391339d0790d43b76d00a7611c4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga197570e03acbc3d18ab698e342971e8f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8165913e068444f7842302d40ba897b9">u32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0f033b21e145a1faa32c62ede5878993"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3f312156984c365e9f65620354da70b">u64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga509af83527f5cd512e9a7873590663aa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">uvec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga1ff8ed402c93d280ff0597c1c5e7c548">aligned_uvec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga94e86186978c502c6dc0c0d9c4a30679"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga074137e3be58528d67041c223d49f398">aligned_uvec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5cec574686a7f3c8ed24bb195c5e2d0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga2a8d9c3046f89d854eb758adfa0811c0">aligned_uvec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga47edfdcee9c89b1ebdaf20450323b1d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gabf842c45eea186170c267a328e3f3b7d">aligned_uvec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5611d6718e3a00096918a64192e73a45"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">1 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga19837e6f72b60d994a805ef564c6c326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9740cf8e34f068049b42a2753f9601c2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8b8588bb221448f5541a858903822a57"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u8vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 8 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga991abe990c16de26b2129d6bc2f4c051"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">2 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac01bb9fc32a1cd76c2b80d030f71df4c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga09540dbca093793a36a8997e0d4bee77"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaecafb5996f5a44f57e34d29c8670741e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u16vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 16 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac6b161a04d2f8408fe1c9d857e8daac0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1fa0dfc8feb0fa17dab2acd43e05342b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0019500abbfa9c66eff61ca75eaaed94"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga14fd29d01dae7b08a04e9facbcc18824"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u32vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab253845f534a67136f9619843cade903"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga929427a7627940cdf3304f9c050b677d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 2 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae373b6c04fdf9879f33d63e6949c037e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 3 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga53a8a03dca2015baec4584f45b8e9cdc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_u64vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default precision 64 bit unsigned integer aligned vector of 4 components type. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab3301bae94ef5bf59fbdd9a24e7d2a01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga75930684ff2233171c573e603f216162"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada9b0bea273d3ae0286f891533b9568f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float32_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e3a2d83b131336219a0f4c7cbba2a48"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_float64_t </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadbce23b9f23d77bb3884e289a574ebd5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>32 bit single-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa4deaa0dea930c393d55e7a4352b0a20"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab5596d48586414c91ccb270962dc14d3">float64</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>64 bit double-precision floating-point aligned scalar. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga81bc497b2bfc6f80bab690c6ee28f0f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga05e6d4c908965d04191c2070a8d0a65e">aligned_vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gada3e8f783e9d4b90006695a16c39d4d4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga0682462f8096a226773e20fac993cde5">aligned_vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab8d081fac3a38d6f55fa552f32168d32"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga7cf643b66664e0cd3c48759ae66c2bd0">aligned_vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga12fe7b9769c964c5b48dcfd8b7f40198"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga85d89e83cb8137e1be1446de8c3b643a">aligned_vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaefab04611c7f8fe1fd9be3071efea6cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2543c05ba19b3bd19d45b1227390c5b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga009afd727fd657ef33a18754d6d28f60"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2f26177e74bfb301a3d0e02ec3c3ef53"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fvec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga309f495a1d6b75ddf195b674b65cb1e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">4 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5e185865a2217d0cd47187644683a8c3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gade4458b27b039b9ca34f8ec049f3115a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3e0f35fa0c626285a8bad41707e7316c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">dvec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga4974f46ae5a19415d91316960a53617a">aligned_dvec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga78bfec2f185d1d365ea0a9ef1e3d45b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga18d859f87122b2b3b2992ffe86dbebc0">aligned_dvec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01fe6fee6db5df580b6724a7e681f069"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#gaa37869eea77d28419b2fb0ff70b69bf0">aligned_dvec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga687d5b8f551d5af32425c0b2fba15e99"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="a00176.html#ga8a9f0a4795ccc442fa9901845026f9f5">aligned_dvec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga8e842371d46842ff8f1813419ba49d0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec1 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">8 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 1 component. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga32814aa0f19316b43134fc25f2aad2b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 2 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf3d3bbc1e93909b689123b085e177a14"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 3 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga804c654cead1139bd250f90f9bb01fad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64vec4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned vector of 4 components. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafed7d010235a3aa7ea2f88646858f2ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga17f911ee7b78ca6d1b91c4ab51ddb73c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga6dd3ec98a548755676267e59142911f8">mat3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga31940e6012b72110e26fdb0f54805033"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga01de96cd0b541c52d2b4a3faf65822e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat2x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac88a191b004bd341e64fc53b5a4d00e3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat3x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gabe8c745fa2ced44a600a6e3f19991161"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00157.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_mat4x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga719da577361541a4c43a2dd1d0e361e1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e7ee4f541e1d7db66cd1a224caacafb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae5d672d359f2a39f63f98c7975057486"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6fa2df037dbfc5fe8c8e0b4db8a34953"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0743b4f4f69a3227b82ff58f6abbad62"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1a76b325fdf70f961d835edd182c63dd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat2x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga4b4e181cd041ba28c3163e7b8074aef0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga27b13f465abc8a40705698145e222c3f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2608d19cc275830a6f8c0b6405625a4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat3x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga93f09768241358a287c4cca538f1f7e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga7c117e3ecca089e10247b1d41d88aff9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga07c75cd04ba42dc37fa3e105f89455c5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fmat4x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga65ff0d690a34a4d7f46f9b2eb51525ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gadd8ddbe2bf65ccede865ba2f510176dc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaf18dbff14bf13d3ff540c517659ec045"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga66339f6139bf7ff19e245beb33f61cc8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1558a48b3934011b52612809f443e46d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaa52e5732daa62851627021ad551c7680"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat2x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac09663c42566bcb58d23c6781ac4e85a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga3f510999e59e1b309113e1d561162b29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga2c9c94f0c89cd71ce56551db6cf4aaec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat3x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga99ce8274c750fbfdf0e70c95946a2875"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9476ef66790239df53dbe66f3989c3b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gacc429b3b0b49921e12713b6d31e14e1d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32mat4x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga88f6c6fa06e6e64479763e69444669cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Double-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaae8e4639c991e64754145ab8e4c32083"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of one std::size_t component. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga6e9094f3feb3b5b49d0f83683a101fde"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00059">59</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga77d0b061efa41cb2ed2285d09294314e"></a>
+<a class="anchor" id="gadbd2c639c03de1c3e9591b5a39f65559"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec1<std::size_t, defaultp> size1_t</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of one std::size_t component. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 1x1 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
+<dd>
+<a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab059d7b9fe2094acc563b7223987499f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00075">75</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned 2x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gac0ef172641a1555684da0beb735c2a79"></a>
+<a class="anchor" id="gabbc811d1c52ed2b8cfcaff1378f75c69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2<std::size_t, defaultp> size2</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat2x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of two std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 2x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9ddf5212777734d2fd841a84439f3bdf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00063">63</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned 3x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaa7d72bbe318d27da9d30f27095e4c75e"></a>
+<a class="anchor" id="gad1dda32ed09f94bfcf0a7d8edfb6cf13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec2<std::size_t, defaultp> size2_t</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of two std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 3x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga5875e0fa72f07e271e7931811cbbf31a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat3x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00079">79</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned 3x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga51b5e9650c459973134ffb4236ae88b6"></a>
+<a class="anchor" id="ga41e82cd6ac07f912ba2a2d45799dcf0d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec3<std::size_t, defaultp> size3</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x2 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of three std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 4x2 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga0892638d6ba773043b3d63d1d092622e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x3 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00067">67</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned 4x3 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gad364e6c302642e3bb89d756df5d0c8c6"></a>
+<a class="anchor" id="ga912a16432608b822f1e13607529934c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec3<std::size_t, defaultp> size3_t</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64mat4x4 </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of three std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Double-precision floating-point aligned 4x4 matrix. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gafd945a8ea86b042aba410e0560df9a3d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">quat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_quat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00083">83</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="gaf07a3f432e328c99d35637225c988121"></a>
+<a class="anchor" id="gad8c4bfacff70e57dc8303634c8bfce35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4<std::size_t, defaultp> size4</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">fquat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_fquat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of four std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaabc28c84a3288b697605d4688686f9a9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype">dquat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_dquat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00071">71</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
-<a class="anchor" id="ga06862b7d59094244025d34407b2cb796"></a>
+<a class="anchor" id="ga1ed8aeb5ca67fade269a46105f1bf273"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">typedef tvec4<std::size_t, defaultp> size4_t</td>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f32quat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">16 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Vector type based of four std::size_t components. </p>
-<dl class="section see"><dt>See also</dt><dd>GLM_GTX_std_based_type </dd></dl>
+<p>Single-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga95cc03b8b475993fa50e05e38e203303"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="a00177.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a> </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">aligned_f64quat </td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">32 </td>
+ <td class="paramname"> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Definition at line <a class="el" href="a00110_source.html#l00087">87</a> of file <a class="el" href="a00110_source.html">std_based_type.hpp</a>.</p>
+<p>Double-precision floating-point aligned quaternion. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00234.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
</div>
</div>
diff --git a/doc/api/a00235.html b/doc/api/a00235.html
index 3c2134d..01b2ce6 100644
--- a/doc/api/a00235.html
+++ b/doc/api/a00235.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_string_cast</title>
+<title>0.9.8: GLM_GTX_type_trait</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -36,42 +36,13 @@
</div>
</div><!-- top -->
<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_string_cast<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_type_trait<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplParams" colspan="2">template<template< typename, precision > class matType, typename T , precision P> </td></tr>
-<tr class="memitem:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00235.html#ga7b4f9233593bbf1d53762f801ef56fe6">to_string</a> (matType< T, P > const &x)</td></tr>
-<tr class="separator:ga7b4f9233593bbf1d53762f801ef56fe6"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Setup strings for GLM type values. </p>
-<p><<a class="el" href="a00111.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/string_cast.hpp</a>> need to be included to use these functionalities. This extension is not supported with CUDA </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga7b4f9233593bbf1d53762f801ef56fe6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL std::string glm::to_string </td>
- <td>(</td>
- <td class="paramtype">matType< T, P > const & </td>
- <td class="paramname"><em>x</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Create a string from a GLM vector or matrix typed variable. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00235.html" title="Setup strings for GLM type values. ">GLM_GTX_string_cast</a> extension. </dd></dl>
-
-</div>
-</div>
+<p>Defines traits for each type. </p>
+<p><<a class="el" href="a00126.html" title="GLM_GTX_type_trait ">glm/gtx/type_trait.hpp</a>> need to be included to use these functionalities. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/doc/api/a00236.html b/doc/api/a00236.html
index f21bb04..c2dbaa0 100644
--- a/doc/api/a00236.html
+++ b/doc/api/a00236.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_transform</title>
+<title>0.9.8: GLM_GTX_vector_angle</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,41 +39,41 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_transform<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_vector_angle<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga2020c91bf61e050882b3a5c18eada700"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga2020c91bf61e050882b3a5c18eada700">rotate</a> (T angle, tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga2020c91bf61e050882b3a5c18eada700"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga1972d4a66a2e92637c8aaee598417a71"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga1972d4a66a2e92637c8aaee598417a71">scale</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga1972d4a66a2e92637c8aaee598417a71"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga838c4505ef7f254ed05117b1ac9691fb">translate</a> (tvec3< T, P > const &v)</td></tr>
-<tr class="separator:ga838c4505ef7f254ed05117b1ac9691fb"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
+<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &x, vecType const &y)</td></tr>
+<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2< T, P > const &x, tvec2< T, P > const &y)</td></tr>
+<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
+<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00236.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</td></tr>
+<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add transformation matrices. </p>
-<p><<a class="el" href="a00112.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/transform.hpp</a>> need to be included to use these functionalities. </p>
+<p>Compute angle between vectors. </p>
+<p><<a class="el" href="a00137.html" title="GLM_GTX_vector_angle ">glm/gtx/vector_angle.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga2020c91bf61e050882b3a5c18eada700"></a>
+<a class="anchor" id="gab8691008a2536b681b711211816c14f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::rotate </td>
+ <td class="memname">GLM_FUNC_DECL vecType::value_type glm::angle </td>
<td>(</td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>angle</em>, </td>
+ <td class="paramtype">vecType const & </td>
+ <td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em> </td>
+ <td class="paramtype">vecType const & </td>
+ <td class="paramname"><em>y</em> </td>
</tr>
<tr>
<td></td>
@@ -83,52 +83,72 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Returns the absolute angle between two vectors. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1972d4a66a2e92637c8aaee598417a71"></a>
+<a class="anchor" id="ga82a19d474be13c92c7b10caab42a5a72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::scale </td>
+ <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
<td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec2< T, P > const & </td>
+ <td class="paramname"><em>y</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Returns the oriented angle between two 2d vectors. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga838c4505ef7f254ed05117b1ac9691fb"></a>
+<a class="anchor" id="ga7254dba112eff55f55f9544f41cb9ece"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::translate </td>
+ <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
<td>(</td>
<td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>v</em></td><td>)</td>
+ <td class="paramname"><em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>y</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">tvec3< T, P > const & </td>
+ <td class="paramname"><em>ref</em> </td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00174.html" title="Defines functions that generate common transformation matrices. ">GLM_GTC_matrix_transform</a> </dd>
-<dd>
-<a class="el" href="a00236.html" title="Add transformation matrices. ">GLM_GTX_transform</a> </dd></dl>
+<p>Returns the oriented angle between two 3d vectors based from a reference axis. </p>
+<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00236.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
</div>
</div>
diff --git a/doc/api/a00237.html b/doc/api/a00237.html
index 4db5cfa..7c81797 100644
--- a/doc/api/a00237.html
+++ b/doc/api/a00237.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_transform2</title>
+<title>0.9.8: GLM_GTX_vector_query</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,88 +39,56 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_transform2<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_vector_query<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gacfce1085167a8bfb71a55ea14d22752f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gacfce1085167a8bfb71a55ea14d22752f">proj2D</a> (const tmat3x3< T, P > &m, const tvec3< T, P > &normal)</td></tr>
-<tr class="separator:gacfce1085167a8bfb71a55ea14d22752f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gafab0418f2503ec2133cb2de828cc482a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gafab0418f2503ec2133cb2de828cc482a">proj3D</a> (const tmat4x4< T, P > &m, const tvec3< T, P > &normal)</td></tr>
-<tr class="separator:gafab0418f2503ec2133cb2de828cc482a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
-<tr class="memitem:ga2874abd228989556d610a0bff993667a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga2874abd228989556d610a0bff993667a">scaleBias</a> (valType scale, valType bias)</td></tr>
-<tr class="separator:ga2874abd228989556d610a0bff993667a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplParams" colspan="2">template<typename valType , precision P> </td></tr>
-<tr class="memitem:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< valType, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gac1a1139e2980021422d1fc1c42dc74f2">scaleBias</a> (tmat4x4< valType, P > const &m, valType scale, valType bias)</td></tr>
-<tr class="separator:gac1a1139e2980021422d1fc1c42dc74f2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga10f6c62d8f827c4cacedb71fd05e4ba2">shearX2D</a> (tmat3x3< T, P > const &m, T y)</td></tr>
-<tr class="separator:ga10f6c62d8f827c4cacedb71fd05e4ba2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:gae06ce274e4754f925d5d68440e89452e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gae06ce274e4754f925d5d68440e89452e">shearX3D</a> (const tmat4x4< T, P > &m, T y, T z)</td></tr>
-<tr class="separator:gae06ce274e4754f925d5d68440e89452e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat3x3< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga21ade82859e09a5cdaf4a01fbf8dc61b">shearY2D</a> (tmat3x3< T, P > const &m, T x)</td></tr>
-<tr class="separator:ga21ade82859e09a5cdaf4a01fbf8dc61b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga31253ea18fdcdfde08c134c8b67688f7">shearY3D</a> (const tmat4x4< T, P > &m, T x, T z)</td></tr>
-<tr class="separator:ga31253ea18fdcdfde08c134c8b67688f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL tmat4x4< T, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga5558ac64a7144685bf2eb4483a0e2f51">shearZ3D</a> (const tmat4x4< T, P > &m, T x, T y)</td></tr>
-<tr class="separator:ga5558ac64a7144685bf2eb4483a0e2f51"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
+<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
+<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00237.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
+<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Add extra transformation matrices. </p>
-<p><<a class="el" href="a00113.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/transform2.hpp</a>> need to be included to use these functionalities. </p>
+<p>Query informations of vector types. </p>
+<p><<a class="el" href="a00138.html" title="GLM_GTX_vector_query ">glm/gtx/vector_query.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gacfce1085167a8bfb71a55ea14d22752f"></a>
+<a class="anchor" id="ga465b844190d1740051e45d780832ea4c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::proj2D </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::areCollinear </td>
<td>(</td>
- <td class="paramtype">const tmat3x3< T, P > & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tvec3< T, P > & </td>
- <td class="paramname"><em>normal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build planar projection matrix along normal axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gafab0418f2503ec2133cb2de828cc482a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::proj3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4< T, P > & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">const tvec3< T, P > & </td>
- <td class="paramname"><em>normal</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -130,61 +98,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build planar projection matrix along normal axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
+<p>Check whether two vectors are collinears. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga2874abd228989556d610a0bff993667a"></a>
+<a class="anchor" id="gaee10acefed397c11e01f2862e837754c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::areOrthogonal </td>
<td>(</td>
- <td class="paramtype">valType </td>
- <td class="paramname"><em>scale</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">valType </td>
- <td class="paramname"><em>bias</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Build a scale bias matrix. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gac1a1139e2980021422d1fc1c42dc74f2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<valType, P> glm::scaleBias </td>
- <td>(</td>
- <td class="paramtype">tmat4x4< valType, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">valType </td>
- <td class="paramname"><em>scale</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">valType </td>
- <td class="paramname"><em>bias</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -194,61 +133,32 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Build a scale bias matrix. </p>
-<p>From GLM_GTX_transform2 extension. </p>
+<p>Check whether two vectors are orthogonals. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga10f6c62d8f827c4cacedb71fd05e4ba2"></a>
+<a class="anchor" id="ga89c82bc60e5b84e4489b74c15a134caf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::shearX2D </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::areOrthonormal </td>
<td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Transforms a matrix with a shearing on X axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
-
-</div>
-</div>
-<a class="anchor" id="gae06ce274e4754f925d5d68440e89452e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearX3D </td>
- <td>(</td>
- <td class="paramtype">const tmat4x4< T, P > & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -258,25 +168,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. </p>
+<p>Check whether two vectors are orthonormal. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga21ade82859e09a5cdaf4a01fbf8dc61b"></a>
+<a class="anchor" id="ga93ecd4137480483ce1af0de8bbbf6546"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat3x3<T, P> glm::shearY2D </td>
+ <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isCompNull </td>
<td>(</td>
- <td class="paramtype">tmat3x3< T, P > const & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -286,32 +197,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a shearing on Y axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
+<p>Check whether a each component of a vector is null. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga31253ea18fdcdfde08c134c8b67688f7"></a>
+<a class="anchor" id="ga6fa5fa2af67d14c205d24c49aad03270"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearY3D </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
<td>(</td>
- <td class="paramtype">const tmat4x4< T, P > & </td>
- <td class="paramname"><em>m</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>z</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -321,32 +226,26 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a shearing on Y axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
+<p>Check whether a vector is normalized. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga5558ac64a7144685bf2eb4483a0e2f51"></a>
+<a class="anchor" id="ga81a64edc1a2b470b82896592e89c523b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">GLM_FUNC_DECL tmat4x4<T, P> glm::shearZ3D </td>
+ <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
<td>(</td>
- <td class="paramtype">const tmat4x4< T, P > & </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>x</em>, </td>
+ <td class="paramtype">vecType< T, P > const & </td>
+ <td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">T </td>
- <td class="paramname"><em>y</em> </td>
+ <td class="paramtype">T const & </td>
+ <td class="paramname"><em>epsilon</em> </td>
</tr>
<tr>
<td></td>
@@ -356,8 +255,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Transforms a matrix with a shearing on Z axis. </p>
-<p>From GLM_GTX_transform2 extension. </p>
+<p>Check whether a vector is null. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00237.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
</div>
</div>
diff --git a/doc/api/a00238.html b/doc/api/a00238.html
index 2be046d..17269bd 100644
--- a/doc/api/a00238.html
+++ b/doc/api/a00238.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_type_aligned</title>
+<title>0.9.8: GLM_GTX_wrap</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -39,7764 +39,102 @@
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
-<div class="title">GLM_GTX_type_aligned<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
+<div class="title">GLM_GTX_wrap<div class="ingroups"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:gab5cd5c5fad228b25c782084f1cc30114"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab5cd5c5fad228b25c782084f1cc30114">GLM_ALIGNED_TYPEDEF</a> (lowp_int8, aligned_lowp_int8, 1)</td></tr>
-<tr class="separator:gab5cd5c5fad228b25c782084f1cc30114"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5bb5dd895ef625c1b113f2cf400186b0">GLM_ALIGNED_TYPEDEF</a> (lowp_int16, aligned_lowp_int16, 2)</td></tr>
-<tr class="separator:ga5bb5dd895ef625c1b113f2cf400186b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6efa54cf7c6c86f7158922abdb1a430">GLM_ALIGNED_TYPEDEF</a> (lowp_int32, aligned_lowp_int32, 4)</td></tr>
-<tr class="separator:gac6efa54cf7c6c86f7158922abdb1a430"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6612eb77c8607048e7552279a11eeb5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6612eb77c8607048e7552279a11eeb5f">GLM_ALIGNED_TYPEDEF</a> (lowp_int64, aligned_lowp_int64, 8)</td></tr>
-<tr class="separator:ga6612eb77c8607048e7552279a11eeb5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ddc1848ff2223026db8968ce0c97497"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ddc1848ff2223026db8968ce0c97497">GLM_ALIGNED_TYPEDEF</a> (lowp_int8_t, aligned_lowp_int8_t, 1)</td></tr>
-<tr class="separator:ga7ddc1848ff2223026db8968ce0c97497"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga22240dd9458b0f8c11fbcc4f48714f68">GLM_ALIGNED_TYPEDEF</a> (lowp_int16_t, aligned_lowp_int16_t, 2)</td></tr>
-<tr class="separator:ga22240dd9458b0f8c11fbcc4f48714f68"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8130ea381d76a2cc34a93ccbb6cf487d">GLM_ALIGNED_TYPEDEF</a> (lowp_int32_t, aligned_lowp_int32_t, 4)</td></tr>
-<tr class="separator:ga8130ea381d76a2cc34a93ccbb6cf487d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7ccb60f3215d293fd62b33b31ed0e7be">GLM_ALIGNED_TYPEDEF</a> (lowp_int64_t, aligned_lowp_int64_t, 8)</td></tr>
-<tr class="separator:ga7ccb60f3215d293fd62b33b31ed0e7be"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac20d508d2ef5cc95ad3daf083c57ec2a">GLM_ALIGNED_TYPEDEF</a> (lowp_i8, aligned_lowp_i8, 1)</td></tr>
-<tr class="separator:gac20d508d2ef5cc95ad3daf083c57ec2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50257b48069a31d0c8d9c1f644d267de"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50257b48069a31d0c8d9c1f644d267de">GLM_ALIGNED_TYPEDEF</a> (lowp_i16, aligned_lowp_i16, 2)</td></tr>
-<tr class="separator:ga50257b48069a31d0c8d9c1f644d267de"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa07e98e67b7a3435c0746018c7a2a839">GLM_ALIGNED_TYPEDEF</a> (lowp_i32, aligned_lowp_i32, 4)</td></tr>
-<tr class="separator:gaa07e98e67b7a3435c0746018c7a2a839"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga62601fc6f8ca298b77285bedf03faffd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga62601fc6f8ca298b77285bedf03faffd">GLM_ALIGNED_TYPEDEF</a> (lowp_i64, aligned_lowp_i64, 8)</td></tr>
-<tr class="separator:ga62601fc6f8ca298b77285bedf03faffd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac8cff825951aeb54dd846037113c72db"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac8cff825951aeb54dd846037113c72db">GLM_ALIGNED_TYPEDEF</a> (mediump_int8, aligned_mediump_int8, 1)</td></tr>
-<tr class="separator:gac8cff825951aeb54dd846037113c72db"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78f443d88f438575a62b5df497cdf66b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78f443d88f438575a62b5df497cdf66b">GLM_ALIGNED_TYPEDEF</a> (mediump_int16, aligned_mediump_int16, 2)</td></tr>
-<tr class="separator:ga78f443d88f438575a62b5df497cdf66b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0680cd3b5d4e8006985fb41a4f9b57af">GLM_ALIGNED_TYPEDEF</a> (mediump_int32, aligned_mediump_int32, 4)</td></tr>
-<tr class="separator:ga0680cd3b5d4e8006985fb41a4f9b57af"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad9e5babb1dd3e3531b42c37bf25dd951">GLM_ALIGNED_TYPEDEF</a> (mediump_int64, aligned_mediump_int64, 8)</td></tr>
-<tr class="separator:gad9e5babb1dd3e3531b42c37bf25dd951"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd">GLM_ALIGNED_TYPEDEF</a> (mediump_int8_t, aligned_mediump_int8_t, 1)</td></tr>
-<tr class="separator:ga353fd9fa8a9ad952fcabd0d53ad9a6dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2196442c0e5c5e8c77842de388c42521"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2196442c0e5c5e8c77842de388c42521">GLM_ALIGNED_TYPEDEF</a> (mediump_int16_t, aligned_mediump_int16_t, 2)</td></tr>
-<tr class="separator:ga2196442c0e5c5e8c77842de388c42521"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1284488189daf897cf095c5eefad9744"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1284488189daf897cf095c5eefad9744">GLM_ALIGNED_TYPEDEF</a> (mediump_int32_t, aligned_mediump_int32_t, 4)</td></tr>
-<tr class="separator:ga1284488189daf897cf095c5eefad9744"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga73fdc86a539808af58808b7c60a1c4d8">GLM_ALIGNED_TYPEDEF</a> (mediump_int64_t, aligned_mediump_int64_t, 8)</td></tr>
-<tr class="separator:ga73fdc86a539808af58808b7c60a1c4d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafafeea923e1983262c972e2b83922d3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafafeea923e1983262c972e2b83922d3b">GLM_ALIGNED_TYPEDEF</a> (mediump_i8, aligned_mediump_i8, 1)</td></tr>
-<tr class="separator:gafafeea923e1983262c972e2b83922d3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4">GLM_ALIGNED_TYPEDEF</a> (mediump_i16, aligned_mediump_i16, 2)</td></tr>
-<tr class="separator:ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga63b882e29170d428463d99c3d630acc6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga63b882e29170d428463d99c3d630acc6">GLM_ALIGNED_TYPEDEF</a> (mediump_i32, aligned_mediump_i32, 4)</td></tr>
-<tr class="separator:ga63b882e29170d428463d99c3d630acc6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b20507bb048c1edea2d441cc953e6f0">GLM_ALIGNED_TYPEDEF</a> (mediump_i64, aligned_mediump_i64, 8)</td></tr>
-<tr class="separator:ga8b20507bb048c1edea2d441cc953e6f0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga56c5ca60813027b603c7b61425a0479d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga56c5ca60813027b603c7b61425a0479d">GLM_ALIGNED_TYPEDEF</a> (highp_int8, aligned_highp_int8, 1)</td></tr>
-<tr class="separator:ga56c5ca60813027b603c7b61425a0479d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a751b3aff24c0259f4a7357c2969089"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a751b3aff24c0259f4a7357c2969089">GLM_ALIGNED_TYPEDEF</a> (highp_int16, aligned_highp_int16, 2)</td></tr>
-<tr class="separator:ga7a751b3aff24c0259f4a7357c2969089"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga70cd2144351c556469ee6119e59971fc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga70cd2144351c556469ee6119e59971fc">GLM_ALIGNED_TYPEDEF</a> (highp_int32, aligned_highp_int32, 4)</td></tr>
-<tr class="separator:ga70cd2144351c556469ee6119e59971fc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga46bbf08dc004d8c433041e0b5018a5d3">GLM_ALIGNED_TYPEDEF</a> (highp_int64, aligned_highp_int64, 8)</td></tr>
-<tr class="separator:ga46bbf08dc004d8c433041e0b5018a5d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3e10c77a20d1abad2de1c561c7a5c18">GLM_ALIGNED_TYPEDEF</a> (highp_int8_t, aligned_highp_int8_t, 1)</td></tr>
-<tr class="separator:gab3e10c77a20d1abad2de1c561c7a5c18"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga968f30319ebeaca9ebcd3a25a8e139fb">GLM_ALIGNED_TYPEDEF</a> (highp_int16_t, aligned_highp_int16_t, 2)</td></tr>
-<tr class="separator:ga968f30319ebeaca9ebcd3a25a8e139fb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae773c28e6390c6aa76f5b678b7098a3">GLM_ALIGNED_TYPEDEF</a> (highp_int32_t, aligned_highp_int32_t, 4)</td></tr>
-<tr class="separator:gaae773c28e6390c6aa76f5b678b7098a3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga790cfff1ca39d0ed696ffed980809311"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga790cfff1ca39d0ed696ffed980809311">GLM_ALIGNED_TYPEDEF</a> (highp_int64_t, aligned_highp_int64_t, 8)</td></tr>
-<tr class="separator:ga790cfff1ca39d0ed696ffed980809311"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8265b91eb23c120a9b0c3e381bc37b96">GLM_ALIGNED_TYPEDEF</a> (highp_i8, aligned_highp_i8, 1)</td></tr>
-<tr class="separator:ga8265b91eb23c120a9b0c3e381bc37b96"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae6d384de17588d8edb894fbe06e0d410"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae6d384de17588d8edb894fbe06e0d410">GLM_ALIGNED_TYPEDEF</a> (highp_i16, aligned_highp_i16, 2)</td></tr>
-<tr class="separator:gae6d384de17588d8edb894fbe06e0d410"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9c8172b745ee03fc5b2b91c350c2922f">GLM_ALIGNED_TYPEDEF</a> (highp_i32, aligned_highp_i32, 4)</td></tr>
-<tr class="separator:ga9c8172b745ee03fc5b2b91c350c2922f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6">GLM_ALIGNED_TYPEDEF</a> (highp_i64, aligned_highp_i64, 8)</td></tr>
-<tr class="separator:ga77e0dff12aa4020ddc3f8cabbea7b2e6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd82b9faa9d4d618dbbe0fc8a1efee63">GLM_ALIGNED_TYPEDEF</a> (int8, aligned_int8, 1)</td></tr>
-<tr class="separator:gabd82b9faa9d4d618dbbe0fc8a1efee63"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga285649744560be21000cfd81bbb5d507"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga285649744560be21000cfd81bbb5d507">GLM_ALIGNED_TYPEDEF</a> (int16, aligned_int16, 2)</td></tr>
-<tr class="separator:ga285649744560be21000cfd81bbb5d507"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07732da630b2deda428ce95c0ecaf3ff">GLM_ALIGNED_TYPEDEF</a> (int32, aligned_int32, 4)</td></tr>
-<tr class="separator:ga07732da630b2deda428ce95c0ecaf3ff"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a8da2a8c51f69c07a2e7f473aa420f4">GLM_ALIGNED_TYPEDEF</a> (int64, aligned_int64, 8)</td></tr>
-<tr class="separator:ga1a8da2a8c51f69c07a2e7f473aa420f4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga848aedf13e2d9738acf0bb482c590174"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga848aedf13e2d9738acf0bb482c590174">GLM_ALIGNED_TYPEDEF</a> (int8_t, aligned_int8_t, 1)</td></tr>
-<tr class="separator:ga848aedf13e2d9738acf0bb482c590174"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd2803d39049dd45a37a63931e25d943"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd2803d39049dd45a37a63931e25d943">GLM_ALIGNED_TYPEDEF</a> (int16_t, aligned_int16_t, 2)</td></tr>
-<tr class="separator:gafd2803d39049dd45a37a63931e25d943"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae553b33349d6da832cf0724f1e024094"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae553b33349d6da832cf0724f1e024094">GLM_ALIGNED_TYPEDEF</a> (int32_t, aligned_int32_t, 4)</td></tr>
-<tr class="separator:gae553b33349d6da832cf0724f1e024094"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga16d223a2b3409e812e1d3bd87f0e9e5c">GLM_ALIGNED_TYPEDEF</a> (int64_t, aligned_int64_t, 8)</td></tr>
-<tr class="separator:ga16d223a2b3409e812e1d3bd87f0e9e5c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2de065d2ddfdb366bcd0febca79ae2ad">GLM_ALIGNED_TYPEDEF</a> (i8, aligned_i8, 1)</td></tr>
-<tr class="separator:ga2de065d2ddfdb366bcd0febca79ae2ad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabd786bdc20a11c8cb05c92c8212e28d3">GLM_ALIGNED_TYPEDEF</a> (i16, aligned_i16, 2)</td></tr>
-<tr class="separator:gabd786bdc20a11c8cb05c92c8212e28d3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad4aefe56691cdb640c72f0d46d3fb532">GLM_ALIGNED_TYPEDEF</a> (i32, aligned_i32, 4)</td></tr>
-<tr class="separator:gad4aefe56691cdb640c72f0d46d3fb532"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8fe9745f7de24a8394518152ff9fccdc">GLM_ALIGNED_TYPEDEF</a> (i64, aligned_i64, 8)</td></tr>
-<tr class="separator:ga8fe9745f7de24a8394518152ff9fccdc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaad735483450099f7f882d4e3a3569bd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaad735483450099f7f882d4e3a3569bd">GLM_ALIGNED_TYPEDEF</a> (ivec1, aligned_ivec1, 4)</td></tr>
-<tr class="separator:gaaad735483450099f7f882d4e3a3569bd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac7b6f823802edbd6edbaf70ea25bf068">GLM_ALIGNED_TYPEDEF</a> (ivec2, aligned_ivec2, 8)</td></tr>
-<tr class="separator:gac7b6f823802edbd6edbaf70ea25bf068"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e235bcd2b8029613f25b8d40a2d3ef7">GLM_ALIGNED_TYPEDEF</a> (ivec3, aligned_ivec3, 16)</td></tr>
-<tr class="separator:ga3e235bcd2b8029613f25b8d40a2d3ef7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga50d8a9523968c77f8325b4c9bfbff41e">GLM_ALIGNED_TYPEDEF</a> (ivec4, aligned_ivec4, 16)</td></tr>
-<tr class="separator:ga50d8a9523968c77f8325b4c9bfbff41e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ec20fdfb729c702032da9378c79679f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ec20fdfb729c702032da9378c79679f">GLM_ALIGNED_TYPEDEF</a> (i8vec1, aligned_i8vec1, 1)</td></tr>
-<tr class="separator:ga9ec20fdfb729c702032da9378c79679f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131">GLM_ALIGNED_TYPEDEF</a> (i8vec2, aligned_i8vec2, 2)</td></tr>
-<tr class="separator:ga25b3fe1d9e8d0a5e86c1949c1acd8131"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2958f907719d94d8109b562540c910e2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2958f907719d94d8109b562540c910e2">GLM_ALIGNED_TYPEDEF</a> (i8vec3, aligned_i8vec3, 4)</td></tr>
-<tr class="separator:ga2958f907719d94d8109b562540c910e2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fe6fc032a978f1c845fac9aa0668714">GLM_ALIGNED_TYPEDEF</a> (i8vec4, aligned_i8vec4, 4)</td></tr>
-<tr class="separator:ga1fe6fc032a978f1c845fac9aa0668714"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4161e7a496dc96972254143fe873e55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4161e7a496dc96972254143fe873e55">GLM_ALIGNED_TYPEDEF</a> (i16vec1, aligned_i16vec1, 2)</td></tr>
-<tr class="separator:gaa4161e7a496dc96972254143fe873e55"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba">GLM_ALIGNED_TYPEDEF</a> (i16vec2, aligned_i16vec2, 4)</td></tr>
-<tr class="separator:ga9d7cb211ccda69b1c22ddeeb0f3e7aba"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaee91dd2ab34423bcc11072ef6bd0f02">GLM_ALIGNED_TYPEDEF</a> (i16vec3, aligned_i16vec3, 8)</td></tr>
-<tr class="separator:gaaee91dd2ab34423bcc11072ef6bd0f02"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga49f047ccaa8b31fad9f26c67bf9b3510">GLM_ALIGNED_TYPEDEF</a> (i16vec4, aligned_i16vec4, 8)</td></tr>
-<tr class="separator:ga49f047ccaa8b31fad9f26c67bf9b3510"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga904e9c2436bb099397c0823506a0771f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga904e9c2436bb099397c0823506a0771f">GLM_ALIGNED_TYPEDEF</a> (i32vec1, aligned_i32vec1, 4)</td></tr>
-<tr class="separator:ga904e9c2436bb099397c0823506a0771f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf90651cf2f5e7ee2b11cfdc5a6749534">GLM_ALIGNED_TYPEDEF</a> (i32vec2, aligned_i32vec2, 8)</td></tr>
-<tr class="separator:gaf90651cf2f5e7ee2b11cfdc5a6749534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7354a4ead8cb17868aec36b9c30d6010">GLM_ALIGNED_TYPEDEF</a> (i32vec3, aligned_i32vec3, 16)</td></tr>
-<tr class="separator:ga7354a4ead8cb17868aec36b9c30d6010"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad2ecbdea18732163e2636e27b37981ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad2ecbdea18732163e2636e27b37981ee">GLM_ALIGNED_TYPEDEF</a> (i32vec4, aligned_i32vec4, 16)</td></tr>
-<tr class="separator:gad2ecbdea18732163e2636e27b37981ee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf">GLM_ALIGNED_TYPEDEF</a> (i64vec1, aligned_i64vec1, 8)</td></tr>
-<tr class="separator:ga965b1c9aa1800e93d4abc2eb2b5afcbf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1f9e9c2ea2768675dff9bae5cde2d829">GLM_ALIGNED_TYPEDEF</a> (i64vec2, aligned_i64vec2, 16)</td></tr>
-<tr class="separator:ga1f9e9c2ea2768675dff9bae5cde2d829"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad77c317b7d942322cd5be4c8127b3187"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad77c317b7d942322cd5be4c8127b3187">GLM_ALIGNED_TYPEDEF</a> (i64vec3, aligned_i64vec3, 32)</td></tr>
-<tr class="separator:gad77c317b7d942322cd5be4c8127b3187"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga716f8ea809bdb11b5b542d8b71aeb04f">GLM_ALIGNED_TYPEDEF</a> (i64vec4, aligned_i64vec4, 32)</td></tr>
-<tr class="separator:ga716f8ea809bdb11b5b542d8b71aeb04f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad46f8e9082d5878b1bc04f9c1471cdaa">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8, aligned_lowp_uint8, 1)</td></tr>
-<tr class="separator:gad46f8e9082d5878b1bc04f9c1471cdaa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1246094581af624aca6c7499aaabf801"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1246094581af624aca6c7499aaabf801">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16, aligned_lowp_uint16, 2)</td></tr>
-<tr class="separator:ga1246094581af624aca6c7499aaabf801"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7a5009a1d0196bbf21dd7518f61f0249">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32, aligned_lowp_uint32, 4)</td></tr>
-<tr class="separator:ga7a5009a1d0196bbf21dd7518f61f0249"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga45213fd18b3bb1df391671afefe4d1e7">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64, aligned_lowp_uint64, 8)</td></tr>
-<tr class="separator:ga45213fd18b3bb1df391671afefe4d1e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca">GLM_ALIGNED_TYPEDEF</a> (lowp_uint8_t, aligned_lowp_uint8_t, 1)</td></tr>
-<tr class="separator:ga0ba26b4e3fd9ecbc25358efd68d8a4ca"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1">GLM_ALIGNED_TYPEDEF</a> (lowp_uint16_t, aligned_lowp_uint16_t, 2)</td></tr>
-<tr class="separator:gaf2b58f5fb6d4ec8ce7b76221d3af43e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadc246401847dcba155f0699425e49dcd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadc246401847dcba155f0699425e49dcd">GLM_ALIGNED_TYPEDEF</a> (lowp_uint32_t, aligned_lowp_uint32_t, 4)</td></tr>
-<tr class="separator:gadc246401847dcba155f0699425e49dcd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaace64bddf51a9def01498da9a94fb01c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaace64bddf51a9def01498da9a94fb01c">GLM_ALIGNED_TYPEDEF</a> (lowp_uint64_t, aligned_lowp_uint64_t, 8)</td></tr>
-<tr class="separator:gaace64bddf51a9def01498da9a94fb01c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad7bb97c29d664bd86ffb1bed4abc5534">GLM_ALIGNED_TYPEDEF</a> (lowp_u8, aligned_lowp_u8, 1)</td></tr>
-<tr class="separator:gad7bb97c29d664bd86ffb1bed4abc5534"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga404bba7785130e0b1384d695a9450b28"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga404bba7785130e0b1384d695a9450b28">GLM_ALIGNED_TYPEDEF</a> (lowp_u16, aligned_lowp_u16, 2)</td></tr>
-<tr class="separator:ga404bba7785130e0b1384d695a9450b28"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31ba41fd896257536958ec6080203d2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31ba41fd896257536958ec6080203d2a">GLM_ALIGNED_TYPEDEF</a> (lowp_u32, aligned_lowp_u32, 4)</td></tr>
-<tr class="separator:ga31ba41fd896257536958ec6080203d2a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacca5f13627f57b3505676e40a6e43e5e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacca5f13627f57b3505676e40a6e43e5e">GLM_ALIGNED_TYPEDEF</a> (lowp_u64, aligned_lowp_u64, 8)</td></tr>
-<tr class="separator:gacca5f13627f57b3505676e40a6e43e5e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5faf1d3e70bf33174dd7f3d01d5b883b">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8, aligned_mediump_uint8, 1)</td></tr>
-<tr class="separator:ga5faf1d3e70bf33174dd7f3d01d5b883b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga727e2bf2c433bb3b0182605860a48363"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga727e2bf2c433bb3b0182605860a48363">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16, aligned_mediump_uint16, 2)</td></tr>
-<tr class="separator:ga727e2bf2c433bb3b0182605860a48363"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12566ca66d5962dadb4a5eb4c74e891e">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32, aligned_mediump_uint32, 4)</td></tr>
-<tr class="separator:ga12566ca66d5962dadb4a5eb4c74e891e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7b66a97a8acaa35c5a377b947318c6bc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64, aligned_mediump_uint64, 8)</td></tr>
-<tr class="separator:ga7b66a97a8acaa35c5a377b947318c6bc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa9cde002439b74fa66120a16a9f55fcc">GLM_ALIGNED_TYPEDEF</a> (mediump_uint8_t, aligned_mediump_uint8_t, 1)</td></tr>
-<tr class="separator:gaa9cde002439b74fa66120a16a9f55fcc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ca98c67f7d1e975f7c5202f1da1df1f">GLM_ALIGNED_TYPEDEF</a> (mediump_uint16_t, aligned_mediump_uint16_t, 2)</td></tr>
-<tr class="separator:ga1ca98c67f7d1e975f7c5202f1da1df1f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1dc8bc6199d785f235576948d80a597c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1dc8bc6199d785f235576948d80a597c">GLM_ALIGNED_TYPEDEF</a> (mediump_uint32_t, aligned_mediump_uint32_t, 4)</td></tr>
-<tr class="separator:ga1dc8bc6199d785f235576948d80a597c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad14a0f2ec93519682b73d70b8e401d81"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad14a0f2ec93519682b73d70b8e401d81">GLM_ALIGNED_TYPEDEF</a> (mediump_uint64_t, aligned_mediump_uint64_t, 8)</td></tr>
-<tr class="separator:gad14a0f2ec93519682b73d70b8e401d81"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada8b996eb6526dc1ead813bd49539d1b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada8b996eb6526dc1ead813bd49539d1b">GLM_ALIGNED_TYPEDEF</a> (mediump_u8, aligned_mediump_u8, 1)</td></tr>
-<tr class="separator:gada8b996eb6526dc1ead813bd49539d1b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0">GLM_ALIGNED_TYPEDEF</a> (mediump_u16, aligned_mediump_u16, 2)</td></tr>
-<tr class="separator:ga28948f6bfb52b42deb9d73ae1ea8d8b0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c">GLM_ALIGNED_TYPEDEF</a> (mediump_u32, aligned_mediump_u32, 4)</td></tr>
-<tr class="separator:gad6a7c0b5630f89d3f1c5b4ef2919bb4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa">GLM_ALIGNED_TYPEDEF</a> (mediump_u64, aligned_mediump_u64, 8)</td></tr>
-<tr class="separator:gaa0fc531cbaa972ac3a0b86d21ef4a7fa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0ee829f7b754b262bbfe6317c0d678ac">GLM_ALIGNED_TYPEDEF</a> (highp_uint8, aligned_highp_uint8, 1)</td></tr>
-<tr class="separator:ga0ee829f7b754b262bbfe6317c0d678ac"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga447848a817a626cae08cedc9778b331c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga447848a817a626cae08cedc9778b331c">GLM_ALIGNED_TYPEDEF</a> (highp_uint16, aligned_highp_uint16, 2)</td></tr>
-<tr class="separator:ga447848a817a626cae08cedc9778b331c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6027ae13b2734f542a6e7beee11b8820"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6027ae13b2734f542a6e7beee11b8820">GLM_ALIGNED_TYPEDEF</a> (highp_uint32, aligned_highp_uint32, 4)</td></tr>
-<tr class="separator:ga6027ae13b2734f542a6e7beee11b8820"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2aca46c8608c95ef991ee4c332acde5f">GLM_ALIGNED_TYPEDEF</a> (highp_uint64, aligned_highp_uint64, 8)</td></tr>
-<tr class="separator:ga2aca46c8608c95ef991ee4c332acde5f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaff50b10dd1c48be324fdaffd18e2c7ea">GLM_ALIGNED_TYPEDEF</a> (highp_uint8_t, aligned_highp_uint8_t, 1)</td></tr>
-<tr class="separator:gaff50b10dd1c48be324fdaffd18e2c7ea"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9fc4421dbb833d5461e6d4e59dcfde55">GLM_ALIGNED_TYPEDEF</a> (highp_uint16_t, aligned_highp_uint16_t, 2)</td></tr>
-<tr class="separator:ga9fc4421dbb833d5461e6d4e59dcfde55"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga329f1e2b94b33ba5e3918197030bcf03">GLM_ALIGNED_TYPEDEF</a> (highp_uint32_t, aligned_highp_uint32_t, 4)</td></tr>
-<tr class="separator:ga329f1e2b94b33ba5e3918197030bcf03"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga71e646f7e301aa422328194162c9c998"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga71e646f7e301aa422328194162c9c998">GLM_ALIGNED_TYPEDEF</a> (highp_uint64_t, aligned_highp_uint64_t, 8)</td></tr>
-<tr class="separator:ga71e646f7e301aa422328194162c9c998"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8942e09f479489441a7a5004c6d8cb66"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8942e09f479489441a7a5004c6d8cb66">GLM_ALIGNED_TYPEDEF</a> (highp_u8, aligned_highp_u8, 1)</td></tr>
-<tr class="separator:ga8942e09f479489441a7a5004c6d8cb66"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaab32497d6e4db16ee439dbedd64c5865"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaab32497d6e4db16ee439dbedd64c5865">GLM_ALIGNED_TYPEDEF</a> (highp_u16, aligned_highp_u16, 2)</td></tr>
-<tr class="separator:gaab32497d6e4db16ee439dbedd64c5865"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaaadbb34952eca8e3d7fe122c3e167742">GLM_ALIGNED_TYPEDEF</a> (highp_u32, aligned_highp_u32, 4)</td></tr>
-<tr class="separator:gaaadbb34952eca8e3d7fe122c3e167742"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga92024d27c74a3650afb55ec8e024ed25"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga92024d27c74a3650afb55ec8e024ed25">GLM_ALIGNED_TYPEDEF</a> (highp_u64, aligned_highp_u64, 8)</td></tr>
-<tr class="separator:ga92024d27c74a3650afb55ec8e024ed25"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabde1d0b4072df35453db76075ab896a6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabde1d0b4072df35453db76075ab896a6">GLM_ALIGNED_TYPEDEF</a> (uint8, aligned_uint8, 1)</td></tr>
-<tr class="separator:gabde1d0b4072df35453db76075ab896a6"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga06c296c9e398b294c8c9dd2a7693dcbb">GLM_ALIGNED_TYPEDEF</a> (uint16, aligned_uint16, 2)</td></tr>
-<tr class="separator:ga06c296c9e398b294c8c9dd2a7693dcbb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacf1744488c96ebd33c9f36ad33b2010a">GLM_ALIGNED_TYPEDEF</a> (uint32, aligned_uint32, 4)</td></tr>
-<tr class="separator:gacf1744488c96ebd33c9f36ad33b2010a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3328061a64c20ba59d5f9da24c2cd059">GLM_ALIGNED_TYPEDEF</a> (uint64, aligned_uint64, 8)</td></tr>
-<tr class="separator:ga3328061a64c20ba59d5f9da24c2cd059"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf6ced36f13bae57f377bafa6f5fcc299">GLM_ALIGNED_TYPEDEF</a> (uint8_t, aligned_uint8_t, 1)</td></tr>
-<tr class="separator:gaf6ced36f13bae57f377bafa6f5fcc299"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafbc7fb7847bfc78a339d1d371c915c73">GLM_ALIGNED_TYPEDEF</a> (uint16_t, aligned_uint16_t, 2)</td></tr>
-<tr class="separator:gafbc7fb7847bfc78a339d1d371c915c73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa86bc56a73fd8120b1121b5f5e6245ae">GLM_ALIGNED_TYPEDEF</a> (uint32_t, aligned_uint32_t, 4)</td></tr>
-<tr class="separator:gaa86bc56a73fd8120b1121b5f5e6245ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8">GLM_ALIGNED_TYPEDEF</a> (uint64_t, aligned_uint64_t, 8)</td></tr>
-<tr class="separator:ga68c0b9e669060d0eb5ab8c3ddeb483d8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4f3bab577daf3343e99cc005134bce86"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4f3bab577daf3343e99cc005134bce86">GLM_ALIGNED_TYPEDEF</a> (u8, aligned_u8, 1)</td></tr>
-<tr class="separator:ga4f3bab577daf3343e99cc005134bce86"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga13a2391339d0790d43b76d00a7611c4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga13a2391339d0790d43b76d00a7611c4f">GLM_ALIGNED_TYPEDEF</a> (u16, aligned_u16, 2)</td></tr>
-<tr class="separator:ga13a2391339d0790d43b76d00a7611c4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga197570e03acbc3d18ab698e342971e8f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga197570e03acbc3d18ab698e342971e8f">GLM_ALIGNED_TYPEDEF</a> (u32, aligned_u32, 4)</td></tr>
-<tr class="separator:ga197570e03acbc3d18ab698e342971e8f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0f033b21e145a1faa32c62ede5878993"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0f033b21e145a1faa32c62ede5878993">GLM_ALIGNED_TYPEDEF</a> (u64, aligned_u64, 8)</td></tr>
-<tr class="separator:ga0f033b21e145a1faa32c62ede5878993"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga509af83527f5cd512e9a7873590663aa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga509af83527f5cd512e9a7873590663aa">GLM_ALIGNED_TYPEDEF</a> (uvec1, aligned_uvec1, 4)</td></tr>
-<tr class="separator:ga509af83527f5cd512e9a7873590663aa"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga94e86186978c502c6dc0c0d9c4a30679">GLM_ALIGNED_TYPEDEF</a> (uvec2, aligned_uvec2, 8)</td></tr>
-<tr class="separator:ga94e86186978c502c6dc0c0d9c4a30679"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5cec574686a7f3c8ed24bb195c5e2d0a">GLM_ALIGNED_TYPEDEF</a> (uvec3, aligned_uvec3, 16)</td></tr>
-<tr class="separator:ga5cec574686a7f3c8ed24bb195c5e2d0a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga47edfdcee9c89b1ebdaf20450323b1d4">GLM_ALIGNED_TYPEDEF</a> (uvec4, aligned_uvec4, 16)</td></tr>
-<tr class="separator:ga47edfdcee9c89b1ebdaf20450323b1d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5611d6718e3a00096918a64192e73a45"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5611d6718e3a00096918a64192e73a45">GLM_ALIGNED_TYPEDEF</a> (u8vec1, aligned_u8vec1, 1)</td></tr>
-<tr class="separator:ga5611d6718e3a00096918a64192e73a45"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga19837e6f72b60d994a805ef564c6c326"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga19837e6f72b60d994a805ef564c6c326">GLM_ALIGNED_TYPEDEF</a> (u8vec2, aligned_u8vec2, 2)</td></tr>
-<tr class="separator:ga19837e6f72b60d994a805ef564c6c326"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9740cf8e34f068049b42a2753f9601c2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9740cf8e34f068049b42a2753f9601c2">GLM_ALIGNED_TYPEDEF</a> (u8vec3, aligned_u8vec3, 4)</td></tr>
-<tr class="separator:ga9740cf8e34f068049b42a2753f9601c2"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8b8588bb221448f5541a858903822a57"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8b8588bb221448f5541a858903822a57">GLM_ALIGNED_TYPEDEF</a> (u8vec4, aligned_u8vec4, 4)</td></tr>
-<tr class="separator:ga8b8588bb221448f5541a858903822a57"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga991abe990c16de26b2129d6bc2f4c051"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga991abe990c16de26b2129d6bc2f4c051">GLM_ALIGNED_TYPEDEF</a> (u16vec1, aligned_u16vec1, 2)</td></tr>
-<tr class="separator:ga991abe990c16de26b2129d6bc2f4c051"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac01bb9fc32a1cd76c2b80d030f71df4c">GLM_ALIGNED_TYPEDEF</a> (u16vec2, aligned_u16vec2, 4)</td></tr>
-<tr class="separator:gac01bb9fc32a1cd76c2b80d030f71df4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga09540dbca093793a36a8997e0d4bee77"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga09540dbca093793a36a8997e0d4bee77">GLM_ALIGNED_TYPEDEF</a> (u16vec3, aligned_u16vec3, 8)</td></tr>
-<tr class="separator:ga09540dbca093793a36a8997e0d4bee77"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaecafb5996f5a44f57e34d29c8670741e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaecafb5996f5a44f57e34d29c8670741e">GLM_ALIGNED_TYPEDEF</a> (u16vec4, aligned_u16vec4, 8)</td></tr>
-<tr class="separator:gaecafb5996f5a44f57e34d29c8670741e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac6b161a04d2f8408fe1c9d857e8daac0">GLM_ALIGNED_TYPEDEF</a> (u32vec1, aligned_u32vec1, 4)</td></tr>
-<tr class="separator:gac6b161a04d2f8408fe1c9d857e8daac0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1fa0dfc8feb0fa17dab2acd43e05342b">GLM_ALIGNED_TYPEDEF</a> (u32vec2, aligned_u32vec2, 8)</td></tr>
-<tr class="separator:ga1fa0dfc8feb0fa17dab2acd43e05342b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0019500abbfa9c66eff61ca75eaaed94">GLM_ALIGNED_TYPEDEF</a> (u32vec3, aligned_u32vec3, 16)</td></tr>
-<tr class="separator:ga0019500abbfa9c66eff61ca75eaaed94"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga14fd29d01dae7b08a04e9facbcc18824">GLM_ALIGNED_TYPEDEF</a> (u32vec4, aligned_u32vec4, 16)</td></tr>
-<tr class="separator:ga14fd29d01dae7b08a04e9facbcc18824"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab253845f534a67136f9619843cade903"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab253845f534a67136f9619843cade903">GLM_ALIGNED_TYPEDEF</a> (u64vec1, aligned_u64vec1, 8)</td></tr>
-<tr class="separator:gab253845f534a67136f9619843cade903"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga929427a7627940cdf3304f9c050b677d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga929427a7627940cdf3304f9c050b677d">GLM_ALIGNED_TYPEDEF</a> (u64vec2, aligned_u64vec2, 16)</td></tr>
-<tr class="separator:ga929427a7627940cdf3304f9c050b677d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae373b6c04fdf9879f33d63e6949c037e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae373b6c04fdf9879f33d63e6949c037e">GLM_ALIGNED_TYPEDEF</a> (u64vec3, aligned_u64vec3, 32)</td></tr>
-<tr class="separator:gae373b6c04fdf9879f33d63e6949c037e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga53a8a03dca2015baec4584f45b8e9cdc">GLM_ALIGNED_TYPEDEF</a> (u64vec4, aligned_u64vec4, 32)</td></tr>
-<tr class="separator:ga53a8a03dca2015baec4584f45b8e9cdc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab3301bae94ef5bf59fbdd9a24e7d2a01">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_float32, 4)</td></tr>
-<tr class="separator:gab3301bae94ef5bf59fbdd9a24e7d2a01"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga75930684ff2233171c573e603f216162"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga75930684ff2233171c573e603f216162">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_float64, 8)</td></tr>
-<tr class="separator:ga75930684ff2233171c573e603f216162"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada9b0bea273d3ae0286f891533b9568f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada9b0bea273d3ae0286f891533b9568f">GLM_ALIGNED_TYPEDEF</a> (float32_t, aligned_float32_t, 4)</td></tr>
-<tr class="separator:gada9b0bea273d3ae0286f891533b9568f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e3a2d83b131336219a0f4c7cbba2a48">GLM_ALIGNED_TYPEDEF</a> (float64_t, aligned_float64_t, 8)</td></tr>
-<tr class="separator:ga6e3a2d83b131336219a0f4c7cbba2a48"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbce23b9f23d77bb3884e289a574ebd5">GLM_ALIGNED_TYPEDEF</a> (float32, aligned_f32, 4)</td></tr>
-<tr class="separator:gadbce23b9f23d77bb3884e289a574ebd5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa4deaa0dea930c393d55e7a4352b0a20">GLM_ALIGNED_TYPEDEF</a> (float64, aligned_f64, 8)</td></tr>
-<tr class="separator:gaa4deaa0dea930c393d55e7a4352b0a20"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga81bc497b2bfc6f80bab690c6ee28f0f9">GLM_ALIGNED_TYPEDEF</a> (vec1, aligned_vec1, 4)</td></tr>
-<tr class="separator:ga81bc497b2bfc6f80bab690c6ee28f0f9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gada3e8f783e9d4b90006695a16c39d4d4">GLM_ALIGNED_TYPEDEF</a> (vec2, aligned_vec2, 8)</td></tr>
-<tr class="separator:gada3e8f783e9d4b90006695a16c39d4d4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab8d081fac3a38d6f55fa552f32168d32"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab8d081fac3a38d6f55fa552f32168d32">GLM_ALIGNED_TYPEDEF</a> (vec3, aligned_vec3, 16)</td></tr>
-<tr class="separator:gab8d081fac3a38d6f55fa552f32168d32"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga12fe7b9769c964c5b48dcfd8b7f40198">GLM_ALIGNED_TYPEDEF</a> (vec4, aligned_vec4, 16)</td></tr>
-<tr class="separator:ga12fe7b9769c964c5b48dcfd8b7f40198"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaefab04611c7f8fe1fd9be3071efea6cc">GLM_ALIGNED_TYPEDEF</a> (fvec1, aligned_fvec1, 4)</td></tr>
-<tr class="separator:gaefab04611c7f8fe1fd9be3071efea6cc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2543c05ba19b3bd19d45b1227390c5b4">GLM_ALIGNED_TYPEDEF</a> (fvec2, aligned_fvec2, 8)</td></tr>
-<tr class="separator:ga2543c05ba19b3bd19d45b1227390c5b4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga009afd727fd657ef33a18754d6d28f60"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga009afd727fd657ef33a18754d6d28f60">GLM_ALIGNED_TYPEDEF</a> (fvec3, aligned_fvec3, 16)</td></tr>
-<tr class="separator:ga009afd727fd657ef33a18754d6d28f60"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2f26177e74bfb301a3d0e02ec3c3ef53">GLM_ALIGNED_TYPEDEF</a> (fvec4, aligned_fvec4, 16)</td></tr>
-<tr class="separator:ga2f26177e74bfb301a3d0e02ec3c3ef53"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga309f495a1d6b75ddf195b674b65cb1e4">GLM_ALIGNED_TYPEDEF</a> (f32vec1, aligned_f32vec1, 4)</td></tr>
-<tr class="separator:ga309f495a1d6b75ddf195b674b65cb1e4"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5e185865a2217d0cd47187644683a8c3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5e185865a2217d0cd47187644683a8c3">GLM_ALIGNED_TYPEDEF</a> (f32vec2, aligned_f32vec2, 8)</td></tr>
-<tr class="separator:ga5e185865a2217d0cd47187644683a8c3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gade4458b27b039b9ca34f8ec049f3115a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gade4458b27b039b9ca34f8ec049f3115a">GLM_ALIGNED_TYPEDEF</a> (f32vec3, aligned_f32vec3, 16)</td></tr>
-<tr class="separator:gade4458b27b039b9ca34f8ec049f3115a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b">GLM_ALIGNED_TYPEDEF</a> (f32vec4, aligned_f32vec4, 16)</td></tr>
-<tr class="separator:ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3e0f35fa0c626285a8bad41707e7316c">GLM_ALIGNED_TYPEDEF</a> (dvec1, aligned_dvec1, 8)</td></tr>
-<tr class="separator:ga3e0f35fa0c626285a8bad41707e7316c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8">GLM_ALIGNED_TYPEDEF</a> (dvec2, aligned_dvec2, 16)</td></tr>
-<tr class="separator:ga78bfec2f185d1d365ea0a9ef1e3d45b8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01fe6fee6db5df580b6724a7e681f069"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01fe6fee6db5df580b6724a7e681f069">GLM_ALIGNED_TYPEDEF</a> (dvec3, aligned_dvec3, 32)</td></tr>
-<tr class="separator:ga01fe6fee6db5df580b6724a7e681f069"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga687d5b8f551d5af32425c0b2fba15e99">GLM_ALIGNED_TYPEDEF</a> (dvec4, aligned_dvec4, 32)</td></tr>
-<tr class="separator:ga687d5b8f551d5af32425c0b2fba15e99"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga8e842371d46842ff8f1813419ba49d0f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga8e842371d46842ff8f1813419ba49d0f">GLM_ALIGNED_TYPEDEF</a> (f64vec1, aligned_f64vec1, 8)</td></tr>
-<tr class="separator:ga8e842371d46842ff8f1813419ba49d0f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga32814aa0f19316b43134fc25f2aad2b9">GLM_ALIGNED_TYPEDEF</a> (f64vec2, aligned_f64vec2, 16)</td></tr>
-<tr class="separator:ga32814aa0f19316b43134fc25f2aad2b9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf3d3bbc1e93909b689123b085e177a14"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf3d3bbc1e93909b689123b085e177a14">GLM_ALIGNED_TYPEDEF</a> (f64vec3, aligned_f64vec3, 32)</td></tr>
-<tr class="separator:gaf3d3bbc1e93909b689123b085e177a14"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga804c654cead1139bd250f90f9bb01fad"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga804c654cead1139bd250f90f9bb01fad">GLM_ALIGNED_TYPEDEF</a> (f64vec4, aligned_f64vec4, 32)</td></tr>
-<tr class="separator:ga804c654cead1139bd250f90f9bb01fad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafed7d010235a3aa7ea2f88646858f2ae">GLM_ALIGNED_TYPEDEF</a> (mat2, aligned_mat2, 16)</td></tr>
-<tr class="separator:gafed7d010235a3aa7ea2f88646858f2ae"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga17f911ee7b78ca6d1b91c4ab51ddb73c">GLM_ALIGNED_TYPEDEF</a> (mat3, aligned_mat3, 16)</td></tr>
-<tr class="separator:ga17f911ee7b78ca6d1b91c4ab51ddb73c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga31940e6012b72110e26fdb0f54805033"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga31940e6012b72110e26fdb0f54805033">GLM_ALIGNED_TYPEDEF</a> (mat4, aligned_mat4, 16)</td></tr>
-<tr class="separator:ga31940e6012b72110e26fdb0f54805033"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga01de96cd0b541c52d2b4a3faf65822e9">GLM_ALIGNED_TYPEDEF</a> (mat2x2, aligned_mat2x2, 16)</td></tr>
-<tr class="separator:ga01de96cd0b541c52d2b4a3faf65822e9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac88a191b004bd341e64fc53b5a4d00e3">GLM_ALIGNED_TYPEDEF</a> (mat3x3, aligned_mat3x3, 16)</td></tr>
-<tr class="separator:gac88a191b004bd341e64fc53b5a4d00e3"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabe8c745fa2ced44a600a6e3f19991161"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabe8c745fa2ced44a600a6e3f19991161">GLM_ALIGNED_TYPEDEF</a> (mat4x4, aligned_mat4x4, 16)</td></tr>
-<tr class="separator:gabe8c745fa2ced44a600a6e3f19991161"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga719da577361541a4c43a2dd1d0e361e1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga719da577361541a4c43a2dd1d0e361e1">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2, 16)</td></tr>
-<tr class="separator:ga719da577361541a4c43a2dd1d0e361e1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e7ee4f541e1d7db66cd1a224caacafb">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3, 16)</td></tr>
-<tr class="separator:ga6e7ee4f541e1d7db66cd1a224caacafb"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gae5d672d359f2a39f63f98c7975057486"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gae5d672d359f2a39f63f98c7975057486">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4, 16)</td></tr>
-<tr class="separator:gae5d672d359f2a39f63f98c7975057486"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953">GLM_ALIGNED_TYPEDEF</a> (fmat2x2, aligned_fmat2x2, 16)</td></tr>
-<tr class="separator:ga6fa2df037dbfc5fe8c8e0b4db8a34953"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0743b4f4f69a3227b82ff58f6abbad62">GLM_ALIGNED_TYPEDEF</a> (fmat2x3, aligned_fmat2x3, 16)</td></tr>
-<tr class="separator:ga0743b4f4f69a3227b82ff58f6abbad62"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1a76b325fdf70f961d835edd182c63dd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1a76b325fdf70f961d835edd182c63dd">GLM_ALIGNED_TYPEDEF</a> (fmat2x4, aligned_fmat2x4, 16)</td></tr>
-<tr class="separator:ga1a76b325fdf70f961d835edd182c63dd"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga4b4e181cd041ba28c3163e7b8074aef0">GLM_ALIGNED_TYPEDEF</a> (fmat3x2, aligned_fmat3x2, 16)</td></tr>
-<tr class="separator:ga4b4e181cd041ba28c3163e7b8074aef0"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga27b13f465abc8a40705698145e222c3f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga27b13f465abc8a40705698145e222c3f">GLM_ALIGNED_TYPEDEF</a> (fmat3x3, aligned_fmat3x3, 16)</td></tr>
-<tr class="separator:ga27b13f465abc8a40705698145e222c3f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2608d19cc275830a6f8c0b6405625a4f">GLM_ALIGNED_TYPEDEF</a> (fmat3x4, aligned_fmat3x4, 16)</td></tr>
-<tr class="separator:ga2608d19cc275830a6f8c0b6405625a4f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93f09768241358a287c4cca538f1f7e7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga93f09768241358a287c4cca538f1f7e7">GLM_ALIGNED_TYPEDEF</a> (fmat4x2, aligned_fmat4x2, 16)</td></tr>
-<tr class="separator:ga93f09768241358a287c4cca538f1f7e7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga7c117e3ecca089e10247b1d41d88aff9">GLM_ALIGNED_TYPEDEF</a> (fmat4x3, aligned_fmat4x3, 16)</td></tr>
-<tr class="separator:ga7c117e3ecca089e10247b1d41d88aff9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga07c75cd04ba42dc37fa3e105f89455c5">GLM_ALIGNED_TYPEDEF</a> (fmat4x4, aligned_fmat4x4, 16)</td></tr>
-<tr class="separator:ga07c75cd04ba42dc37fa3e105f89455c5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga65ff0d690a34a4d7f46f9b2eb51525ee">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2, 16)</td></tr>
-<tr class="separator:ga65ff0d690a34a4d7f46f9b2eb51525ee"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadd8ddbe2bf65ccede865ba2f510176dc">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3, 16)</td></tr>
-<tr class="separator:gadd8ddbe2bf65ccede865ba2f510176dc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaf18dbff14bf13d3ff540c517659ec045"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaf18dbff14bf13d3ff540c517659ec045">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4, 16)</td></tr>
-<tr class="separator:gaf18dbff14bf13d3ff540c517659ec045"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga66339f6139bf7ff19e245beb33f61cc8">GLM_ALIGNED_TYPEDEF</a> (f32mat2x2, aligned_f32mat2x2, 16)</td></tr>
-<tr class="separator:ga66339f6139bf7ff19e245beb33f61cc8"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1558a48b3934011b52612809f443e46d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1558a48b3934011b52612809f443e46d">GLM_ALIGNED_TYPEDEF</a> (f32mat2x3, aligned_f32mat2x3, 16)</td></tr>
-<tr class="separator:ga1558a48b3934011b52612809f443e46d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa52e5732daa62851627021ad551c7680"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaa52e5732daa62851627021ad551c7680">GLM_ALIGNED_TYPEDEF</a> (f32mat2x4, aligned_f32mat2x4, 16)</td></tr>
-<tr class="separator:gaa52e5732daa62851627021ad551c7680"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gac09663c42566bcb58d23c6781ac4e85a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gac09663c42566bcb58d23c6781ac4e85a">GLM_ALIGNED_TYPEDEF</a> (f32mat3x2, aligned_f32mat3x2, 16)</td></tr>
-<tr class="separator:gac09663c42566bcb58d23c6781ac4e85a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga3f510999e59e1b309113e1d561162b29"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga3f510999e59e1b309113e1d561162b29">GLM_ALIGNED_TYPEDEF</a> (f32mat3x3, aligned_f32mat3x3, 16)</td></tr>
-<tr class="separator:ga3f510999e59e1b309113e1d561162b29"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga2c9c94f0c89cd71ce56551db6cf4aaec">GLM_ALIGNED_TYPEDEF</a> (f32mat3x4, aligned_f32mat3x4, 16)</td></tr>
-<tr class="separator:ga2c9c94f0c89cd71ce56551db6cf4aaec"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga99ce8274c750fbfdf0e70c95946a2875">GLM_ALIGNED_TYPEDEF</a> (f32mat4x2, aligned_f32mat4x2, 16)</td></tr>
-<tr class="separator:ga99ce8274c750fbfdf0e70c95946a2875"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9476ef66790239df53dbe66f3989c3b5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9476ef66790239df53dbe66f3989c3b5">GLM_ALIGNED_TYPEDEF</a> (f32mat4x3, aligned_f32mat4x3, 16)</td></tr>
-<tr class="separator:ga9476ef66790239df53dbe66f3989c3b5"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gacc429b3b0b49921e12713b6d31e14e1d">GLM_ALIGNED_TYPEDEF</a> (f32mat4x4, aligned_f32mat4x4, 16)</td></tr>
-<tr class="separator:gacc429b3b0b49921e12713b6d31e14e1d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga88f6c6fa06e6e64479763e69444669cf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga88f6c6fa06e6e64479763e69444669cf">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2, 32)</td></tr>
-<tr class="separator:ga88f6c6fa06e6e64479763e69444669cf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaae8e4639c991e64754145ab8e4c32083"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaae8e4639c991e64754145ab8e4c32083">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3, 32)</td></tr>
-<tr class="separator:gaae8e4639c991e64754145ab8e4c32083"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga6e9094f3feb3b5b49d0f83683a101fde">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4, 32)</td></tr>
-<tr class="separator:ga6e9094f3feb3b5b49d0f83683a101fde"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gadbd2c639c03de1c3e9591b5a39f65559">GLM_ALIGNED_TYPEDEF</a> (f64mat2x2, aligned_f64mat2x2, 32)</td></tr>
-<tr class="separator:gadbd2c639c03de1c3e9591b5a39f65559"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gab059d7b9fe2094acc563b7223987499f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gab059d7b9fe2094acc563b7223987499f">GLM_ALIGNED_TYPEDEF</a> (f64mat2x3, aligned_f64mat2x3, 32)</td></tr>
-<tr class="separator:gab059d7b9fe2094acc563b7223987499f"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gabbc811d1c52ed2b8cfcaff1378f75c69">GLM_ALIGNED_TYPEDEF</a> (f64mat2x4, aligned_f64mat2x4, 32)</td></tr>
-<tr class="separator:gabbc811d1c52ed2b8cfcaff1378f75c69"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga9ddf5212777734d2fd841a84439f3bdf">GLM_ALIGNED_TYPEDEF</a> (f64mat3x2, aligned_f64mat3x2, 32)</td></tr>
-<tr class="separator:ga9ddf5212777734d2fd841a84439f3bdf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13">GLM_ALIGNED_TYPEDEF</a> (f64mat3x3, aligned_f64mat3x3, 32)</td></tr>
-<tr class="separator:gad1dda32ed09f94bfcf0a7d8edfb6cf13"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga5875e0fa72f07e271e7931811cbbf31a">GLM_ALIGNED_TYPEDEF</a> (f64mat3x4, aligned_f64mat3x4, 32)</td></tr>
-<tr class="separator:ga5875e0fa72f07e271e7931811cbbf31a"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga41e82cd6ac07f912ba2a2d45799dcf0d">GLM_ALIGNED_TYPEDEF</a> (f64mat4x2, aligned_f64mat4x2, 32)</td></tr>
-<tr class="separator:ga41e82cd6ac07f912ba2a2d45799dcf0d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0892638d6ba773043b3d63d1d092622e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga0892638d6ba773043b3d63d1d092622e">GLM_ALIGNED_TYPEDEF</a> (f64mat4x3, aligned_f64mat4x3, 32)</td></tr>
-<tr class="separator:ga0892638d6ba773043b3d63d1d092622e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga912a16432608b822f1e13607529934c1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga912a16432608b822f1e13607529934c1">GLM_ALIGNED_TYPEDEF</a> (f64mat4x4, aligned_f64mat4x4, 32)</td></tr>
-<tr class="separator:ga912a16432608b822f1e13607529934c1"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gafd945a8ea86b042aba410e0560df9a3d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gafd945a8ea86b042aba410e0560df9a3d">GLM_ALIGNED_TYPEDEF</a> (quat, aligned_quat, 16)</td></tr>
-<tr class="separator:gafd945a8ea86b042aba410e0560df9a3d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gad8c4bfacff70e57dc8303634c8bfce35">GLM_ALIGNED_TYPEDEF</a> (fquat, aligned_fquat, 16)</td></tr>
-<tr class="separator:gad8c4bfacff70e57dc8303634c8bfce35"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaabc28c84a3288b697605d4688686f9a9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#gaabc28c84a3288b697605d4688686f9a9">GLM_ALIGNED_TYPEDEF</a> (dquat, aligned_dquat, 32)</td></tr>
-<tr class="separator:gaabc28c84a3288b697605d4688686f9a9"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga1ed8aeb5ca67fade269a46105f1bf273">GLM_ALIGNED_TYPEDEF</a> (f32quat, aligned_f32quat, 16)</td></tr>
-<tr class="separator:ga1ed8aeb5ca67fade269a46105f1bf273"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga95cc03b8b475993fa50e05e38e203303"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00238.html#ga95cc03b8b475993fa50e05e38e203303">GLM_ALIGNED_TYPEDEF</a> (f64quat, aligned_f64quat, 32)</td></tr>
-<tr class="separator:ga95cc03b8b475993fa50e05e38e203303"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
+<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00238.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &Texcoord)</td></tr>
+<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Defines aligned types. </p>
-<p><a class="el" href="a00164.html">Precision types</a> defines aligned types.</p>
-<p><<a class="el" href="a00115.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/type_aligned.hpp</a>> need to be included to use these functionalities. </p>
+<p>Wrapping mode of texture coordinates. </p>
+<p><<a class="el" href="a00140.html" title="GLM_GTX_wrap ">glm/gtx/wrap.hpp</a>> need to be included to use these functionalities. </p>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab5cd5c5fad228b25c782084f1cc30114"></a>
+<a class="anchor" id="ga6c0cc6bd1d67ea1008d2592e998bad33"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga760bcf26fdb23a2c3ecad3c928a19ae6">lowp_int8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5bb5dd895ef625c1b113f2cf400186b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga698e36b01167fc0f037889334dce8def">lowp_int16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac6efa54cf7c6c86f7158922abdb1a430"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga864aabca5f3296e176e0c3ed9cc16b02">lowp_int32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6612eb77c8607048e7552279a11eeb5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf645b1a60203b39c0207baff5e3d8c3c">lowp_int64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ddc1848ff2223026db8968ce0c97497"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga119c41d73fe9977358174eb3ac1035a3">lowp_int8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga22240dd9458b0f8c11fbcc4f48714f68"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8b2cd8d31eb345b2d641d9261c38db1a">lowp_int16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8130ea381d76a2cc34a93ccbb6cf487d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0350631d35ff800e6133ac6243b13cbc">lowp_int32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7ccb60f3215d293fd62b33b31ed0e7be"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaebf341fc4a5be233f7dde962c2e33847">lowp_int64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_int64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac20d508d2ef5cc95ad3daf083c57ec2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga552a6bde5e75984efb0f863278da2e54">lowp_i8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50257b48069a31d0c8d9c1f644d267de"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga392b673fd10847bfb78fb808c6cf8ff7">lowp_i16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa07e98e67b7a3435c0746018c7a2a839"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac">lowp_i32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga62601fc6f8ca298b77285bedf03faffd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga354736e0c645099cd44c42fb2f87c2b8">lowp_i64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_i64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac8cff825951aeb54dd846037113c72db"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6fbd69cbdaa44345bff923a2cf63de7e">mediump_int8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78f443d88f438575a62b5df497cdf66b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadff3608baa4b5bd3ed28f95c1c2c345d">mediump_int16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0680cd3b5d4e8006985fb41a4f9b57af"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5244cef85d6e870e240c76428a262ae8">mediump_int32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad9e5babb1dd3e3531b42c37bf25dd951"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7b968f2b86a0442a89c7359171e1d866">mediump_int64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga353fd9fa8a9ad952fcabd0d53ad9a6dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6d7b3789ecb932c26430009478cac7ae">mediump_int8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2196442c0e5c5e8c77842de388c42521"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga80e72fe94c88498537e8158ba7591c54">mediump_int16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1284488189daf897cf095c5eefad9744"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga26fc7ced1ad7ca5024f1c973c8dc9180">mediump_int32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga73fdc86a539808af58808b7c60a1c4d8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac3bc41bcac61d1ba8f02a6f68ce23f64">mediump_int64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_int64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafafeea923e1983262c972e2b83922d3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacf1ded173e1e2d049c511d095b259e21">mediump_i8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4b35ca5fe8f55c9d2fe54fdb8d8896f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga62a17cddeb4dffb4e18fe3aea23f051a">mediump_i16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga63b882e29170d428463d99c3d630acc6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf5e94bf2a20af7601787c154751dc2e1">mediump_i32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b20507bb048c1edea2d441cc953e6f0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3ebcb1f6d8d8387253de8bccb058d77f">mediump_i64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_i64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga56c5ca60813027b603c7b61425a0479d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad0549c902a96a7164e4ac858d5f39dbf">highp_int8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a751b3aff24c0259f4a7357c2969089"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fde0fa4a3852a9dd5d637a92ee74718">highp_int16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga70cd2144351c556469ee6119e59971fc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga84ed04b4e0de18c977e932d617e7c223">highp_int32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga46bbf08dc004d8c433041e0b5018a5d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga226a8d52b4e3f77aaa6231135e886aac">highp_int64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3e10c77a20d1abad2de1c561c7a5c18"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1085c50dd8fbeb5e7e609b1c127492a5">highp_int8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga968f30319ebeaca9ebcd3a25a8e139fb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacaea06d0a79ef3172e887a7a6ba434ff">highp_int16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaae773c28e6390c6aa76f5b678b7098a3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f">highp_int32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga790cfff1ca39d0ed696ffed980809311"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga73c6abb280a45feeff60f9accaee91f3">highp_int64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_int64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8265b91eb23c120a9b0c3e381bc37b96"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacb88796f2d08ef253d0345aff20c3aee">highp_i8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae6d384de17588d8edb894fbe06e0d410"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0336abc2604dd2c20c30e036454b64f8">highp_i16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9c8172b745ee03fc5b2b91c350c2922f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga727675ac6b5d2fc699520e0059735e25">highp_i32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga77e0dff12aa4020ddc3f8cabbea7b2e6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac25db6d2b1e2a0f351b77ba3409ac4cd">highp_i64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_i64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabd82b9faa9d4d618dbbe0fc8a1efee63"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41c6189f6485c2825d60fdc835b3a2b0">int8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga285649744560be21000cfd81bbb5d507"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302041c186d0d028bea31b711fe16759">int16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga07732da630b2deda428ce95c0ecaf3ff"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8df669f4e7698dfe0c0354d92578d74f">int32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1a8da2a8c51f69c07a2e7f473aa420f4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga848aedf13e2d9738acf0bb482c590174"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4bf09d8838a86866b39ee6e109341645">int8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd2803d39049dd45a37a63931e25d943"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae8f5e3e964ca2ae240adc2c0d74adede">int16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae553b33349d6da832cf0724f1e024094"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga042ef09ff2f0cb24a36f541bcb3a3710">int32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga16d223a2b3409e812e1d3bd87f0e9e5c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga322a7d7d2c2c68994dc872a33de63c61">int64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_int64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2de065d2ddfdb366bcd0febca79ae2ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga302ec977b0c0c3ea245b6c9275495355">i8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabd786bdc20a11c8cb05c92c8212e28d3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3ab5fe184343d394fb6c2723c3ee3699">i16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad4aefe56691cdb640c72f0d46d3fb532"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga96faea43ac5f875d2d3ffbf8d213e3eb">i32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8fe9745f7de24a8394518152ff9fccdc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadb997e409103d4da18abd837e636a496">i64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaad735483450099f7f882d4e3a3569bd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">ivec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac7b6f823802edbd6edbaf70ea25bf068"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga2ab812bd103527e2d6c62c2e2f5ee78f">ivec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3e235bcd2b8029613f25b8d40a2d3ef7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga34aee73784bcc247d426250540c1911c">ivec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga50d8a9523968c77f8325b4c9bfbff41e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaaa26c41d168dc00be0fe55f4d0a34224">ivec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_ivec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ec20fdfb729c702032da9378c79679f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab2329c5c14ff5a03b1ddec039e2c7409">i8vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga25b3fe1d9e8d0a5e86c1949c1acd8131"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6414484477e4c1b4863cf91af8fd4185">i8vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2958f907719d94d8109b562540c910e2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf4b5993e794e252607f91535b62a7e0c">i8vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1fe6fc032a978f1c845fac9aa0668714"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga50e58885aee2cf01bb3ba472c5b1697e">i8vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i8vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa4161e7a496dc96972254143fe873e55"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga28f03a39ac56c70f9bf3ada11cb60e3b">i16vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9d7cb211ccda69b1c22ddeeb0f3e7aba"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga110bec18ca44c41c76c3c9e4d7b5bd79">i16vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaee91dd2ab34423bcc11072ef6bd0f02"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga973b226a9914db682c9372fc761fb535">i16vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga49f047ccaa8b31fad9f26c67bf9b3510"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad73e5e905dcf2d8cab002b4ab46e9426">i16vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i16vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga904e9c2436bb099397c0823506a0771f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4cca6bbd117c45f046291fc8e9d03765">i32vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf90651cf2f5e7ee2b11cfdc5a6749534"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3c12cef4135603fd77d8fda85808730c">i32vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7354a4ead8cb17868aec36b9c30d6010"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga40cd3f391c03512f158d10a70062264e">i32vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad2ecbdea18732163e2636e27b37981ee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae3364a8090e7e1408056e00403dfecab">i32vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i32vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga965b1c9aa1800e93d4abc2eb2b5afcbf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5b4a3e499ee165efc0dc05add9c48235">i64vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1f9e9c2ea2768675dff9bae5cde2d829"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gade69872a31f066e5ae212f1af6008edb">i64vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad77c317b7d942322cd5be4c8127b3187"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9ece7c77c7bca7a6b824ef9c600f5e5e">i64vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga716f8ea809bdb11b5b542d8b71aeb04f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9756e45c8f80329257f3cbdabc3bd73c">i64vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_i64vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit signed integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad46f8e9082d5878b1bc04f9c1471cdaa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf49470869e9be2c059629b250619804e">lowp_uint8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1246094581af624aca6c7499aaabf801"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad68bfd9f881856fc863a6ebca0b67f78">lowp_uint16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7a5009a1d0196bbf21dd7518f61f0249"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa6a5b461bbf5fe20982472aa51896d4b">lowp_uint32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga45213fd18b3bb1df391671afefe4d1e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa212b805736a759998e312cbdd550fae">lowp_uint64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0ba26b4e3fd9ecbc25358efd68d8a4ca"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga667b2ece2b258be898812dc2177995d1">lowp_uint8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf2b58f5fb6d4ec8ce7b76221d3af43e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga91c4815f93177eb423362fd296a87e9f">lowp_uint16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadc246401847dcba155f0699425e49dcd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf1b735b4b1145174f4e4167d13778f9b">lowp_uint32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaace64bddf51a9def01498da9a94fb01c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8dd3a3281ae5c970ffe0c41d538aa153">lowp_uint64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_uint64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad7bb97c29d664bd86ffb1bed4abc5534"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1b09f03da7ac43055c68a349d5445083">lowp_u8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga404bba7785130e0b1384d695a9450b28"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga504ce1631cb2ac02fcf1d44d8c2aa126">lowp_u16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga31ba41fd896257536958ec6080203d2a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4f072ada9552e1e480bbb3b1acde5250">lowp_u32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacca5f13627f57b3505676e40a6e43e5e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga30069d1f02b19599cbfadf98c23ac6ed">lowp_u64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_lowp_u64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Low precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5faf1d3e70bf33174dd7f3d01d5b883b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3">mediump_uint8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga727e2bf2c433bb3b0182605860a48363"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2885a6c89916911e418c06bb76b9bdbb">mediump_uint16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga12566ca66d5962dadb4a5eb4c74e891e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga34dd5ec1988c443bae80f1b20a8ade5f">mediump_uint32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7b66a97a8acaa35c5a377b947318c6bc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga30652709815ad9404272a31957daa59e">mediump_uint64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa9cde002439b74fa66120a16a9f55fcc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gadfe65c78231039e90507770db50c98c7">mediump_uint8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1ca98c67f7d1e975f7c5202f1da1df1f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3963b1050fc65a383ee28e3f827b6e3e">mediump_uint16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1dc8bc6199d785f235576948d80a597c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf4dae276fd29623950de14a6ca2586b5">mediump_uint32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad14a0f2ec93519682b73d70b8e401d81"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9b170dd4a8f38448a2dc93987c7875e9">mediump_uint64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_uint64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada8b996eb6526dc1ead813bd49539d1b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad1213a22bbb9e4107f07eaa4956f8281">mediump_u8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga28948f6bfb52b42deb9d73ae1ea8d8b0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9df98857be695d5a30cb30f5bfa38a80">mediump_u16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad6a7c0b5630f89d3f1c5b4ef2919bb4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1bd0e914158bf03135f8a317de6debe9">mediump_u32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa0fc531cbaa972ac3a0b86d21ef4a7fa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2af9490085ae3bdf36a544e9dd073610">mediump_u64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mediump_u64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Medium precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0ee829f7b754b262bbfe6317c0d678ac"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga97432f9979e73e66567361fd01e4cffb">highp_uint8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga447848a817a626cae08cedc9778b331c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga746dc6da204f5622e395f492997dbf57">highp_uint16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6027ae13b2734f542a6e7beee11b8820"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga256b12b650c3f2fb86878fd1c5db8bc3">highp_uint32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2aca46c8608c95ef991ee4c332acde5f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce">highp_uint64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaff50b10dd1c48be324fdaffd18e2c7ea"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac4e00a26a2adb5f2c0a7096810df29e5">highp_uint8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9fc4421dbb833d5461e6d4e59dcfde55"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacf54c3330ef60aa3d16cb676c7bcb8c7">highp_uint16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga329f1e2b94b33ba5e3918197030bcf03"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae978599c9711ac263ba732d4ac225b0e">highp_uint32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga71e646f7e301aa422328194162c9c998"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa46172d7dc1c7ffe3e78107ff88adf08">highp_uint64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_uint64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8942e09f479489441a7a5004c6d8cb66"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gacd1259f3a9e8d2a9df5be2d74322ef9c">highp_u8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaab32497d6e4db16ee439dbedd64c5865"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8e62c883d13f47015f3b70ed88751369">highp_u16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaaadbb34952eca8e3d7fe122c3e167742"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7a6f1929464dcc680b16381a4ee5f2cf">highp_u32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga92024d27c74a3650afb55ec8e024ed25"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0c181fdf06a309691999926b6690c969">highp_u64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_highp_u64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>High precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabde1d0b4072df35453db76075ab896a6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga36475e31b1992cfde54c1a6f5a148865">uint8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga06c296c9e398b294c8c9dd2a7693dcbb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga13471cbbe74e4303a57f3743d007b74d">uint16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacf1744488c96ebd33c9f36ad33b2010a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5fa3ddcab56c789bc272ff5651faa12d">uint32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3328061a64c20ba59d5f9da24c2cd059"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf6ced36f13bae57f377bafa6f5fcc299"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga28d97808322d3c92186e4a0c067d7e8e">uint8_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint8_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafbc7fb7847bfc78a339d1d371c915c73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga91f91f411080c37730856ff5887f5bcf">uint16_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint16_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa86bc56a73fd8120b1121b5f5e6245ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2171d9dc1fefb1c82e2817f45b622eac">uint32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga68c0b9e669060d0eb5ab8c3ddeb483d8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3999d3e7ff22025c16ddb601e14dfdee">uint64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uint64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4f3bab577daf3343e99cc005134bce86"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaecc7082561fc9028b844b6cf3d305d36">u8</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga13a2391339d0790d43b76d00a7611c4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa2d7acc0adb536fab71fe261232a40ff">u16</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga197570e03acbc3d18ab698e342971e8f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8165913e068444f7842302d40ba897b9">u32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0f033b21e145a1faa32c62ede5878993"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3f312156984c365e9f65620354da70b">u64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga509af83527f5cd512e9a7873590663aa"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">uvec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga94e86186978c502c6dc0c0d9c4a30679"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9bcffa2d49f28d16f680757b5c0e7c84">uvec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5cec574686a7f3c8ed24bb195c5e2d0a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gae85537b672ffe0b3218cbdf1823e1c72">uvec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga47edfdcee9c89b1ebdaf20450323b1d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa7c3a0e7ae50c34c3290415c115f251e">uvec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_uvec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5611d6718e3a00096918a64192e73a45"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga92e0c191e5cc326255284d08be3af7c5">u8vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">1 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga19837e6f72b60d994a805ef564c6c326"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga61667c99caf60ce6c48ebbbac72bd91d">u8vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9740cf8e34f068049b42a2753f9601c2"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8ca60d0ba6d438892be6017f43747661">u8vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8b8588bb221448f5541a858903822a57"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga114e005014d910bea07954eee24b7efb">u8vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u8vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 8 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga991abe990c16de26b2129d6bc2f4c051"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaefa2ce8fbdbe89baffd262f46f2d5907">u16vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">2 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac01bb9fc32a1cd76c2b80d030f71df4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga426030555085ed6c39a54e73afbef962">u16vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga09540dbca093793a36a8997e0d4bee77"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga7f5dbe417199277e449b8db0210acb71">u16vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaecafb5996f5a44f57e34d29c8670741e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf524c9059f0342668d8eea359bcceaae">u16vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u16vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 16 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac6b161a04d2f8408fe1c9d857e8daac0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga913a8bd51e4ebccd30ad488de3c18da9">u32vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1fa0dfc8feb0fa17dab2acd43e05342b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0741d40e2b0fea4f1c50cb325114f075">u32vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0019500abbfa9c66eff61ca75eaaed94"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad9b52e1c271cb9c8bfae6365d3e38a23">u32vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga14fd29d01dae7b08a04e9facbcc18824"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga155ac7e9e454e2b1f73d11e1e28a0fd6">u32vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u32vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 32 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab253845f534a67136f9619843cade903"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga793c9293cc687a0e342396a377c5df77">u64vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned scalar type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga929427a7627940cdf3304f9c050b677d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga2204827de9d4ee7fa92ef497093f7d6e">u64vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 2 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae373b6c04fdf9879f33d63e6949c037e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3460933f040f59f0fedb29df1e9be71c">u64vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 3 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga53a8a03dca2015baec4584f45b8e9cdc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafb6ca34df28889a5db9d244aed375411">u64vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_u64vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Default precision 64 bit unsigned integer aligned vector of 4 components type. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab3301bae94ef5bf59fbdd9a24e7d2a01"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga75930684ff2233171c573e603f216162"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada9b0bea273d3ae0286f891533b9568f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga41d579d81c3d98edd0532244fa02da77">float32_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float32_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e3a2d83b131336219a0f4c7cbba2a48"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6957c7b22f405683bb276554ca40dc37">float64_t</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_float64_t </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadbce23b9f23d77bb3884e289a574ebd5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad3c127f8bf8d7d4e738037c257abb5b1">float32</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>32 bit single-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa4deaa0dea930c393d55e7a4352b0a20"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab5596d48586414c91ccb270962dc14d3">float64</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>64 bit double-precision floating-point aligned scalar. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga81bc497b2bfc6f80bab690c6ee28f0f9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gada3e8f783e9d4b90006695a16c39d4d4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga09d0200e8ff86391d8804b4fefd5f1da">vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab8d081fac3a38d6f55fa552f32168d32"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gaa8ea2429bb3cb41a715258a447f39897">vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga12fe7b9769c964c5b48dcfd8b7f40198"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gafbab23070ca47932487d25332adc7d7c">vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaefab04611c7f8fe1fd9be3071efea6cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga10d8bd3c923a5386efcf25a4117fd84f">fvec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2543c05ba19b3bd19d45b1227390c5b4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf9f4173dd9e8b2d0b663c6f80ed09ff6">fvec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga009afd727fd657ef33a18754d6d28f60"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga4ef2d77dcab241b1ef83f09edb2f1084">fvec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2f26177e74bfb301a3d0e02ec3c3ef53"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga981b63d5c5f7233a29364e0a968d139b">fvec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fvec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga309f495a1d6b75ddf195b674b65cb1e4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga3174a49dc84a977cad7012a62f4af02f">f32vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">4 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5e185865a2217d0cd47187644683a8c3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae0cb53ea6fe3d977fe588ce423d57cc3">f32vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gade4458b27b039b9ca34f8ec049f3115a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga19d5e0d4d3d6d226c9c6c0f39756f9ad">f32vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb25dbb0261f82cb08da23e26d343704">f32vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3e0f35fa0c626285a8bad41707e7316c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">dvec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga78bfec2f185d1d365ea0a9ef1e3d45b8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga15ade901680b29b78c1f9d1796db6e0e">dvec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga01fe6fee6db5df580b6724a7e681f069"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gabebd0c7e3c5cd337d95c313c5e8b8db4">dvec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga687d5b8f551d5af32425c0b2fba15e99"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga9503f809789bda7e8852a6abde3ae5c1">dvec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dvec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga8e842371d46842ff8f1813419ba49d0f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gac5b04f32ae3084a9131a0851e7f4cfae">f64vec1</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec1 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">8 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 1 component. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga32814aa0f19316b43134fc25f2aad2b9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafaad77b464b5a35626c31205ac6780e3">f64vec2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 2 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf3d3bbc1e93909b689123b085e177a14"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafacc3614bb1136a7756293e67d34de22">f64vec3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 3 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga804c654cead1139bd250f90f9bb01fad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8723186104dc02eb85da386105fba75f">f64vec4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64vec4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned vector of 4 components. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafed7d010235a3aa7ea2f88646858f2ae"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga6e30cfba068ebc3c71fe1f8b3110e450">mat2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga17f911ee7b78ca6d1b91c4ab51ddb73c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga6dd3ec98a548755676267e59142911f8">mat3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga31940e6012b72110e26fdb0f54805033"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#gade0eb47c01f79384a6f38017ede17446">mat4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga01de96cd0b541c52d2b4a3faf65822e9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga0c84b211a5730357b63c6d2e4fb696d5">mat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat2x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac88a191b004bd341e64fc53b5a4d00e3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga378921b6a07bcdad946858b340f69ab1">mat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat3x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabe8c745fa2ced44a600a6e3f19991161"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00163.html#ga089315d5a0c20ac6eaa17a854bbd2e81">mat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_mat4x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga719da577361541a4c43a2dd1d0e361e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e7ee4f541e1d7db66cd1a224caacafb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gae5d672d359f2a39f63f98c7975057486"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6fa2df037dbfc5fe8c8e0b4db8a34953"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga74ac2e71b650162d8f7cb2a70c2f6711">fmat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0743b4f4f69a3227b82ff58f6abbad62"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf17b2604c0d92bffb92375d8aa588756">fmat2x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1a76b325fdf70f961d835edd182c63dd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga709c97c20efa24ff1d9e83cd437b8ed5">fmat2x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat2x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga4b4e181cd041ba28c3163e7b8074aef0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga9f20af6e8eca2abdcde08408948cc1ca">fmat3x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga27b13f465abc8a40705698145e222c3f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad339e25c32fe6665acf028f26c1b3e22">fmat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2608d19cc275830a6f8c0b6405625a4f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab04bc97371cb6b5f54b3688e0c81578b">fmat3x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat3x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93f09768241358a287c4cca538f1f7e7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gab0082a25f19f02d2d0af0fcbe5ead732">fmat4x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7c117e3ecca089e10247b1d41d88aff9"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1a11c170f030ab34ddf037714e936cba">fmat4x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga07c75cd04ba42dc37fa3e105f89455c5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gabd79752ff357d83b49136b6299ea62d9">fmat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fmat4x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga65ff0d690a34a4d7f46f9b2eb51525ee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadd8ddbe2bf65ccede865ba2f510176dc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaf18dbff14bf13d3ff540c517659ec045"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga66339f6139bf7ff19e245beb33f61cc8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaf3a5016bf360977ce114deb2e01ae10a">f32mat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Single-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga1558a48b3934011b52612809f443e46d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad5f1043adbe803928fe7bf1a90a1f767">f32mat2x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa52e5732daa62851627021ad551c7680"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga5ed667d0247cce477f013ea31982843d">f32mat2x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat2x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gac09663c42566bcb58d23c6781ac4e85a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga8709a1ea268fa69bdf1e11616d7fbaf1">f32mat3x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga3f510999e59e1b309113e1d561162b29"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga1e4c52bb824ca16c6e2e5b03635669d0">f32mat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga2c9c94f0c89cd71ce56551db6cf4aaec"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga0100666c90176eaba80e49357d123c7f">f32mat3x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat3x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga99ce8274c750fbfdf0e70c95946a2875"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga27f897bdfe4bbded9481b8947553d1ff">f32mat4x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9476ef66790239df53dbe66f3989c3b5"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa69e73ffb01a52499071391d395908fb">f32mat4x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gacc429b3b0b49921e12713b6d31e14e1d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafe2e08549805a7ded26da2a868bedbf5">f32mat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32mat4x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga88f6c6fa06e6e64479763e69444669cf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaae8e4639c991e64754145ab8e4c32083"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6e9094f3feb3b5b49d0f83683a101fde"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gadbd2c639c03de1c3e9591b5a39f65559"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaeb817419c76a0766c88713d2754e6cb3">f64mat2x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 1x1 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> Double-precision floating-point aligned 2x2 matrix. </dd>
-<dd>
-<a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gab059d7b9fe2094acc563b7223987499f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga87d256f4719417e311cd0ea14264678d">f64mat2x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 2x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gabbc811d1c52ed2b8cfcaff1378f75c69"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gafb18822e2eac88fa861a76cefd25d550">f64mat2x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat2x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 2x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga9ddf5212777734d2fd841a84439f3bdf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga11e5684b10e098f573ff484c1a569ae2">f64mat3x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad1dda32ed09f94bfcf0a7d8edfb6cf13"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gae1a5081181c96cc37ce9418f6e856cb6">f64mat3x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga5875e0fa72f07e271e7931811cbbf31a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gad37a55a8ce1154083a721b4ecfd55293">f64mat3x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat3x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 3x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga41e82cd6ac07f912ba2a2d45799dcf0d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaa669dfb59031a441de19b34a92704d57">f64mat4x2</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x2 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x2 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga0892638d6ba773043b3d63d1d092622e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#gaba137814a509704937746cc1e82edc32">f64mat4x3</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x3 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x3 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga912a16432608b822f1e13607529934c1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga489163773b021f1800a33cc2fa730c3b">f64mat4x4</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64mat4x4 </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Double-precision floating-point aligned 4x4 matrix. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gafd945a8ea86b042aba410e0560df9a3d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">quat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_quat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gad8c4bfacff70e57dc8303634c8bfce35"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
- <td>(</td>
- <td class="paramtype">fquat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_fquat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+<p>Simulate GL_CLAMP OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="gaabc28c84a3288b697605d4688686f9a9"></a>
+<a class="anchor" id="gaa6856a0a048d2749252848da35e10c8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::mirrorClamp </td>
<td>(</td>
- <td class="paramtype">dquat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_dquat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Double-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+<p>Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga1ed8aeb5ca67fade269a46105f1bf273"></a>
+<a class="anchor" id="ga16a89b0661b60d5bea85137bbae74d73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::mirrorRepeat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga6966c0cb4673928c9c9da2e91006d2c0">f32quat</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f32quat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">16 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Single-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+<p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
-<a class="anchor" id="ga95cc03b8b475993fa50e05e38e203303"></a>
+<a class="anchor" id="ga809650c6310ea7c42666e918c117fb6f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">glm::GLM_ALIGNED_TYPEDEF </td>
+ <td class="memname">GLM_FUNC_DECL genType glm::repeat </td>
<td>(</td>
- <td class="paramtype"><a class="el" href="a00181.html#ga14c583bd625eda8cf4935a14d5dd544d">f64quat</a> </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">aligned_f64quat </td>
- <td class="paramname">, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">32 </td>
- <td class="paramname"> </td>
- </tr>
- <tr>
+ <td class="paramtype">genType const & </td>
+ <td class="paramname"><em>Texcoord</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Double-precision floating-point aligned quaternion. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Defines aligned types. ">GLM_GTX_type_aligned</a> </dd></dl>
+<p>Simulate GL_REPEAT OpenGL wrap mode. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00238.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
</div>
</div>
diff --git a/doc/api/a00239.html b/doc/api/a00239.html
deleted file mode 100644
index 7b79902..0000000
--- a/doc/api/a00239.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_vector_angle</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_vector_angle<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplParams" colspan="2">template<typename vecType > </td></tr>
-<tr class="memitem:gab8691008a2536b681b711211816c14f7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType::value_type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#gab8691008a2536b681b711211816c14f7">angle</a> (vecType const &x, vecType const &y)</td></tr>
-<tr class="separator:gab8691008a2536b681b711211816c14f7"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga82a19d474be13c92c7b10caab42a5a72"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga82a19d474be13c92c7b10caab42a5a72">orientedAngle</a> (tvec2< T, P > const &x, tvec2< T, P > const &y)</td></tr>
-<tr class="separator:ga82a19d474be13c92c7b10caab42a5a72"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplParams" colspan="2">template<typename T , precision P> </td></tr>
-<tr class="memitem:ga7254dba112eff55f55f9544f41cb9ece"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00239.html#ga7254dba112eff55f55f9544f41cb9ece">orientedAngle</a> (tvec3< T, P > const &x, tvec3< T, P > const &y, tvec3< T, P > const &ref)</td></tr>
-<tr class="separator:ga7254dba112eff55f55f9544f41cb9ece"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Compute angle between vectors. </p>
-<p><<a class="el" href="a00142.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/vector_angle.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="gab8691008a2536b681b711211816c14f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType::value_type glm::angle </td>
- <td>(</td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the absolute angle between two vectors Parameters need to be normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga82a19d474be13c92c7b10caab42a5a72"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
- <td>(</td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec2< T, P > const & </td>
- <td class="paramname"><em>y</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the oriented angle between two 2d vectors Parameters need to be normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga7254dba112eff55f55f9544f41cb9ece"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL T glm::orientedAngle </td>
- <td>(</td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>y</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">tvec3< T, P > const & </td>
- <td class="paramname"><em>ref</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Returns the oriented angle between two 3d vectors based from a reference axis. </p>
-<p>Parameters need to be normalized. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00239.html" title="Compute angle between vectors. ">GLM_GTX_vector_angle</a> extension. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00240.html b/doc/api/a00240.html
deleted file mode 100644
index 3ac8e9d..0000000
--- a/doc/api/a00240.html
+++ /dev/null
@@ -1,271 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_vector_query</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_vector_query<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga465b844190d1740051e45d780832ea4c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga465b844190d1740051e45d780832ea4c">areCollinear</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:ga465b844190d1740051e45d780832ea4c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:gaee10acefed397c11e01f2862e837754c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#gaee10acefed397c11e01f2862e837754c">areOrthogonal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:gaee10acefed397c11e01f2862e837754c"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga89c82bc60e5b84e4489b74c15a134caf">areOrthonormal</a> (vecType< T, P > const &v0, vecType< T, P > const &v1, T const &epsilon)</td></tr>
-<tr class="separator:ga89c82bc60e5b84e4489b74c15a134caf"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vecType< bool, P > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga93ecd4137480483ce1af0de8bbbf6546">isCompNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga93ecd4137480483ce1af0de8bbbf6546"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga6fa5fa2af67d14c205d24c49aad03270">isNormalized</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga6fa5fa2af67d14c205d24c49aad03270"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplParams" colspan="2">template<typename T , precision P, template< typename, precision > class vecType> </td></tr>
-<tr class="memitem:ga81a64edc1a2b470b82896592e89c523b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00240.html#ga81a64edc1a2b470b82896592e89c523b">isNull</a> (vecType< T, P > const &v, T const &epsilon)</td></tr>
-<tr class="separator:ga81a64edc1a2b470b82896592e89c523b"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Query informations of vector types. </p>
-<p><<a class="el" href="a00143.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/vector_query.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga465b844190d1740051e45d780832ea4c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areCollinear </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are collinears. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaee10acefed397c11e01f2862e837754c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areOrthogonal </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are orthogonals. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga89c82bc60e5b84e4489b74c15a134caf"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::areOrthonormal </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v0</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v1</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether two vectors are orthonormal. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga93ecd4137480483ce1af0de8bbbf6546"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL vecType<bool, P> glm::isCompNull </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a each component of a vector is null. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga6fa5fa2af67d14c205d24c49aad03270"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNormalized </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a vector is normalized. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga81a64edc1a2b470b82896592e89c523b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL bool glm::isNull </td>
- <td>(</td>
- <td class="paramtype">vecType< T, P > const & </td>
- <td class="paramname"><em>v</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">T const & </td>
- <td class="paramname"><em>epsilon</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Check whether a vector is null. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00240.html" title="Query informations of vector types. ">GLM_GTX_vector_query</a> extensions. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/a00241.html b/doc/api/a00241.html
deleted file mode 100644
index 133b8e4..0000000
--- a/doc/api/a00241.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: GLM_GTX_wrap</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">GLM_GTX_wrap<div class="ingroups"><a class="el" href="a00161.html">GTX Extensions (Experimental)</a></div></div> </div>
-</div><!--header-->
-<div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga6c0cc6bd1d67ea1008d2592e998bad33">clamp</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga6c0cc6bd1d67ea1008d2592e998bad33"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:gaa6856a0a048d2749252848da35e10c8b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa6856a0a048d2749252848da35e10c8b">mirrorClamp</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:gaa6856a0a048d2749252848da35e10c8b"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga16a89b0661b60d5bea85137bbae74d73"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga16a89b0661b60d5bea85137bbae74d73">mirrorRepeat</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga16a89b0661b60d5bea85137bbae74d73"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplParams" colspan="2">template<typename genType > </td></tr>
-<tr class="memitem:ga809650c6310ea7c42666e918c117fb6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga809650c6310ea7c42666e918c117fb6f">repeat</a> (genType const &Texcoord)</td></tr>
-<tr class="separator:ga809650c6310ea7c42666e918c117fb6f"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<p>Wrapping mode of texture coordinates. </p>
-<p><<a class="el" href="a00145.html" title="OpenGL Mathematics (glm.g-truc.net) ">glm/gtx/wrap.hpp</a>> need to be included to use these functionalities. </p>
-<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ga6c0cc6bd1d67ea1008d2592e998bad33"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::clamp </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_CLAMP OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="gaa6856a0a048d2749252848da35e10c8b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mirrorClamp </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga16a89b0661b60d5bea85137bbae74d73"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::mirrorRepeat </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_MIRROR_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-<a class="anchor" id="ga809650c6310ea7c42666e918c117fb6f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">GLM_FUNC_DECL genType glm::repeat </td>
- <td>(</td>
- <td class="paramtype">genType const & </td>
- <td class="paramname"><em>Texcoord</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Simulate GL_REPEAT OpenGL wrap mode. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00241.html" title="Wrapping mode of texture coordinates. ">GLM_GTX_wrap</a> extension. </dd></dl>
-
-</div>
-</div>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
diff --git a/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html b/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html
index dc01ef2..cafca19 100644
--- a/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html
+++ b/doc/api/dir_1f76e953200861345293ade84ac7fb6c.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: G-Truc Directory Reference</title>
+<title>0.9.8: G-Truc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
diff --git a/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html b/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html
index 9b004f6..ad32824 100644
--- a/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html
+++ b/doc/api/dir_275089585c7fc1b5fd5d7d42c69cb1da.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: D: Directory Reference</title>
+<title>0.9.8: D: Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
diff --git a/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html b/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html
index 1e3824d..37790c3 100644
--- a/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html
+++ b/doc/api/dir_577c788b67d63fb3b3b5752bd495d0f2.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: doc Directory Reference</title>
+<title>0.9.8: doc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -47,9 +47,9 @@
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
-<tr class="memitem:a00057"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>man.doxy</b> <a href="a00057_source.html">[code]</a></td></tr>
+<tr class="memitem:a00050"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>man.doxy</b> <a href="a00050_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00089"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>pages.doxy</b> <a href="a00089_source.html">[code]</a></td></tr>
+<tr class="memitem:a00082"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>pages.doxy</b> <a href="a00082_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
diff --git a/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html b/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html
index 664a673..7307a63 100644
--- a/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html
+++ b/doc/api/dir_5ce58d942b2d0776e17a9a58abc01e04.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm Directory Reference</title>
+<title>0.9.8: glm Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -60,7 +60,7 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00022"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">exponential.hpp</a> <a href="a00022_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00023"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>ext.hpp</b> <a href="a00023_source.html">[code]</a></td></tr>
+<tr class="memitem:a00023"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html">ext.hpp</a> <a href="a00023_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00038"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">fwd.hpp</a> <a href="a00038_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
@@ -70,37 +70,37 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00046"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">integer.hpp</a> <a href="a00046_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00058"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">mat2x2.hpp</a> <a href="a00058_source.html">[code]</a></td></tr>
+<tr class="memitem:a00051"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html">mat2x2.hpp</a> <a href="a00051_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00059"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">mat2x3.hpp</a> <a href="a00059_source.html">[code]</a></td></tr>
+<tr class="memitem:a00052"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html">mat2x3.hpp</a> <a href="a00052_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00060"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00060.html">mat2x4.hpp</a> <a href="a00060_source.html">[code]</a></td></tr>
+<tr class="memitem:a00053"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">mat2x4.hpp</a> <a href="a00053_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00061"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">mat3x2.hpp</a> <a href="a00061_source.html">[code]</a></td></tr>
+<tr class="memitem:a00054"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00054.html">mat3x2.hpp</a> <a href="a00054_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00062"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">mat3x3.hpp</a> <a href="a00062_source.html">[code]</a></td></tr>
+<tr class="memitem:a00055"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00055.html">mat3x3.hpp</a> <a href="a00055_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00063"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">mat3x4.hpp</a> <a href="a00063_source.html">[code]</a></td></tr>
+<tr class="memitem:a00056"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">mat3x4.hpp</a> <a href="a00056_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00064"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00064.html">mat4x2.hpp</a> <a href="a00064_source.html">[code]</a></td></tr>
+<tr class="memitem:a00057"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">mat4x2.hpp</a> <a href="a00057_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00065"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>mat4x3.hpp</b> <a href="a00065_source.html">[code]</a></td></tr>
+<tr class="memitem:a00058"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>mat4x3.hpp</b> <a href="a00058_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00066"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">mat4x4.hpp</a> <a href="a00066_source.html">[code]</a></td></tr>
+<tr class="memitem:a00059"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">mat4x4.hpp</a> <a href="a00059_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00067"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">matrix.hpp</a> <a href="a00067_source.html">[code]</a></td></tr>
+<tr class="memitem:a00060"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00060.html">matrix.hpp</a> <a href="a00060_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00088"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">packing.hpp</a> <a href="a00088_source.html">[code]</a></td></tr>
+<tr class="memitem:a00081"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">packing.hpp</a> <a href="a00081_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00114"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00114.html">trigonometric.hpp</a> <a href="a00114_source.html">[code]</a></td></tr>
+<tr class="memitem:a00107"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00107.html">trigonometric.hpp</a> <a href="a00107_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00139"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00139.html">vec2.hpp</a> <a href="a00139_source.html">[code]</a></td></tr>
+<tr class="memitem:a00134"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">vec2.hpp</a> <a href="a00134_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00140"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00140.html">vec3.hpp</a> <a href="a00140_source.html">[code]</a></td></tr>
+<tr class="memitem:a00135"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00135.html">vec3.hpp</a> <a href="a00135_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00141"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00141.html">vec4.hpp</a> <a href="a00141_source.html">[code]</a></td></tr>
+<tr class="memitem:a00136"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00136.html">vec4.hpp</a> <a href="a00136_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00144"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00144.html">vector_relational.hpp</a> <a href="a00144_source.html">[code]</a></td></tr>
+<tr class="memitem:a00139"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00139.html">vector_relational.hpp</a> <a href="a00139_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
diff --git a/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html b/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html
index 17b5500..9c22074 100644
--- a/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html
+++ b/doc/api/dir_7b98f88bffbed4b390b5f8f520d9c08e.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Source Directory Reference</title>
+<title>0.9.8: Source Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
diff --git a/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html b/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html
index 1ffb8ee..e15de30 100644
--- a/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html
+++ b/doc/api/dir_8d176b5b7dd0ae42ea6876078f2bde49.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gtx Directory Reference</title>
+<title>0.9.8: gtx Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -69,7 +69,7 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00024"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">extend.hpp</a> <a href="a00024_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00025"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">extented_min_max.hpp</a> <a href="a00025_source.html">[code]</a></td></tr>
+<tr class="memitem:a00025"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">extended_min_max.hpp</a> <a href="a00025_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00026"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">fast_exponential.hpp</a> <a href="a00026_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
@@ -87,81 +87,83 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00047"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">intersect.hpp</a> <a href="a00047_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00055"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00055.html">io.hpp</a> <a href="a00055_source.html">[code]</a></td></tr>
+<tr class="memitem:a00048"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">io.hpp</a> <a href="a00048_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00056"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">log_base.hpp</a> <a href="a00056_source.html">[code]</a></td></tr>
+<tr class="memitem:a00049"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">log_base.hpp</a> <a href="a00049_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00069"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">matrix_cross_product.hpp</a> <a href="a00069_source.html">[code]</a></td></tr>
+<tr class="memitem:a00062"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">matrix_cross_product.hpp</a> <a href="a00062_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00070"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">matrix_decompose.hpp</a> <a href="a00070_source.html">[code]</a></td></tr>
+<tr class="memitem:a00063"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">matrix_decompose.hpp</a> <a href="a00063_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00072"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">matrix_interpolation.hpp</a> <a href="a00072_source.html">[code]</a></td></tr>
+<tr class="memitem:a00065"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html">matrix_interpolation.hpp</a> <a href="a00065_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">matrix_major_storage.hpp</a> <a href="a00074_source.html">[code]</a></td></tr>
+<tr class="memitem:a00067"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">matrix_major_storage.hpp</a> <a href="a00067_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00075"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">matrix_operation.hpp</a> <a href="a00075_source.html">[code]</a></td></tr>
+<tr class="memitem:a00068"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">matrix_operation.hpp</a> <a href="a00068_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00076"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">matrix_query.hpp</a> <a href="a00076_source.html">[code]</a></td></tr>
+<tr class="memitem:a00069"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">matrix_query.hpp</a> <a href="a00069_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00078"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">matrix_transform_2d.hpp</a> <a href="a00078_source.html">[code]</a></td></tr>
+<tr class="memitem:a00071"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">matrix_transform_2d.hpp</a> <a href="a00071_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00079"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">mixed_product.hpp</a> <a href="a00079_source.html">[code]</a></td></tr>
+<tr class="memitem:a00072"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">mixed_product.hpp</a> <a href="a00072_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00081"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">norm.hpp</a> <a href="a00081_source.html">[code]</a></td></tr>
+<tr class="memitem:a00074"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">norm.hpp</a> <a href="a00074_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00082"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html">normal.hpp</a> <a href="a00082_source.html">[code]</a></td></tr>
+<tr class="memitem:a00075"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">normal.hpp</a> <a href="a00075_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00083"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html">normalize_dot.hpp</a> <a href="a00083_source.html">[code]</a></td></tr>
+<tr class="memitem:a00076"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">normalize_dot.hpp</a> <a href="a00076_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00084"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">number_precision.hpp</a> <a href="a00084_source.html">[code]</a></td></tr>
+<tr class="memitem:a00077"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">number_precision.hpp</a> <a href="a00077_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00085"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">optimum_pow.hpp</a> <a href="a00085_source.html">[code]</a></td></tr>
+<tr class="memitem:a00078"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">optimum_pow.hpp</a> <a href="a00078_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00086"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">orthonormalize.hpp</a> <a href="a00086_source.html">[code]</a></td></tr>
+<tr class="memitem:a00079"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">orthonormalize.hpp</a> <a href="a00079_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00090"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html">perpendicular.hpp</a> <a href="a00090_source.html">[code]</a></td></tr>
+<tr class="memitem:a00083"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html">perpendicular.hpp</a> <a href="a00083_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00091"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html">polar_coordinates.hpp</a> <a href="a00091_source.html">[code]</a></td></tr>
+<tr class="memitem:a00084"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">polar_coordinates.hpp</a> <a href="a00084_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00093"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">projection.hpp</a> <a href="a00093_source.html">[code]</a></td></tr>
+<tr class="memitem:a00086"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">projection.hpp</a> <a href="a00086_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00095"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html">gtx/quaternion.hpp</a> <a href="a00095_source.html">[code]</a></td></tr>
+<tr class="memitem:a00088"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">gtx/quaternion.hpp</a> <a href="a00088_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00097"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">range.hpp</a> <a href="a00097_source.html">[code]</a></td></tr>
+<tr class="memitem:a00090"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html">range.hpp</a> <a href="a00090_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00098"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00098.html">raw_data.hpp</a> <a href="a00098_source.html">[code]</a></td></tr>
+<tr class="memitem:a00091"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html">raw_data.hpp</a> <a href="a00091_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00100"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">rotate_normalized_axis.hpp</a> <a href="a00100_source.html">[code]</a></td></tr>
+<tr class="memitem:a00093"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">rotate_normalized_axis.hpp</a> <a href="a00093_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00101"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">rotate_vector.hpp</a> <a href="a00101_source.html">[code]</a></td></tr>
+<tr class="memitem:a00094"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html">rotate_vector.hpp</a> <a href="a00094_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00103"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00103.html">scalar_multiplication.hpp</a> <a href="a00103_source.html">[code]</a></td></tr>
+<tr class="memitem:a00096"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html">scalar_multiplication.hpp</a> <a href="a00096_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00104"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html">scalar_relational.hpp</a> <a href="a00104_source.html">[code]</a></td></tr>
+<tr class="memitem:a00097"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">scalar_relational.hpp</a> <a href="a00097_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00106"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">simd_mat4.hpp</a> <a href="a00106_source.html">[code]</a></td></tr>
+<tr class="memitem:a00099"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html">simd_mat4.hpp</a> <a href="a00099_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00107"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00107.html">simd_quat.hpp</a> <a href="a00107_source.html">[code]</a></td></tr>
+<tr class="memitem:a00100"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00100.html">simd_quat.hpp</a> <a href="a00100_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00108"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">simd_vec4.hpp</a> <a href="a00108_source.html">[code]</a></td></tr>
+<tr class="memitem:a00101"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00101.html">simd_vec4.hpp</a> <a href="a00101_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00109"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">spline.hpp</a> <a href="a00109_source.html">[code]</a></td></tr>
+<tr class="memitem:a00102"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00102.html">spline.hpp</a> <a href="a00102_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00110"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">std_based_type.hpp</a> <a href="a00110_source.html">[code]</a></td></tr>
+<tr class="memitem:a00103"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00103.html">std_based_type.hpp</a> <a href="a00103_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00111"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html">string_cast.hpp</a> <a href="a00111_source.html">[code]</a></td></tr>
+<tr class="memitem:a00104"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html">string_cast.hpp</a> <a href="a00104_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00112"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">transform.hpp</a> <a href="a00112_source.html">[code]</a></td></tr>
+<tr class="memitem:a00105"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00105.html">transform.hpp</a> <a href="a00105_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00113"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">transform2.hpp</a> <a href="a00113_source.html">[code]</a></td></tr>
+<tr class="memitem:a00106"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">transform2.hpp</a> <a href="a00106_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00115"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">type_aligned.hpp</a> <a href="a00115_source.html">[code]</a></td></tr>
+<tr class="memitem:a00109"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00109.html">gtx/type_aligned.hpp</a> <a href="a00109_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00142"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00142.html">vector_angle.hpp</a> <a href="a00142_source.html">[code]</a></td></tr>
+<tr class="memitem:a00126"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html">type_trait.hpp</a> <a href="a00126_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00143"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00143.html">vector_query.hpp</a> <a href="a00143_source.html">[code]</a></td></tr>
+<tr class="memitem:a00137"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00137.html">vector_angle.hpp</a> <a href="a00137_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00145"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00145.html">wrap.hpp</a> <a href="a00145_source.html">[code]</a></td></tr>
+<tr class="memitem:a00138"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00138.html">vector_query.hpp</a> <a href="a00138_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00140"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00140.html">wrap.hpp</a> <a href="a00140_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
diff --git a/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html b/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html
index 4dc04bc..eed7fb2 100644
--- a/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html
+++ b/doc/api/dir_9440d7c11b99dcd7e5d369c7cf9802fe.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: gtc Directory Reference</title>
+<title>0.9.8: gtc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -55,35 +55,39 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00020"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">epsilon.hpp</a> <a href="a00020_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00037"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">functions.hpp</a> <a href="a00037_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00044"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">gtc/integer.hpp</a> <a href="a00044_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00068"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">matrix_access.hpp</a> <a href="a00068_source.html">[code]</a></td></tr>
+<tr class="memitem:a00061"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">matrix_access.hpp</a> <a href="a00061_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a00064"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00064.html">matrix_integer.hpp</a> <a href="a00064_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00071"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">matrix_integer.hpp</a> <a href="a00071_source.html">[code]</a></td></tr>
+<tr class="memitem:a00066"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">matrix_inverse.hpp</a> <a href="a00066_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00073"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">matrix_inverse.hpp</a> <a href="a00073_source.html">[code]</a></td></tr>
+<tr class="memitem:a00070"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">matrix_transform.hpp</a> <a href="a00070_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00077"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">matrix_transform.hpp</a> <a href="a00077_source.html">[code]</a></td></tr>
+<tr class="memitem:a00073"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">noise.hpp</a> <a href="a00073_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00080"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">noise.hpp</a> <a href="a00080_source.html">[code]</a></td></tr>
+<tr class="memitem:a00080"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">gtc/packing.hpp</a> <a href="a00080_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00087"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">gtc/packing.hpp</a> <a href="a00087_source.html">[code]</a></td></tr>
+<tr class="memitem:a00087"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">gtc/quaternion.hpp</a> <a href="a00087_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00094"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html">gtc/quaternion.hpp</a> <a href="a00094_source.html">[code]</a></td></tr>
+<tr class="memitem:a00089"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html">random.hpp</a> <a href="a00089_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00096"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html">random.hpp</a> <a href="a00096_source.html">[code]</a></td></tr>
+<tr class="memitem:a00092"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">reciprocal.hpp</a> <a href="a00092_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00099"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00099.html">reciprocal.hpp</a> <a href="a00099_source.html">[code]</a></td></tr>
+<tr class="memitem:a00095"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html">round.hpp</a> <a href="a00095_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00102"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00102.html">round.hpp</a> <a href="a00102_source.html">[code]</a></td></tr>
+<tr class="memitem:a00108"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00108.html">gtc/type_aligned.hpp</a> <a href="a00108_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00130"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00130.html">type_precision.hpp</a> <a href="a00130_source.html">[code]</a></td></tr>
+<tr class="memitem:a00124"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">type_precision.hpp</a> <a href="a00124_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00131"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html">type_ptr.hpp</a> <a href="a00131_source.html">[code]</a></td></tr>
+<tr class="memitem:a00125"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">type_ptr.hpp</a> <a href="a00125_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00137"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00137.html">ulp.hpp</a> <a href="a00137_source.html">[code]</a></td></tr>
+<tr class="memitem:a00132"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html">ulp.hpp</a> <a href="a00132_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00138"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00138.html">vec1.hpp</a> <a href="a00138_source.html">[code]</a></td></tr>
+<tr class="memitem:a00133"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00133.html">vec1.hpp</a> <a href="a00133_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
diff --git a/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html b/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html
index 6d9c397..fe5a4d0 100644
--- a/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html
+++ b/doc/api/dir_e29b03b892e0e25920d021a614d4db9b.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: glm Directory Reference</title>
+<title>0.9.8: glm Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
diff --git a/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html b/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html
index aaee2e3..b853ea1 100644
--- a/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html
+++ b/doc/api/dir_e529a619cfdec1fa4c331fb042fd332f.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: detail Directory Reference</title>
+<title>0.9.8: detail Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -69,69 +69,53 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a00033"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html">func_matrix.hpp</a> <a href="a00033_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00034"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">func_noise.hpp</a> <a href="a00034_source.html">[code]</a></td></tr>
+<tr class="memitem:a00034"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">func_packing.hpp</a> <a href="a00034_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00035"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html">func_packing.hpp</a> <a href="a00035_source.html">[code]</a></td></tr>
+<tr class="memitem:a00035"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html">func_trigonometric.hpp</a> <a href="a00035_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00036"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">func_trigonometric.hpp</a> <a href="a00036_source.html">[code]</a></td></tr>
+<tr class="memitem:a00036"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">func_vector_relational.hpp</a> <a href="a00036_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00037"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">func_vector_relational.hpp</a> <a href="a00037_source.html">[code]</a></td></tr>
+<tr class="memitem:a00085"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">precision.hpp</a> <a href="a00085_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00048"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">intrinsic_common.hpp</a> <a href="a00048_source.html">[code]</a></td></tr>
+<tr class="memitem:a00098"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00098.html">setup.hpp</a> <a href="a00098_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00049"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">intrinsic_exponential.hpp</a> <a href="a00049_source.html">[code]</a></td></tr>
+<tr class="memitem:a00110"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">type_float.hpp</a> <a href="a00110_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00050"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">intrinsic_geometric.hpp</a> <a href="a00050_source.html">[code]</a></td></tr>
+<tr class="memitem:a00111"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html">type_gentype.hpp</a> <a href="a00111_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00051"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html">intrinsic_integer.hpp</a> <a href="a00051_source.html">[code]</a></td></tr>
+<tr class="memitem:a00112"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">type_half.hpp</a> <a href="a00112_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00052"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>intrinsic_matrix.hpp</b> <a href="a00052_source.html">[code]</a></td></tr>
+<tr class="memitem:a00113"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">type_int.hpp</a> <a href="a00113_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00053"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">intrinsic_trigonometric.hpp</a> <a href="a00053_source.html">[code]</a></td></tr>
+<tr class="memitem:a00114"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00114.html">type_mat.hpp</a> <a href="a00114_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00054"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00054.html">intrinsic_vector_relational.hpp</a> <a href="a00054_source.html">[code]</a></td></tr>
+<tr class="memitem:a00115"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">type_mat2x2.hpp</a> <a href="a00115_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00092"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">precision.hpp</a> <a href="a00092_source.html">[code]</a></td></tr>
+<tr class="memitem:a00116"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html">type_mat2x3.hpp</a> <a href="a00116_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00105"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00105.html">setup.hpp</a> <a href="a00105_source.html">[code]</a></td></tr>
+<tr class="memitem:a00117"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00117.html">type_mat2x4.hpp</a> <a href="a00117_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00116"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html">type_float.hpp</a> <a href="a00116_source.html">[code]</a></td></tr>
+<tr class="memitem:a00118"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">type_mat3x2.hpp</a> <a href="a00118_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00117"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00117.html">type_gentype.hpp</a> <a href="a00117_source.html">[code]</a></td></tr>
+<tr class="memitem:a00119"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html">type_mat3x3.hpp</a> <a href="a00119_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00118"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00118.html">type_half.hpp</a> <a href="a00118_source.html">[code]</a></td></tr>
+<tr class="memitem:a00120"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html">type_mat3x4.hpp</a> <a href="a00120_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00119"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html">type_int.hpp</a> <a href="a00119_source.html">[code]</a></td></tr>
+<tr class="memitem:a00121"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html">type_mat4x2.hpp</a> <a href="a00121_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00120"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html">type_mat.hpp</a> <a href="a00120_source.html">[code]</a></td></tr>
+<tr class="memitem:a00122"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html">type_mat4x3.hpp</a> <a href="a00122_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00121"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html">type_mat2x2.hpp</a> <a href="a00121_source.html">[code]</a></td></tr>
+<tr class="memitem:a00123"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html">type_mat4x4.hpp</a> <a href="a00123_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00122"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00122.html">type_mat2x3.hpp</a> <a href="a00122_source.html">[code]</a></td></tr>
+<tr class="memitem:a00127"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html">type_vec.hpp</a> <a href="a00127_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00123"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html">type_mat2x4.hpp</a> <a href="a00123_source.html">[code]</a></td></tr>
+<tr class="memitem:a00128"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html">type_vec1.hpp</a> <a href="a00128_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00124"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html">type_mat3x2.hpp</a> <a href="a00124_source.html">[code]</a></td></tr>
+<tr class="memitem:a00129"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html">type_vec2.hpp</a> <a href="a00129_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00125"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">type_mat3x3.hpp</a> <a href="a00125_source.html">[code]</a></td></tr>
+<tr class="memitem:a00130"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00130.html">type_vec3.hpp</a> <a href="a00130_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00126"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html">type_mat3x4.hpp</a> <a href="a00126_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00127"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html">type_mat4x2.hpp</a> <a href="a00127_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00128"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html">type_mat4x3.hpp</a> <a href="a00128_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00129"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00129.html">type_mat4x4.hpp</a> <a href="a00129_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00132"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00132.html">type_vec.hpp</a> <a href="a00132_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00133"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00133.html">type_vec1.hpp</a> <a href="a00133_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00134"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00134.html">type_vec2.hpp</a> <a href="a00134_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00135"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00135.html">type_vec3.hpp</a> <a href="a00135_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a00136"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00136.html">type_vec4.hpp</a> <a href="a00136_source.html">[code]</a></td></tr>
+<tr class="memitem:a00131"><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="a00131.html">type_vec4.hpp</a> <a href="a00131_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
diff --git a/doc/api/files.html b/doc/api/files.html
index 8000ce3..8d5ed1a 100644
--- a/doc/api/files.html
+++ b/doc/api/files.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: File List</title>
+<title>0.9.8: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -47,151 +47,146 @@
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00001_source.html"><span class="icondoc"></span></a><a class="el" href="a00001.html" target="_self">_features.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00002_source.html"><span class="icondoc"></span></a><a class="el" href="a00002.html" target="_self">_fixes.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00003_source.html"><span class="icondoc"></span></a><a class="el" href="a00003.html" target="_self">_noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00004_source.html"><span class="icondoc"></span></a><a class="el" href="a00004.html" target="_self">_swizzle.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00005_source.html"><span class="icondoc"></span></a><a class="el" href="a00005.html" target="_self">_swizzle_func.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00006_source.html"><span class="icondoc"></span></a><a class="el" href="a00006.html" target="_self">_vectorize.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00007_source.html"><span class="icondoc"></span></a><a class="el" href="a00007.html" target="_self">associated_min_max.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00008_source.html"><span class="icondoc"></span></a><a class="el" href="a00008.html" target="_self">bit.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00009_source.html"><span class="icondoc"></span></a><a class="el" href="a00009.html" target="_self">bitfield.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00010_source.html"><span class="icondoc"></span></a><a class="el" href="a00010.html" target="_self">closest_point.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00011_source.html"><span class="icondoc"></span></a><a class="el" href="a00011.html" target="_self">gtc/color_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00012_source.html"><span class="icondoc"></span></a><a class="el" href="a00012.html" target="_self">gtx/color_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00013_source.html"><span class="icondoc"></span></a><a class="el" href="a00013.html" target="_self">color_space_YCoCg.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00014_source.html"><span class="icondoc"></span></a><a class="el" href="a00014.html" target="_self">common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00015_source.html"><span class="icondoc"></span></a><a class="el" href="a00015.html" target="_self">gtx/common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00016_source.html"><span class="icondoc"></span></a><a class="el" href="a00016.html" target="_self">compatibility.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00017_source.html"><span class="icondoc"></span></a><a class="el" href="a00017.html" target="_self">component_wise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00018_source.html"><span class="icondoc"></span></a><a class="el" href="a00018.html" target="_self">constants.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00019_source.html"><span class="icondoc"></span></a><a class="el" href="a00019.html" target="_self">dual_quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00020_source.html"><span class="icondoc"></span></a><a class="el" href="a00020.html" target="_self">epsilon.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00021_source.html"><span class="icondoc"></span></a><a class="el" href="a00021.html" target="_self">euler_angles.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00022_source.html"><span class="icondoc"></span></a><a class="el" href="a00022.html" target="_self">exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00023_source.html"><span class="icondoc"></span></a><b>ext.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00024_source.html"><span class="icondoc"></span></a><a class="el" href="a00024.html" target="_self">extend.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00025_source.html"><span class="icondoc"></span></a><a class="el" href="a00025.html" target="_self">extented_min_max.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00026_source.html"><span class="icondoc"></span></a><a class="el" href="a00026.html" target="_self">fast_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00027_source.html"><span class="icondoc"></span></a><a class="el" href="a00027.html" target="_self">fast_square_root.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00028_source.html"><span class="icondoc"></span></a><a class="el" href="a00028.html" target="_self">fast_trigonometry.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00029_source.html"><span class="icondoc"></span></a><a class="el" href="a00029.html" target="_self">func_common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00030_source.html"><span class="icondoc"></span></a><a class="el" href="a00030.html" target="_self">func_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00031_source.html"><span class="icondoc"></span></a><a class="el" href="a00031.html" target="_self">func_geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00032_source.html"><span class="icondoc"></span></a><a class="el" href="a00032.html" target="_self">func_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00033_source.html"><span class="icondoc"></span></a><a class="el" href="a00033.html" target="_self">func_matrix.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00034_source.html"><span class="icondoc"></span></a><a class="el" href="a00034.html" target="_self">func_noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00035_source.html"><span class="icondoc"></span></a><a class="el" href="a00035.html" target="_self">func_packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00036_source.html"><span class="icondoc"></span></a><a class="el" href="a00036.html" target="_self">func_trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00037_source.html"><span class="icondoc"></span></a><a class="el" href="a00037.html" target="_self">func_vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00038_source.html"><span class="icondoc"></span></a><a class="el" href="a00038.html" target="_self">fwd.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00039_source.html"><span class="icondoc"></span></a><a class="el" href="a00039.html" target="_self">geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00040_source.html"><span class="icondoc"></span></a><a class="el" href="a00040.html" target="_self">glm.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00041_source.html"><span class="icondoc"></span></a><a class="el" href="a00041.html" target="_self">gradient_paint.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00042_source.html"><span class="icondoc"></span></a><a class="el" href="a00042.html" target="_self">handed_coordinate_space.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00043_source.html"><span class="icondoc"></span></a><a class="el" href="a00043.html" target="_self">hash.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00044_source.html"><span class="icondoc"></span></a><a class="el" href="a00044.html" target="_self">gtc/integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00045_source.html"><span class="icondoc"></span></a><a class="el" href="a00045.html" target="_self">gtx/integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00046_source.html"><span class="icondoc"></span></a><a class="el" href="a00046.html" target="_self">integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00047_source.html"><span class="icondoc"></span></a><a class="el" href="a00047.html" target="_self">intersect.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00048_source.html"><span class="icondoc"></span></a><a class="el" href="a00048.html" target="_self">intrinsic_common.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00049_source.html"><span class="icondoc"></span></a><a class="el" href="a00049.html" target="_self">intrinsic_exponential.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00050_source.html"><span class="icondoc"></span></a><a class="el" href="a00050.html" target="_self">intrinsic_geometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00051_source.html"><span class="icondoc"></span></a><a class="el" href="a00051.html" target="_self">intrinsic_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00052_source.html"><span class="icondoc"></span></a><b>intrinsic_matrix.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00053_source.html"><span class="icondoc"></span></a><a class="el" href="a00053.html" target="_self">intrinsic_trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00054_source.html"><span class="icondoc"></span></a><a class="el" href="a00054.html" target="_self">intrinsic_vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00055_source.html"><span class="icondoc"></span></a><a class="el" href="a00055.html" target="_self">io.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00056_source.html"><span class="icondoc"></span></a><a class="el" href="a00056.html" target="_self">log_base.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00057_source.html"><span class="icondoc"></span></a><b>man.doxy</b></td><td class="desc"></td></tr>
-<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00058_source.html"><span class="icondoc"></span></a><a class="el" href="a00058.html" target="_self">mat2x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00059_source.html"><span class="icondoc"></span></a><a class="el" href="a00059.html" target="_self">mat2x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00060_source.html"><span class="icondoc"></span></a><a class="el" href="a00060.html" target="_self">mat2x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00061_source.html"><span class="icondoc"></span></a><a class="el" href="a00061.html" target="_self">mat3x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00062_source.html"><span class="icondoc"></span></a><a class="el" href="a00062.html" target="_self">mat3x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00063_source.html"><span class="icondoc"></span></a><a class="el" href="a00063.html" target="_self">mat3x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00064_source.html"><span class="icondoc"></span></a><a class="el" href="a00064.html" target="_self">mat4x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00065_source.html"><span class="icondoc"></span></a><b>mat4x3.hpp</b></td><td class="desc"></td></tr>
-<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00066_source.html"><span class="icondoc"></span></a><a class="el" href="a00066.html" target="_self">mat4x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00067_source.html"><span class="icondoc"></span></a><a class="el" href="a00067.html" target="_self">matrix.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00068_source.html"><span class="icondoc"></span></a><a class="el" href="a00068.html" target="_self">matrix_access.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00069_source.html"><span class="icondoc"></span></a><a class="el" href="a00069.html" target="_self">matrix_cross_product.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00070_source.html"><span class="icondoc"></span></a><a class="el" href="a00070.html" target="_self">matrix_decompose.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00071_source.html"><span class="icondoc"></span></a><a class="el" href="a00071.html" target="_self">matrix_integer.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00072_source.html"><span class="icondoc"></span></a><a class="el" href="a00072.html" target="_self">matrix_interpolation.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00073_source.html"><span class="icondoc"></span></a><a class="el" href="a00073.html" target="_self">matrix_inverse.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00074_source.html"><span class="icondoc"></span></a><a class="el" href="a00074.html" target="_self">matrix_major_storage.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00075_source.html"><span class="icondoc"></span></a><a class="el" href="a00075.html" target="_self">matrix_operation.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00076_source.html"><span class="icondoc"></span></a><a class="el" href="a00076.html" target="_self">matrix_query.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00077_source.html"><span class="icondoc"></span></a><a class="el" href="a00077.html" target="_self">matrix_transform.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00078_source.html"><span class="icondoc"></span></a><a class="el" href="a00078.html" target="_self">matrix_transform_2d.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00079_source.html"><span class="icondoc"></span></a><a class="el" href="a00079.html" target="_self">mixed_product.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00080_source.html"><span class="icondoc"></span></a><a class="el" href="a00080.html" target="_self">noise.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00081_source.html"><span class="icondoc"></span></a><a class="el" href="a00081.html" target="_self">norm.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00082_source.html"><span class="icondoc"></span></a><a class="el" href="a00082.html" target="_self">normal.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00083_source.html"><span class="icondoc"></span></a><a class="el" href="a00083.html" target="_self">normalize_dot.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00084_source.html"><span class="icondoc"></span></a><a class="el" href="a00084.html" target="_self">number_precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00085_source.html"><span class="icondoc"></span></a><a class="el" href="a00085.html" target="_self">optimum_pow.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00086_source.html"><span class="icondoc"></span></a><a class="el" href="a00086.html" target="_self">orthonormalize.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00087_source.html"><span class="icondoc"></span></a><a class="el" href="a00087.html" target="_self">gtc/packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00088_source.html"><span class="icondoc"></span></a><a class="el" href="a00088.html" target="_self">packing.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00089_source.html"><span class="icondoc"></span></a><b>pages.doxy</b></td><td class="desc"></td></tr>
-<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00090_source.html"><span class="icondoc"></span></a><a class="el" href="a00090.html" target="_self">perpendicular.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00091_source.html"><span class="icondoc"></span></a><a class="el" href="a00091.html" target="_self">polar_coordinates.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00092_source.html"><span class="icondoc"></span></a><a class="el" href="a00092.html" target="_self">precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00093_source.html"><span class="icondoc"></span></a><a class="el" href="a00093.html" target="_self">projection.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00094_source.html"><span class="icondoc"></span></a><a class="el" href="a00094.html" target="_self">gtc/quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00095_source.html"><span class="icondoc"></span></a><a class="el" href="a00095.html" target="_self">gtx/quaternion.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00096_source.html"><span class="icondoc"></span></a><a class="el" href="a00096.html" target="_self">random.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00097_source.html"><span class="icondoc"></span></a><a class="el" href="a00097.html" target="_self">range.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00098_source.html"><span class="icondoc"></span></a><a class="el" href="a00098.html" target="_self">raw_data.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00099_source.html"><span class="icondoc"></span></a><a class="el" href="a00099.html" target="_self">reciprocal.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00100_source.html"><span class="icondoc"></span></a><a class="el" href="a00100.html" target="_self">rotate_normalized_axis.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00101_source.html"><span class="icondoc"></span></a><a class="el" href="a00101.html" target="_self">rotate_vector.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00102_source.html"><span class="icondoc"></span></a><a class="el" href="a00102.html" target="_self">round.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00103_source.html"><span class="icondoc"></span></a><a class="el" href="a00103.html" target="_self">scalar_multiplication.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00104_source.html"><span class="icondoc"></span></a><a class="el" href="a00104.html" target="_self">scalar_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00105_source.html"><span class="icondoc"></span></a><a class="el" href="a00105.html" target="_self">setup.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00106_source.html"><span class="icondoc"></span></a><a class="el" href="a00106.html" target="_self">simd_mat4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00107_source.html"><span class="icondoc"></span></a><a class="el" href="a00107.html" target="_self">simd_quat.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00108_source.html"><span class="icondoc"></span></a><a class="el" href="a00108.html" target="_self">simd_vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00109_source.html"><span class="icondoc"></span></a><a class="el" href="a00109.html" target="_self">spline.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00110_source.html"><span class="icondoc"></span></a><a class="el" href="a00110.html" target="_self">std_based_type.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00111_source.html"><span class="icondoc"></span></a><a class="el" href="a00111.html" target="_self">string_cast.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00112_source.html"><span class="icondoc"></span></a><a class="el" href="a00112.html" target="_self">transform.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00113_source.html"><span class="icondoc"></span></a><a class="el" href="a00113.html" target="_self">transform2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00114_source.html"><span class="icondoc"></span></a><a class="el" href="a00114.html" target="_self">trigonometric.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00115_source.html"><span class="icondoc"></span></a><a class="el" href="a00115.html" target="_self">type_aligned.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00116_source.html"><span class="icondoc"></span></a><a class="el" href="a00116.html" target="_self">type_float.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00117_source.html"><span class="icondoc"></span></a><a class="el" href="a00117.html" target="_self">type_gentype.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00118_source.html"><span class="icondoc"></span></a><a class="el" href="a00118.html" target="_self">type_half.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00119_source.html"><span class="icondoc"></span></a><a class="el" href="a00119.html" target="_self">type_int.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_119_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00120_source.html"><span class="icondoc"></span></a><a class="el" href="a00120.html" target="_self">type_mat.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00121_source.html"><span class="icondoc"></span></a><a class="el" href="a00121.html" target="_self">type_mat2x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_121_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00122_source.html"><span class="icondoc"></span></a><a class="el" href="a00122.html" target="_self">type_mat2x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_122_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00123_source.html"><span class="icondoc"></span></a><a class="el" href="a00123.html" target="_self">type_mat2x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00124_source.html"><span class="icondoc"></span></a><a class="el" href="a00124.html" target="_self">type_mat3x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00125_source.html"><span class="icondoc"></span></a><a class="el" href="a00125.html" target="_self">type_mat3x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00126_source.html"><span class="icondoc"></span></a><a class="el" href="a00126.html" target="_self">type_mat3x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00127_source.html"><span class="icondoc"></span></a><a class="el" href="a00127.html" target="_self">type_mat4x2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00128_source.html"><span class="icondoc"></span></a><a class="el" href="a00128.html" target="_self">type_mat4x3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00129_source.html"><span class="icondoc"></span></a><a class="el" href="a00129.html" target="_self">type_mat4x4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00130_source.html"><span class="icondoc"></span></a><a class="el" href="a00130.html" target="_self">type_precision.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00131_source.html"><span class="icondoc"></span></a><a class="el" href="a00131.html" target="_self">type_ptr.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00132_source.html"><span class="icondoc"></span></a><a class="el" href="a00132.html" target="_self">type_vec.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00133_source.html"><span class="icondoc"></span></a><a class="el" href="a00133.html" target="_self">type_vec1.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00134_source.html"><span class="icondoc"></span></a><a class="el" href="a00134.html" target="_self">type_vec2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00135_source.html"><span class="icondoc"></span></a><a class="el" href="a00135.html" target="_self">type_vec3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_135_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00136_source.html"><span class="icondoc"></span></a><a class="el" href="a00136.html" target="_self">type_vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_136_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00137_source.html"><span class="icondoc"></span></a><a class="el" href="a00137.html" target="_self">ulp.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00138_source.html"><span class="icondoc"></span></a><a class="el" href="a00138.html" target="_self">vec1.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00139_source.html"><span class="icondoc"></span></a><a class="el" href="a00139.html" target="_self">vec2.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_139_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00140_source.html"><span class="icondoc"></span></a><a class="el" href="a00140.html" target="_self">vec3.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_140_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00141_source.html"><span class="icondoc"></span></a><a class="el" href="a00141.html" target="_self">vec4.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_141_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00142_source.html"><span class="icondoc"></span></a><a class="el" href="a00142.html" target="_self">vector_angle.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_142_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00143_source.html"><span class="icondoc"></span></a><a class="el" href="a00143.html" target="_self">vector_query.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_143_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00144_source.html"><span class="icondoc"></span></a><a class="el" href="a00144.html" target="_self">vector_relational.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
-<tr id="row_144_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00145_source.html"><span class="icondoc"></span></a><a class="el" href="a00145.html" target="_self">wrap.hpp</a></td><td class="desc">OpenGL Mathematics (glm.g-truc.net) </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00001_source.html"><span class="icondoc"></span></a><a class="el" href="a00001.html" target="_self">_features.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00002_source.html"><span class="icondoc"></span></a><a class="el" href="a00002.html" target="_self">_fixes.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00003_source.html"><span class="icondoc"></span></a><a class="el" href="a00003.html" target="_self">_noise.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00004_source.html"><span class="icondoc"></span></a><a class="el" href="a00004.html" target="_self">_swizzle.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00005_source.html"><span class="icondoc"></span></a><a class="el" href="a00005.html" target="_self">_swizzle_func.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00006_source.html"><span class="icondoc"></span></a><a class="el" href="a00006.html" target="_self">_vectorize.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00007_source.html"><span class="icondoc"></span></a><a class="el" href="a00007.html" target="_self">associated_min_max.hpp</a></td><td class="desc"><a class="el" href="a00181.html">GLM_GTX_associated_min_max</a> </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00008_source.html"><span class="icondoc"></span></a><a class="el" href="a00008.html" target="_self">bit.hpp</a></td><td class="desc"><a class="el" href="a00182.html">GLM_GTX_bit</a> </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00009_source.html"><span class="icondoc"></span></a><a class="el" href="a00009.html" target="_self">bitfield.hpp</a></td><td class="desc"><a class="el" href="a00160.html">GLM_GTC_bitfield</a> </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00010_source.html"><span class="icondoc"></span></a><a class="el" href="a00010.html" target="_self">closest_point.hpp</a></td><td class="desc"><a class="el" href="a00183.html">GLM_GTX_closest_point</a> </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00011_source.html"><span class="icondoc"></span></a><a class="el" href="a00011.html" target="_self">gtc/color_space.hpp</a></td><td class="desc"><a class="el" href="a00161.html">GLM_GTC_color_space</a> </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00012_source.html"><span class="icondoc"></span></a><a class="el" href="a00012.html" target="_self">gtx/color_space.hpp</a></td><td class="desc"><a class="el" href="a00184.html">GLM_GTX_color_space</a> </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00013_source.html"><span class="icondoc"></span></a><a class="el" href="a00013.html" target="_self">color_space_YCoCg.hpp</a></td><td class="desc"><a class="el" href="a00185.html">GLM_GTX_color_space_YCoCg</a> </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00014_source.html"><span class="icondoc"></span></a><a class="el" href="a00014.html" target="_self">common.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00015_source.html"><span class="icondoc"></span></a><a class="el" href="a00015.html" target="_self">gtx/common.hpp</a></td><td class="desc"><a class="el" href="a00186.html">GLM_GTX_common</a> </td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00016_source.html"><span class="icondoc"></span></a><a class="el" href="a00016.html" target="_self">compatibility.hpp</a></td><td class="desc"><a class="el" href="a00187.html">GLM_GTX_compatibility</a> </td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00017_source.html"><span class="icondoc"></span></a><a class="el" href="a00017.html" target="_self">component_wise.hpp</a></td><td class="desc"><a class="el" href="a00188.html">GLM_GTX_component_wise</a> </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00018_source.html"><span class="icondoc"></span></a><a class="el" href="a00018.html" target="_self">constants.hpp</a></td><td class="desc"><a class="el" href="a00162.html">GLM_GTC_constants</a> </td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00019_source.html"><span class="icondoc"></span></a><a class="el" href="a00019.html" target="_self">dual_quaternion.hpp</a></td><td class="desc"><a class="el" href="a00189.html">GLM_GTX_dual_quaternion</a> </td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00020_source.html"><span class="icondoc"></span></a><a class="el" href="a00020.html" target="_self">epsilon.hpp</a></td><td class="desc"><a class="el" href="a00163.html">GLM_GTC_epsilon</a> </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00021_source.html"><span class="icondoc"></span></a><a class="el" href="a00021.html" target="_self">euler_angles.hpp</a></td><td class="desc"><a class="el" href="a00190.html">GLM_GTX_euler_angles</a> </td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00022_source.html"><span class="icondoc"></span></a><a class="el" href="a00022.html" target="_self">exponential.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00023_source.html"><span class="icondoc"></span></a><a class="el" href="a00023.html" target="_self">ext.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> (Dependence) </td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00024_source.html"><span class="icondoc"></span></a><a class="el" href="a00024.html" target="_self">extend.hpp</a></td><td class="desc"><a class="el" href="a00191.html">GLM_GTX_extend</a> </td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00025_source.html"><span class="icondoc"></span></a><a class="el" href="a00025.html" target="_self">extended_min_max.hpp</a></td><td class="desc">gtx_extended_min_max </td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00026_source.html"><span class="icondoc"></span></a><a class="el" href="a00026.html" target="_self">fast_exponential.hpp</a></td><td class="desc"><a class="el" href="a00193.html">GLM_GTX_fast_exponential</a> </td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00027_source.html"><span class="icondoc"></span></a><a class="el" href="a00027.html" target="_self">fast_square_root.hpp</a></td><td class="desc"><a class="el" href="a00194.html">GLM_GTX_fast_square_root</a> </td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00028_source.html"><span class="icondoc"></span></a><a class="el" href="a00028.html" target="_self">fast_trigonometry.hpp</a></td><td class="desc"><a class="el" href="a00195.html">GLM_GTX_fast_trigonometry</a> </td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00029_source.html"><span class="icondoc"></span></a><a class="el" href="a00029.html" target="_self">func_common.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00030_source.html"><span class="icondoc"></span></a><a class="el" href="a00030.html" target="_self">func_exponential.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00031_source.html"><span class="icondoc"></span></a><a class="el" href="a00031.html" target="_self">func_geometric.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00032_source.html"><span class="icondoc"></span></a><a class="el" href="a00032.html" target="_self">func_integer.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00033_source.html"><span class="icondoc"></span></a><a class="el" href="a00033.html" target="_self">func_matrix.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00034_source.html"><span class="icondoc"></span></a><a class="el" href="a00034.html" target="_self">func_packing.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00035_source.html"><span class="icondoc"></span></a><a class="el" href="a00035.html" target="_self">func_trigonometric.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00036_source.html"><span class="icondoc"></span></a><a class="el" href="a00036.html" target="_self">func_vector_relational.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00037_source.html"><span class="icondoc"></span></a><a class="el" href="a00037.html" target="_self">functions.hpp</a></td><td class="desc"><a class="el" href="a00164.html">GLM_GTC_functions</a> </td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00038_source.html"><span class="icondoc"></span></a><a class="el" href="a00038.html" target="_self">fwd.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00039_source.html"><span class="icondoc"></span></a><a class="el" href="a00039.html" target="_self">geometric.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00040_source.html"><span class="icondoc"></span></a><a class="el" href="a00040.html" target="_self">glm.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00041_source.html"><span class="icondoc"></span></a><a class="el" href="a00041.html" target="_self">gradient_paint.hpp</a></td><td class="desc"><a class="el" href="a00196.html">GLM_GTX_gradient_paint</a> </td></tr>
+<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00042_source.html"><span class="icondoc"></span></a><a class="el" href="a00042.html" target="_self">handed_coordinate_space.hpp</a></td><td class="desc"><a class="el" href="a00197.html">GLM_GTX_handed_coordinate_space</a> </td></tr>
+<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00043_source.html"><span class="icondoc"></span></a><a class="el" href="a00043.html" target="_self">hash.hpp</a></td><td class="desc"><a class="el" href="a00198.html">GLM_GTX_hash</a> </td></tr>
+<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00044_source.html"><span class="icondoc"></span></a><a class="el" href="a00044.html" target="_self">gtc/integer.hpp</a></td><td class="desc"><a class="el" href="a00165.html">GLM_GTC_integer</a> </td></tr>
+<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00045_source.html"><span class="icondoc"></span></a><a class="el" href="a00045.html" target="_self">gtx/integer.hpp</a></td><td class="desc"><a class="el" href="a00199.html">GLM_GTX_integer</a> </td></tr>
+<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00046_source.html"><span class="icondoc"></span></a><a class="el" href="a00046.html" target="_self">integer.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00047_source.html"><span class="icondoc"></span></a><a class="el" href="a00047.html" target="_self">intersect.hpp</a></td><td class="desc"><a class="el" href="a00200.html">GLM_GTX_intersect</a> </td></tr>
+<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00048_source.html"><span class="icondoc"></span></a><a class="el" href="a00048.html" target="_self">io.hpp</a></td><td class="desc"><a class="el" href="a00201.html">GLM_GTX_io</a> </td></tr>
+<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00049_source.html"><span class="icondoc"></span></a><a class="el" href="a00049.html" target="_self">log_base.hpp</a></td><td class="desc"><a class="el" href="a00202.html">GLM_GTX_log_base</a> </td></tr>
+<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00050_source.html"><span class="icondoc"></span></a><b>man.doxy</b></td><td class="desc"></td></tr>
+<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00051_source.html"><span class="icondoc"></span></a><a class="el" href="a00051.html" target="_self">mat2x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00052_source.html"><span class="icondoc"></span></a><a class="el" href="a00052.html" target="_self">mat2x3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00053_source.html"><span class="icondoc"></span></a><a class="el" href="a00053.html" target="_self">mat2x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00054_source.html"><span class="icondoc"></span></a><a class="el" href="a00054.html" target="_self">mat3x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00055_source.html"><span class="icondoc"></span></a><a class="el" href="a00055.html" target="_self">mat3x3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00056_source.html"><span class="icondoc"></span></a><a class="el" href="a00056.html" target="_self">mat3x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00057_source.html"><span class="icondoc"></span></a><a class="el" href="a00057.html" target="_self">mat4x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00058_source.html"><span class="icondoc"></span></a><b>mat4x3.hpp</b></td><td class="desc"></td></tr>
+<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00059_source.html"><span class="icondoc"></span></a><a class="el" href="a00059.html" target="_self">mat4x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00060_source.html"><span class="icondoc"></span></a><a class="el" href="a00060.html" target="_self">matrix.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00061_source.html"><span class="icondoc"></span></a><a class="el" href="a00061.html" target="_self">matrix_access.hpp</a></td><td class="desc"><a class="el" href="a00166.html">GLM_GTC_matrix_access</a> </td></tr>
+<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00062_source.html"><span class="icondoc"></span></a><a class="el" href="a00062.html" target="_self">matrix_cross_product.hpp</a></td><td class="desc"><a class="el" href="a00203.html">GLM_GTX_matrix_cross_product</a> </td></tr>
+<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00063_source.html"><span class="icondoc"></span></a><a class="el" href="a00063.html" target="_self">matrix_decompose.hpp</a></td><td class="desc"><a class="el" href="a00204.html">GLM_GTX_matrix_decompose</a> </td></tr>
+<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00064_source.html"><span class="icondoc"></span></a><a class="el" href="a00064.html" target="_self">matrix_integer.hpp</a></td><td class="desc"><a class="el" href="a00167.html">GLM_GTC_matrix_integer</a> </td></tr>
+<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00065_source.html"><span class="icondoc"></span></a><a class="el" href="a00065.html" target="_self">matrix_interpolation.hpp</a></td><td class="desc"><a class="el" href="a00205.html">GLM_GTX_matrix_interpolation</a> </td></tr>
+<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00066_source.html"><span class="icondoc"></span></a><a class="el" href="a00066.html" target="_self">matrix_inverse.hpp</a></td><td class="desc"><a class="el" href="a00168.html">GLM_GTC_matrix_inverse</a> </td></tr>
+<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00067_source.html"><span class="icondoc"></span></a><a class="el" href="a00067.html" target="_self">matrix_major_storage.hpp</a></td><td class="desc"><a class="el" href="a00206.html">GLM_GTX_matrix_major_storage</a> </td></tr>
+<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00068_source.html"><span class="icondoc"></span></a><a class="el" href="a00068.html" target="_self">matrix_operation.hpp</a></td><td class="desc"><a class="el" href="a00207.html">GLM_GTX_matrix_operation</a> </td></tr>
+<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00069_source.html"><span class="icondoc"></span></a><a class="el" href="a00069.html" target="_self">matrix_query.hpp</a></td><td class="desc"><a class="el" href="a00208.html">GLM_GTX_matrix_query</a> </td></tr>
+<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00070_source.html"><span class="icondoc"></span></a><a class="el" href="a00070.html" target="_self">matrix_transform.hpp</a></td><td class="desc"><a class="el" href="a00169.html">GLM_GTC_matrix_transform</a> </td></tr>
+<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00071_source.html"><span class="icondoc"></span></a><a class="el" href="a00071.html" target="_self">matrix_transform_2d.hpp</a></td><td class="desc"><a class="el" href="a00209.html">GLM_GTX_matrix_transform_2d</a> </td></tr>
+<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00072_source.html"><span class="icondoc"></span></a><a class="el" href="a00072.html" target="_self">mixed_product.hpp</a></td><td class="desc"><a class="el" href="a00210.html">GLM_GTX_mixed_producte</a> </td></tr>
+<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00073_source.html"><span class="icondoc"></span></a><a class="el" href="a00073.html" target="_self">noise.hpp</a></td><td class="desc"><a class="el" href="a00170.html">GLM_GTC_noise</a> </td></tr>
+<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00074_source.html"><span class="icondoc"></span></a><a class="el" href="a00074.html" target="_self">norm.hpp</a></td><td class="desc"><a class="el" href="a00211.html">GLM_GTX_norm</a> </td></tr>
+<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00075_source.html"><span class="icondoc"></span></a><a class="el" href="a00075.html" target="_self">normal.hpp</a></td><td class="desc"><a class="el" href="a00212.html">GLM_GTX_normal</a> </td></tr>
+<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00076_source.html"><span class="icondoc"></span></a><a class="el" href="a00076.html" target="_self">normalize_dot.hpp</a></td><td class="desc"><a class="el" href="a00213.html">GLM_GTX_normalize_dot</a> </td></tr>
+<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00077_source.html"><span class="icondoc"></span></a><a class="el" href="a00077.html" target="_self">number_precision.hpp</a></td><td class="desc"><a class="el" href="a00214.html">GLM_GTX_number_precision</a> </td></tr>
+<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00078_source.html"><span class="icondoc"></span></a><a class="el" href="a00078.html" target="_self">optimum_pow.hpp</a></td><td class="desc"><a class="el" href="a00215.html">GLM_GTX_optimum_pow</a> </td></tr>
+<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00079_source.html"><span class="icondoc"></span></a><a class="el" href="a00079.html" target="_self">orthonormalize.hpp</a></td><td class="desc"><a class="el" href="a00216.html">GLM_GTX_orthonormalize</a> </td></tr>
+<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00080_source.html"><span class="icondoc"></span></a><a class="el" href="a00080.html" target="_self">gtc/packing.hpp</a></td><td class="desc"><a class="el" href="a00171.html">GLM_GTC_packing</a> </td></tr>
+<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00081_source.html"><span class="icondoc"></span></a><a class="el" href="a00081.html" target="_self">packing.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00082_source.html"><span class="icondoc"></span></a><b>pages.doxy</b></td><td class="desc"></td></tr>
+<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00083_source.html"><span class="icondoc"></span></a><a class="el" href="a00083.html" target="_self">perpendicular.hpp</a></td><td class="desc"><a class="el" href="a00217.html">GLM_GTX_perpendicular</a> </td></tr>
+<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00084_source.html"><span class="icondoc"></span></a><a class="el" href="a00084.html" target="_self">polar_coordinates.hpp</a></td><td class="desc"><a class="el" href="a00218.html">GLM_GTX_polar_coordinates</a> </td></tr>
+<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00085_source.html"><span class="icondoc"></span></a><a class="el" href="a00085.html" target="_self">precision.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00086_source.html"><span class="icondoc"></span></a><a class="el" href="a00086.html" target="_self">projection.hpp</a></td><td class="desc"><a class="el" href="a00219.html">GLM_GTX_projection</a> </td></tr>
+<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00087_source.html"><span class="icondoc"></span></a><a class="el" href="a00087.html" target="_self">gtc/quaternion.hpp</a></td><td class="desc"><a class="el" href="a00172.html">GLM_GTC_quaternion</a> </td></tr>
+<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00088_source.html"><span class="icondoc"></span></a><a class="el" href="a00088.html" target="_self">gtx/quaternion.hpp</a></td><td class="desc"><a class="el" href="a00220.html">GLM_GTX_quaternion</a> </td></tr>
+<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00089_source.html"><span class="icondoc"></span></a><a class="el" href="a00089.html" target="_self">random.hpp</a></td><td class="desc"><a class="el" href="a00173.html">GLM_GTC_random</a> </td></tr>
+<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00090_source.html"><span class="icondoc"></span></a><a class="el" href="a00090.html" target="_self">range.hpp</a></td><td class="desc"><a class="el" href="a00221.html">GLM_GTX_range</a> </td></tr>
+<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00091_source.html"><span class="icondoc"></span></a><a class="el" href="a00091.html" target="_self">raw_data.hpp</a></td><td class="desc"><a class="el" href="a00222.html">GLM_GTX_raw_data</a> </td></tr>
+<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00092_source.html"><span class="icondoc"></span></a><a class="el" href="a00092.html" target="_self">reciprocal.hpp</a></td><td class="desc"><a class="el" href="a00174.html">GLM_GTC_reciprocal</a> </td></tr>
+<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00093_source.html"><span class="icondoc"></span></a><a class="el" href="a00093.html" target="_self">rotate_normalized_axis.hpp</a></td><td class="desc"><a class="el" href="a00223.html">GLM_GTX_rotate_normalized_axis</a> </td></tr>
+<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00094_source.html"><span class="icondoc"></span></a><a class="el" href="a00094.html" target="_self">rotate_vector.hpp</a></td><td class="desc"><a class="el" href="a00224.html">GLM_GTX_rotate_vector</a> </td></tr>
+<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00095_source.html"><span class="icondoc"></span></a><a class="el" href="a00095.html" target="_self">round.hpp</a></td><td class="desc"><a class="el" href="a00175.html">GLM_GTC_round</a> </td></tr>
+<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00096_source.html"><span class="icondoc"></span></a><a class="el" href="a00096.html" target="_self">scalar_multiplication.hpp</a></td><td class="desc"><a class="el" href="a00155.html">GTX Extensions (Experimental)</a> </td></tr>
+<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00097_source.html"><span class="icondoc"></span></a><a class="el" href="a00097.html" target="_self">scalar_relational.hpp</a></td><td class="desc"><a class="el" href="a00225.html">GLM_GTX_scalar_relational</a> </td></tr>
+<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00098_source.html"><span class="icondoc"></span></a><a class="el" href="a00098.html" target="_self">setup.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00099_source.html"><span class="icondoc"></span></a><a class="el" href="a00099.html" target="_self">simd_mat4.hpp</a></td><td class="desc"><a class="el" href="a00226.html">GLM_GTX_simd_mat4</a> </td></tr>
+<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00100_source.html"><span class="icondoc"></span></a><a class="el" href="a00100.html" target="_self">simd_quat.hpp</a></td><td class="desc"><a class="el" href="a00227.html">GLM_GTX_simd_quat</a> </td></tr>
+<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00101_source.html"><span class="icondoc"></span></a><a class="el" href="a00101.html" target="_self">simd_vec4.hpp</a></td><td class="desc"><a class="el" href="a00228.html">GLM_GTX_simd_vec4</a> </td></tr>
+<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00102_source.html"><span class="icondoc"></span></a><a class="el" href="a00102.html" target="_self">spline.hpp</a></td><td class="desc"><a class="el" href="a00229.html">GLM_GTX_spline</a> </td></tr>
+<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00103_source.html"><span class="icondoc"></span></a><a class="el" href="a00103.html" target="_self">std_based_type.hpp</a></td><td class="desc"><a class="el" href="a00230.html">GLM_GTX_std_based_type</a> </td></tr>
+<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00104_source.html"><span class="icondoc"></span></a><a class="el" href="a00104.html" target="_self">string_cast.hpp</a></td><td class="desc"><a class="el" href="a00231.html">GLM_GTX_string_cast</a> </td></tr>
+<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00105_source.html"><span class="icondoc"></span></a><a class="el" href="a00105.html" target="_self">transform.hpp</a></td><td class="desc"><a class="el" href="a00232.html">GLM_GTX_transform</a> </td></tr>
+<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00106_source.html"><span class="icondoc"></span></a><a class="el" href="a00106.html" target="_self">transform2.hpp</a></td><td class="desc"><a class="el" href="a00233.html">GLM_GTX_transform2</a> </td></tr>
+<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00107_source.html"><span class="icondoc"></span></a><a class="el" href="a00107.html" target="_self">trigonometric.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00108_source.html"><span class="icondoc"></span></a><a class="el" href="a00108.html" target="_self">gtc/type_aligned.hpp</a></td><td class="desc"><a class="el" href="a00176.html">GLM_GTC_type_aligned</a> </td></tr>
+<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00109_source.html"><span class="icondoc"></span></a><a class="el" href="a00109.html" target="_self">gtx/type_aligned.hpp</a></td><td class="desc"><a class="el" href="a00234.html">GLM_GTX_type_aligned</a> </td></tr>
+<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00110_source.html"><span class="icondoc"></span></a><a class="el" href="a00110.html" target="_self">type_float.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00111_source.html"><span class="icondoc"></span></a><a class="el" href="a00111.html" target="_self">type_gentype.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00112_source.html"><span class="icondoc"></span></a><a class="el" href="a00112.html" target="_self">type_half.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00113_source.html"><span class="icondoc"></span></a><a class="el" href="a00113.html" target="_self">type_int.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00114_source.html"><span class="icondoc"></span></a><a class="el" href="a00114.html" target="_self">type_mat.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00115_source.html"><span class="icondoc"></span></a><a class="el" href="a00115.html" target="_self">type_mat2x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00116_source.html"><span class="icondoc"></span></a><a class="el" href="a00116.html" target="_self">type_mat2x3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00117_source.html"><span class="icondoc"></span></a><a class="el" href="a00117.html" target="_self">type_mat2x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00118_source.html"><span class="icondoc"></span></a><a class="el" href="a00118.html" target="_self">type_mat3x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00119_source.html"><span class="icondoc"></span></a><a class="el" href="a00119.html" target="_self">type_mat3x3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_119_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00120_source.html"><span class="icondoc"></span></a><a class="el" href="a00120.html" target="_self">type_mat3x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00121_source.html"><span class="icondoc"></span></a><a class="el" href="a00121.html" target="_self">type_mat4x2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_121_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00122_source.html"><span class="icondoc"></span></a><a class="el" href="a00122.html" target="_self">type_mat4x3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_122_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00123_source.html"><span class="icondoc"></span></a><a class="el" href="a00123.html" target="_self">type_mat4x4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00124_source.html"><span class="icondoc"></span></a><a class="el" href="a00124.html" target="_self">type_precision.hpp</a></td><td class="desc"><a class="el" href="a00177.html">GLM_GTC_type_precision</a> </td></tr>
+<tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00125_source.html"><span class="icondoc"></span></a><a class="el" href="a00125.html" target="_self">type_ptr.hpp</a></td><td class="desc"><a class="el" href="a00178.html">GLM_GTC_type_ptr</a> </td></tr>
+<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00126_source.html"><span class="icondoc"></span></a><a class="el" href="a00126.html" target="_self">type_trait.hpp</a></td><td class="desc"><a class="el" href="a00235.html">GLM_GTX_type_trait</a> </td></tr>
+<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00127_source.html"><span class="icondoc"></span></a><a class="el" href="a00127.html" target="_self">type_vec.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00128_source.html"><span class="icondoc"></span></a><a class="el" href="a00128.html" target="_self">type_vec1.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00129_source.html"><span class="icondoc"></span></a><a class="el" href="a00129.html" target="_self">type_vec2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00130_source.html"><span class="icondoc"></span></a><a class="el" href="a00130.html" target="_self">type_vec3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00131_source.html"><span class="icondoc"></span></a><a class="el" href="a00131.html" target="_self">type_vec4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00132_source.html"><span class="icondoc"></span></a><a class="el" href="a00132.html" target="_self">ulp.hpp</a></td><td class="desc"><a class="el" href="a00179.html">GLM_GTC_ulp</a> </td></tr>
+<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00133_source.html"><span class="icondoc"></span></a><a class="el" href="a00133.html" target="_self">vec1.hpp</a></td><td class="desc"><a class="el" href="a00180.html">GLM_GTC_vec1</a> </td></tr>
+<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00134_source.html"><span class="icondoc"></span></a><a class="el" href="a00134.html" target="_self">vec2.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00135_source.html"><span class="icondoc"></span></a><a class="el" href="a00135.html" target="_self">vec3.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_135_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00136_source.html"><span class="icondoc"></span></a><a class="el" href="a00136.html" target="_self">vec4.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_136_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00137_source.html"><span class="icondoc"></span></a><a class="el" href="a00137.html" target="_self">vector_angle.hpp</a></td><td class="desc"><a class="el" href="a00236.html">GLM_GTX_vector_angle</a> </td></tr>
+<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00138_source.html"><span class="icondoc"></span></a><a class="el" href="a00138.html" target="_self">vector_query.hpp</a></td><td class="desc"><a class="el" href="a00237.html">GLM_GTX_vector_query</a> </td></tr>
+<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00139_source.html"><span class="icondoc"></span></a><a class="el" href="a00139.html" target="_self">vector_relational.hpp</a></td><td class="desc"><a class="el" href="a00156.html">GLM Core</a> </td></tr>
+<tr id="row_139_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><a href="a00140_source.html"><span class="icondoc"></span></a><a class="el" href="a00140.html" target="_self">wrap.hpp</a></td><td class="desc"><a class="el" href="a00238.html">GLM_GTX_wrap</a> </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/api/index.html b/doc/api/index.html
index 193fb2f..fb15d75 100644
--- a/doc/api/index.html
+++ b/doc/api/index.html
@@ -1,68 +1,68 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: OpenGL Mathematics</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.10 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li class="current"><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- </ul>
- </div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">OpenGL Mathematics </div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><p><a href="http://glm.g-truc.net">OpenGL Mathematics (GLM)</a> is a header only C++ mathematics library for graphics software based on the <a href="https://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</a> specification.</p>
-<p>GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that when a programmer knows GLSL, he knows GLM as well which makes it really easy to use.</p>
-<p>This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, noise, etc...</p>
-<p>This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library.</p>
-<p>GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:</p><ul>
-<li><a href="https://developer.apple.com/Library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html">Apple Clang</a> 4.0 and higher</li>
-<li><a href="https://gcc.gnu.org/">GCC</a> 4.2 and higher</li>
-<li><a href="http://llvm.org/">LLVM</a> 3.0 and higher</li>
-<li><a href="https://software.intel.com/en-us/intel-compilers">Intel C++ Composer</a> XE 2013 and higher</li>
-<li><a href="http://www.visualstudio.com/">Visual Studio</a> 2010 and higher</li>
-<li><a href="https://developer.nvidia.com/about-cuda">CUDA</a> 4.0 and higher (experimental)</li>
-<li>Any conform C++98 compiler</li>
-</ul>
-<dl class="section note"><dt>Note</dt><dd>The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the <a class="el" href="">glm </a> namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.</dd></dl>
-<p>The source code is licenced under the <a href="http://glm.g-truc.net/copying.txt">Happy Bunny License (Modified MIT)</a> and <a href="http://glm.g-truc.net/copying.txt">MIT license</a>.</p>
-<p>These pages are the API reference only. For more information about how to use GLM, please have a look at <a href="http://glm.g-truc.net/glm.pdf">the manual</a>.</p>
-<p>Thanks for contributing to the project by <a href="https://github.com/g-truc/glm/issues">submitting tickets for bug reports and feature requests</a>. Any feedback is welcome at <a href="#" onclick="location.href='mai'+'lto:'+'glm'+'@g'+'-tr'+'uc'+'.ne'+'t'; return false;">glm at g<span style="display: none;">.nosp at m.</span>-tru<span style="display: none;">.nosp at m.</span>c.net</a>. </p>
-</div></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.10
-</small></address>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.10"/>
+<title>0.9.8: OpenGL Mathematics</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">0.9.8
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.10 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">OpenGL Mathematics </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p><a href="http://glm.g-truc.net">OpenGL Mathematics (GLM)</a> is a header only C++ mathematics library for graphics software based on the <a href="https://www.opengl.org/documentation/glsl/">OpenGL Shading Language (GLSL)</a> specification.</p>
+<p>GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that when a programmer knows GLSL, he knows GLM as well which makes it really easy to use.</p>
+<p>This project isn't limited to GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, noise, etc...</p>
+<p>This library works perfectly with OpenGL but it also ensures interoperability with other third party libraries and SDK. It is a good candidate for software rendering (raytracing / rasterisation), image processing, physic simulations and any development context that requires a simple and convenient mathematics library.</p>
+<p>GLM is written in C++98 but can take advantage of C++11 when supported by the compiler. It is a platform independent library with no dependence and it officially supports the following compilers:</p><ul>
+<li><a href="https://developer.apple.com/Library/mac/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html">Apple Clang</a> 4.0 and higher</li>
+<li><a href="https://gcc.gnu.org/">GCC</a> 4.2 and higher</li>
+<li><a href="http://llvm.org/">LLVM</a> 3.0 and higher</li>
+<li><a href="https://software.intel.com/en-us/intel-compilers">Intel C++ Composer</a> XE 2013 and higher</li>
+<li><a href="http://www.visualstudio.com/">Visual Studio</a> 2010 and higher</li>
+<li><a href="https://developer.nvidia.com/about-cuda">CUDA</a> 4.0 and higher (experimental)</li>
+<li>Any conform C++98 compiler</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the <a class="el" href="">glm </a> namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.</dd></dl>
+<p>The source code is licensed under the <a href="http://glm.g-truc.net/copying.txt">Happy Bunny License (Modified MIT)</a> and <a href="http://glm.g-truc.net/copying.txt">MIT license</a>.</p>
+<p>These pages are the API reference only. For more information about how to use GLM, please have a look at <a href="http://glm.g-truc.net/glm.pdf">the manual</a>.</p>
+<p>Thanks for contributing to the project by <a href="https://github.com/g-truc/glm/issues">submitting tickets for bug reports and feature requests</a>. Any feedback is welcome at <a href="#" onclick="location.href='mai'+'lto:'+'glm'+'@g'+'-tr'+'uc'+'.ne'+'t'; return false;">glm at g<span style="display: none;">.nosp at m.</span>-tru<span style="display: none;">.nosp at m.</span>c.net</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.10
+</small></address>
+</body>
+</html>
diff --git a/doc/api/modules.html b/doc/api/modules.html
index d439843..e9ae018 100644
--- a/doc/api/modules.html
+++ b/doc/api/modules.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
-<title>0.9.7: Modules</title>
+<title>0.9.8: Modules</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -18,7 +18,7 @@
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">0.9.7
+ <div id="projectname">0.9.8
</div>
</td>
</tr>
@@ -42,98 +42,100 @@
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><a class="el" href="a00160.html" target="_self">GTC Extensions (Stable)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00166.html" target="_self">GLM_GTC_bitfield</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00167.html" target="_self">GLM_GTC_color_space</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00168.html" target="_self">GLM_GTC_constants</a></td><td class="desc">Provide a list of constants and precomputed useful values </td></tr>
-<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00169.html" target="_self">GLM_GTC_epsilon</a></td><td class="desc">Comparison functions for a user defined epsilon values </td></tr>
-<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00170.html" target="_self">GLM_GTC_integer</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00171.html" target="_self">GLM_GTC_matrix_access</a></td><td class="desc">Defines functions to access rows or columns of a matrix easily </td></tr>
-<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00172.html" target="_self">GLM_GTC_matrix_integer</a></td><td class="desc">Defines a number of matrices with integer types </td></tr>
-<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00173.html" target="_self">GLM_GTC_matrix_inverse</a></td><td class="desc">Defines additional matrix inverting functions </td></tr>
-<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00174.html" target="_self">GLM_GTC_matrix_transform</a></td><td class="desc">Defines functions that generate common transformation matrices </td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00175.html" target="_self">GLM_GTC_noise</a></td><td class="desc">Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.i [...]
-<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00176.html" target="_self">GLM_GTC_packing</a></td><td class="desc">This extension provides a set of function to convert vertors to packed formats </td></tr>
-<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00177.html" target="_self">GLM_GTC_quaternion</a></td><td class="desc">Defines a templated quaternion type and several quaternion operations </td></tr>
-<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00178.html" target="_self">GLM_GTC_random</a></td><td class="desc">Generate random number from various distribution methods </td></tr>
-<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00179.html" target="_self">GLM_GTC_reciprocal</a></td><td class="desc">Define secant, cosecant and cotangent functions </td></tr>
-<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00180.html" target="_self">GLM_GTC_round</a></td><td class="desc">Rounding value to specific boundings </td></tr>
-<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00181.html" target="_self">GLM_GTC_type_precision</a></td><td class="desc">Defines specific C++-based precision types </td></tr>
-<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00182.html" target="_self">GLM_GTC_type_ptr</a></td><td class="desc">Handles the interaction between pointers and vector, matrix types </td></tr>
-<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00183.html" target="_self">GLM_GTC_ulp</a></td><td class="desc">Allow the measurement of the accuracy of a function against a reference implementation </td></tr>
-<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00184.html" target="_self">GLM_GTC_vec1</a></td><td class="desc">Add vec1, ivec1, uvec1 and bvec1 types </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><a class="el" href="a00161.html" target="_self">GTX Extensions (Experimental)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
-<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00185.html" target="_self">GLM_GTX_associated_min_max</a></td><td class="desc">Min and max functions that return associated values not the compared onces </td></tr>
-<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00186.html" target="_self">GLM_GTX_bit</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
-<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00187.html" target="_self">GLM_GTX_closest_point</a></td><td class="desc">Find the point on a straight line which is the closet of a point </td></tr>
-<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00188.html" target="_self">GLM_GTX_color_space</a></td><td class="desc">Related to RGB to HSV conversions and operations </td></tr>
-<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00189.html" target="_self">GLM_GTX_color_space_YCoCg</a></td><td class="desc">RGB to YCoCg conversions and operations </td></tr>
-<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00190.html" target="_self">GLM_GTX_common</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
-<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00191.html" target="_self">GLM_GTX_compatibility</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
-<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00192.html" target="_self">GLM_GTX_component_wise</a></td><td class="desc">Operations between components of a type </td></tr>
-<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00193.html" target="_self">GLM_GTX_dual_quaternion</a></td><td class="desc">Defines a templated dual-quaternion type and several dual-quaternion operations </td></tr>
-<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00194.html" target="_self">GLM_GTX_euler_angles</a></td><td class="desc">Build matrices from Euler angles </td></tr>
-<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00195.html" target="_self">GLM_GTX_extend</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
-<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00196.html" target="_self">GLM_GTX_extented_min_max</a></td><td class="desc">Min and max functions for 3 to 4 parameters </td></tr>
-<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00197.html" target="_self">GLM_GTX_fast_exponential</a></td><td class="desc">Fast but less accurate implementations of exponential based functions </td></tr>
-<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00198.html" target="_self">GLM_GTX_fast_square_root</a></td><td class="desc">Fast but less accurate implementations of square root based functions </td></tr>
-<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00199.html" target="_self">GLM_GTX_fast_trigonometry</a></td><td class="desc">Fast but less accurate implementations of trigonometric functions </td></tr>
-<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00200.html" target="_self">GLM_GTX_gradient_paint</a></td><td class="desc">Functions that return the color of procedural gradient for specific coordinates </td></tr>
-<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00201.html" target="_self">GLM_GTX_handed_coordinate_space</a></td><td class="desc">To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
-<tr id="row_1_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00202.html" target="_self">GLM_GTX_hash</a></td><td class="desc">Add std::hash support for glm types </td></tr>
-<tr id="row_1_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00203.html" target="_self">GLM_GTX_integer</a></td><td class="desc">Add support for integer for core functions </td></tr>
-<tr id="row_1_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00204.html" target="_self">GLM_GTX_intersect</a></td><td class="desc">Add intersection functions </td></tr>
-<tr id="row_1_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00205.html" target="_self">GLM_GTX_io</a></td><td class="desc">Std::[w]ostream support for glm types </td></tr>
-<tr id="row_1_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00206.html" target="_self">GLM_GTX_log_base</a></td><td class="desc">Logarithm for any base </td></tr>
-<tr id="row_1_22_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00207.html" target="_self">GLM_GTX_matrix_cross_product</a></td><td class="desc">Build cross product matrices </td></tr>
-<tr id="row_1_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00208.html" target="_self">GLM_GTX_matrix_decompose</a></td><td class="desc">Decomposes a model matrix to translations, rotation and scale components </td></tr>
-<tr id="row_1_24_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00209.html" target="_self">GLM_GTX_matrix_interpolation</a></td><td class="desc">Allows to directly interpolate two exiciting matrices </td></tr>
-<tr id="row_1_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00210.html" target="_self">GLM_GTX_matrix_major_storage</a></td><td class="desc">Build matrices with specific matrix order, row or column </td></tr>
-<tr id="row_1_26_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00211.html" target="_self">GLM_GTX_matrix_operation</a></td><td class="desc">Build diagonal matrices from vectors </td></tr>
-<tr id="row_1_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00212.html" target="_self">GLM_GTX_matrix_query</a></td><td class="desc">Query to evaluate matrix properties </td></tr>
-<tr id="row_1_28_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00213.html" target="_self">GLM_GTX_matrix_transform_2d</a></td><td class="desc">Defines functions that generate common 2d transformation matrices </td></tr>
-<tr id="row_1_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00214.html" target="_self">GLM_GTX_mixed_producte</a></td><td class="desc">Mixed product of 3 vectors </td></tr>
-<tr id="row_1_30_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00215.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various ways to compute vector norms </td></tr>
-<tr id="row_1_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00216.html" target="_self">GLM_GTX_normal</a></td><td class="desc">Compute the normal of a triangle </td></tr>
-<tr id="row_1_32_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00217.html" target="_self">GLM_GTX_normalize_dot</a></td><td class="desc">Dot product of vectors that need to be normalize with a single square root </td></tr>
-<tr id="row_1_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00218.html" target="_self">GLM_GTX_number_precision</a></td><td class="desc">Defined size types </td></tr>
-<tr id="row_1_34_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00219.html" target="_self">GLM_GTX_optimum_pow</a></td><td class="desc">Integer exponentiation of power functions </td></tr>
-<tr id="row_1_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00220.html" target="_self">GLM_GTX_orthonormalize</a></td><td class="desc">Orthonormalize matrices </td></tr>
-<tr id="row_1_36_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00221.html" target="_self">GLM_GTX_perpendicular</a></td><td class="desc">Perpendicular of a vector from other one </td></tr>
-<tr id="row_1_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00222.html" target="_self">GLM_GTX_polar_coordinates</a></td><td class="desc">Conversion from Euclidean space to polar space and revert </td></tr>
-<tr id="row_1_38_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00223.html" target="_self">GLM_GTX_projection</a></td><td class="desc">Projection of a vector to other one </td></tr>
-<tr id="row_1_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00224.html" target="_self">GLM_GTX_quaternion</a></td><td class="desc">Extented quaternion types and functions </td></tr>
-<tr id="row_1_40_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00225.html" target="_self">GLM_GTX_range</a></td><td class="desc">Defines begin and end for vectors and matrices </td></tr>
-<tr id="row_1_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00226.html" target="_self">GLM_GTX_raw_data</a></td><td class="desc">Projection of a vector to other one </td></tr>
-<tr id="row_1_42_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00227.html" target="_self">GLM_GTX_rotate_normalized_axis</a></td><td class="desc">Quaternions and matrices rotations around normalized axis </td></tr>
-<tr id="row_1_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00228.html" target="_self">GLM_GTX_rotate_vector</a></td><td class="desc">Function to directly rotate a vector </td></tr>
-<tr id="row_1_44_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00229.html" target="_self">GLM_GTX_scalar_relational</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
-<tr id="row_1_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00230.html" target="_self">GLM_GTX_simd_mat4</a></td><td class="desc">SIMD implementation of mat4 type </td></tr>
-<tr id="row_1_46_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00231.html" target="_self">GLM_GTX_simd_quat</a></td><td class="desc">SIMD implementation of quat type </td></tr>
-<tr id="row_1_47_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00232.html" target="_self">GLM_GTX_simd_vec4</a></td><td class="desc">SIMD implementation of vec4 type </td></tr>
-<tr id="row_1_48_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00233.html" target="_self">GLM_GTX_spline</a></td><td class="desc">Spline functions </td></tr>
-<tr id="row_1_49_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00234.html" target="_self">GLM_GTX_std_based_type</a></td><td class="desc">Adds vector types based on STL value types </td></tr>
-<tr id="row_1_50_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00235.html" target="_self">GLM_GTX_string_cast</a></td><td class="desc">Setup strings for GLM type values </td></tr>
-<tr id="row_1_51_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00236.html" target="_self">GLM_GTX_transform</a></td><td class="desc">Add transformation matrices </td></tr>
-<tr id="row_1_52_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00237.html" target="_self">GLM_GTX_transform2</a></td><td class="desc">Add extra transformation matrices </td></tr>
-<tr id="row_1_53_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00238.html" target="_self">GLM_GTX_type_aligned</a></td><td class="desc">Defines aligned types </td></tr>
-<tr id="row_1_54_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00239.html" target="_self">GLM_GTX_vector_angle</a></td><td class="desc">Compute angle between vectors </td></tr>
-<tr id="row_1_55_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00240.html" target="_self">GLM_GTX_vector_query</a></td><td class="desc">Query informations of vector types </td></tr>
-<tr id="row_1_56_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00241.html" target="_self">GLM_GTX_wrap</a></td><td class="desc">Wrapping mode of texture coordinates </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">▼</span><a class="el" href="a00162.html" target="_self">GLM Core</a></td><td class="desc">The core of GLM, which implements exactly and only the GLSL specification to the degree possible </td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00151.html" target="_self">Common functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00152.html" target="_self">Exponential functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00153.html" target="_self">Geometric functions</a></td><td class="desc">These operate on vectors as vectors, not component-wise </td></tr>
-<tr id="row_2_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00154.html" target="_self">Integer functions</a></td><td class="desc">These all operate component-wise </td></tr>
-<tr id="row_2_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00155.html" target="_self">Matrix functions</a></td><td class="desc">For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision </td></tr>
-<tr id="row_2_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00156.html" target="_self">Noise functions</a></td><td class="desc">Noise functions are stochastic functions that can be used to increase visual complexity </td></tr>
-<tr id="row_2_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00157.html" target="_self">Floating-Point Pack and Unpack Functions</a></td><td class="desc">These functions do not operate component-wise, rather as described in each case </td></tr>
-<tr id="row_2_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00158.html" target="_self">Angle and Trigonometry Functions</a></td><td class="desc">Function parameters specified as angle are assumed to be in units of radians </td></tr>
-<tr id="row_2_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00159.html" target="_self">Vector Relational Functions</a></td><td class="desc">Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results </td></tr>
-<tr id="row_2_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_2_9_" class="arrow" onclick="toggleFolder('2_9_')">▼</span><a class="el" href="a00163.html" target="_self">Types</a></td><td class="desc">The standard types defined by the specification </td></tr>
-<tr id="row_2_9_0_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a class="el" href="a00164.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
-<tr id="row_2_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00164.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
-<tr id="row_2_11_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00165.html" target="_self">Template types</a></td><td class="desc">The generic template types used as the basis for the core types </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">▼</span><a class="el" href="a00154.html" target="_self">GTC Extensions (Stable)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00160.html" target="_self">GLM_GTC_bitfield</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00161.html" target="_self">GLM_GTC_color_space</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00162.html" target="_self">GLM_GTC_constants</a></td><td class="desc">Provide a list of constants and precomputed useful values </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00163.html" target="_self">GLM_GTC_epsilon</a></td><td class="desc">Comparison functions for a user defined epsilon values </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00164.html" target="_self">GLM_GTC_functions</a></td><td class="desc">List of useful common functions </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00165.html" target="_self">GLM_GTC_integer</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00166.html" target="_self">GLM_GTC_matrix_access</a></td><td class="desc">Defines functions to access rows or columns of a matrix easily </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00167.html" target="_self">GLM_GTC_matrix_integer</a></td><td class="desc">Defines a number of matrices with integer types </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00168.html" target="_self">GLM_GTC_matrix_inverse</a></td><td class="desc">Defines additional matrix inverting functions </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00169.html" target="_self">GLM_GTC_matrix_transform</a></td><td class="desc">Defines functions that generate common transformation matrices </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00170.html" target="_self">GLM_GTC_noise</a></td><td class="desc">Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": <a href="https://github.com/ashima/webgl-noise">https://github.com/ashima/webgl-noise</a> Following Stefan Gustavson's paper "Simplex noise demystified": <a href="http://www.itn.liu.se/~s [...]
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00171.html" target="_self">GLM_GTC_packing</a></td><td class="desc">This extension provides a set of function to convert vertors to packed formats </td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00172.html" target="_self">GLM_GTC_quaternion</a></td><td class="desc">Defines a templated quaternion type and several quaternion operations </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00173.html" target="_self">GLM_GTC_random</a></td><td class="desc">Generate random number from various distribution methods </td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00174.html" target="_self">GLM_GTC_reciprocal</a></td><td class="desc">Define secant, cosecant and cotangent functions </td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00175.html" target="_self">GLM_GTC_round</a></td><td class="desc">Rounding value to specific boundings </td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00176.html" target="_self">GLM_GTC_type_aligned</a></td><td class="desc">Aligned types </td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00177.html" target="_self">GLM_GTC_type_precision</a></td><td class="desc">Defines specific C++-based precision types </td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00178.html" target="_self">GLM_GTC_type_ptr</a></td><td class="desc">Handles the interaction between pointers and vector, matrix types </td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00179.html" target="_self">GLM_GTC_ulp</a></td><td class="desc">Allow the measurement of the accuracy of a function against a reference implementation </td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00180.html" target="_self">GLM_GTC_vec1</a></td><td class="desc">Add vec1, ivec1, uvec1 and bvec1 types </td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">▼</span><a class="el" href="a00155.html" target="_self">GTX Extensions (Experimental)</a></td><td class="desc">Functions and types that the GLSL specification doesn't define, but useful to have for a C++ program </td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00181.html" target="_self">GLM_GTX_associated_min_max</a></td><td class="desc">Min and max functions that return associated values not the compared onces </td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00182.html" target="_self">GLM_GTX_bit</a></td><td class="desc">Allow to perform bit operations on integer values </td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00183.html" target="_self">GLM_GTX_closest_point</a></td><td class="desc">Find the point on a straight line which is the closet of a point </td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00184.html" target="_self">GLM_GTX_color_space</a></td><td class="desc">Related to RGB to HSV conversions and operations </td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00185.html" target="_self">GLM_GTX_color_space_YCoCg</a></td><td class="desc">RGB to YCoCg conversions and operations </td></tr>
+<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00186.html" target="_self">GLM_GTX_common</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
+<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00187.html" target="_self">GLM_GTX_compatibility</a></td><td class="desc">Provide functions to increase the compatibility with Cg and HLSL languages </td></tr>
+<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00188.html" target="_self">GLM_GTX_component_wise</a></td><td class="desc">Operations between components of a type </td></tr>
+<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00189.html" target="_self">GLM_GTX_dual_quaternion</a></td><td class="desc">Defines a templated dual-quaternion type and several dual-quaternion operations </td></tr>
+<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00190.html" target="_self">GLM_GTX_euler_angles</a></td><td class="desc">Build matrices from Euler angles </td></tr>
+<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00191.html" target="_self">GLM_GTX_extend</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
+<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00192.html" target="_self">GLM_GTX_extented_min_max</a></td><td class="desc">Min and max functions for 3 to 4 parameters </td></tr>
+<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00193.html" target="_self">GLM_GTX_fast_exponential</a></td><td class="desc">Fast but less accurate implementations of exponential based functions </td></tr>
+<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00194.html" target="_self">GLM_GTX_fast_square_root</a></td><td class="desc">Fast but less accurate implementations of square root based functions </td></tr>
+<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00195.html" target="_self">GLM_GTX_fast_trigonometry</a></td><td class="desc">Fast but less accurate implementations of trigonometric functions </td></tr>
+<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00196.html" target="_self">GLM_GTX_gradient_paint</a></td><td class="desc">Functions that return the color of procedural gradient for specific coordinates </td></tr>
+<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00197.html" target="_self">GLM_GTX_handed_coordinate_space</a></td><td class="desc">To know if a set of three basis vectors defines a right or left-handed coordinate system </td></tr>
+<tr id="row_1_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00198.html" target="_self">GLM_GTX_hash</a></td><td class="desc">Add std::hash support for glm types </td></tr>
+<tr id="row_1_18_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00199.html" target="_self">GLM_GTX_integer</a></td><td class="desc">Add support for integer for core functions </td></tr>
+<tr id="row_1_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00200.html" target="_self">GLM_GTX_intersect</a></td><td class="desc">Add intersection functions </td></tr>
+<tr id="row_1_20_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00201.html" target="_self">GLM_GTX_io</a></td><td class="desc">Std::[w]ostream support for glm types </td></tr>
+<tr id="row_1_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00202.html" target="_self">GLM_GTX_log_base</a></td><td class="desc">Logarithm for any base </td></tr>
+<tr id="row_1_22_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00203.html" target="_self">GLM_GTX_matrix_cross_product</a></td><td class="desc">Build cross product matrices </td></tr>
+<tr id="row_1_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00204.html" target="_self">GLM_GTX_matrix_decompose</a></td><td class="desc">Decomposes a model matrix to translations, rotation and scale components </td></tr>
+<tr id="row_1_24_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00205.html" target="_self">GLM_GTX_matrix_interpolation</a></td><td class="desc">Allows to directly interpolate two exiciting matrices </td></tr>
+<tr id="row_1_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00206.html" target="_self">GLM_GTX_matrix_major_storage</a></td><td class="desc">Build matrices with specific matrix order, row or column </td></tr>
+<tr id="row_1_26_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00207.html" target="_self">GLM_GTX_matrix_operation</a></td><td class="desc">Build diagonal matrices from vectors </td></tr>
+<tr id="row_1_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00208.html" target="_self">GLM_GTX_matrix_query</a></td><td class="desc">Query to evaluate matrix properties </td></tr>
+<tr id="row_1_28_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00209.html" target="_self">GLM_GTX_matrix_transform_2d</a></td><td class="desc">Defines functions that generate common 2d transformation matrices </td></tr>
+<tr id="row_1_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00210.html" target="_self">GLM_GTX_mixed_producte</a></td><td class="desc">Mixed product of 3 vectors </td></tr>
+<tr id="row_1_30_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00211.html" target="_self">GLM_GTX_norm</a></td><td class="desc">Various ways to compute vector norms </td></tr>
+<tr id="row_1_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00212.html" target="_self">GLM_GTX_normal</a></td><td class="desc">Compute the normal of a triangle </td></tr>
+<tr id="row_1_32_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00213.html" target="_self">GLM_GTX_normalize_dot</a></td><td class="desc">Dot product of vectors that need to be normalize with a single square root </td></tr>
+<tr id="row_1_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00214.html" target="_self">GLM_GTX_number_precision</a></td><td class="desc">Defined size types </td></tr>
+<tr id="row_1_34_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00215.html" target="_self">GLM_GTX_optimum_pow</a></td><td class="desc">Integer exponentiation of power functions </td></tr>
+<tr id="row_1_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00216.html" target="_self">GLM_GTX_orthonormalize</a></td><td class="desc">Orthonormalize matrices </td></tr>
+<tr id="row_1_36_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00217.html" target="_self">GLM_GTX_perpendicular</a></td><td class="desc">Perpendicular of a vector from other one </td></tr>
+<tr id="row_1_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00218.html" target="_self">GLM_GTX_polar_coordinates</a></td><td class="desc">Conversion from Euclidean space to polar space and revert </td></tr>
+<tr id="row_1_38_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00219.html" target="_self">GLM_GTX_projection</a></td><td class="desc">Projection of a vector to other one </td></tr>
+<tr id="row_1_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00220.html" target="_self">GLM_GTX_quaternion</a></td><td class="desc">Extented quaternion types and functions </td></tr>
+<tr id="row_1_40_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00221.html" target="_self">GLM_GTX_range</a></td><td class="desc">Defines begin and end for vectors and matrices </td></tr>
+<tr id="row_1_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00222.html" target="_self">GLM_GTX_raw_data</a></td><td class="desc">Projection of a vector to other one </td></tr>
+<tr id="row_1_42_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00223.html" target="_self">GLM_GTX_rotate_normalized_axis</a></td><td class="desc">Quaternions and matrices rotations around normalized axis </td></tr>
+<tr id="row_1_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00224.html" target="_self">GLM_GTX_rotate_vector</a></td><td class="desc">Function to directly rotate a vector </td></tr>
+<tr id="row_1_44_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00225.html" target="_self">GLM_GTX_scalar_relational</a></td><td class="desc">Extend a position from a source to a position at a defined length </td></tr>
+<tr id="row_1_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00226.html" target="_self">GLM_GTX_simd_mat4</a></td><td class="desc">SIMD implementation of mat4 type </td></tr>
+<tr id="row_1_46_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00227.html" target="_self">GLM_GTX_simd_quat</a></td><td class="desc">SIMD implementation of quat type </td></tr>
+<tr id="row_1_47_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00228.html" target="_self">GLM_GTX_simd_vec4</a></td><td class="desc">SIMD implementation of vec4 type </td></tr>
+<tr id="row_1_48_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00229.html" target="_self">GLM_GTX_spline</a></td><td class="desc">Spline functions </td></tr>
+<tr id="row_1_49_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00230.html" target="_self">GLM_GTX_std_based_type</a></td><td class="desc">Adds vector types based on STL value types </td></tr>
+<tr id="row_1_50_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00231.html" target="_self">GLM_GTX_string_cast</a></td><td class="desc">Setup strings for GLM type values </td></tr>
+<tr id="row_1_51_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00232.html" target="_self">GLM_GTX_transform</a></td><td class="desc">Add transformation matrices </td></tr>
+<tr id="row_1_52_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00233.html" target="_self">GLM_GTX_transform2</a></td><td class="desc">Add extra transformation matrices </td></tr>
+<tr id="row_1_53_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00234.html" target="_self">GLM_GTX_type_aligned</a></td><td class="desc">Defines aligned types </td></tr>
+<tr id="row_1_54_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00235.html" target="_self">GLM_GTX_type_trait</a></td><td class="desc">Defines traits for each type </td></tr>
+<tr id="row_1_55_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00236.html" target="_self">GLM_GTX_vector_angle</a></td><td class="desc">Compute angle between vectors </td></tr>
+<tr id="row_1_56_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00237.html" target="_self">GLM_GTX_vector_query</a></td><td class="desc">Query informations of vector types </td></tr>
+<tr id="row_1_57_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00238.html" target="_self">GLM_GTX_wrap</a></td><td class="desc">Wrapping mode of texture coordinates </td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">▼</span><a class="el" href="a00156.html" target="_self">GLM Core</a></td><td class="desc">The core of GLM, which implements exactly and only the GLSL specification to the degree possible </td></tr>
+<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00146.html" target="_self">Common functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_1_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00147.html" target="_self">Exponential functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00148.html" target="_self">Geometric functions</a></td><td class="desc">These operate on vectors as vectors, not component-wise </td></tr>
+<tr id="row_2_3_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00149.html" target="_self">Integer functions</a></td><td class="desc">These all operate component-wise </td></tr>
+<tr id="row_2_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00150.html" target="_self">Matrix functions</a></td><td class="desc">For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision </td></tr>
+<tr id="row_2_5_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00151.html" target="_self">Floating-Point Pack and Unpack Functions</a></td><td class="desc">These functions do not operate component-wise, rather as described in each case </td></tr>
+<tr id="row_2_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00152.html" target="_self">Angle and Trigonometry Functions</a></td><td class="desc">Function parameters specified as angle are assumed to be in units of radians </td></tr>
+<tr id="row_2_7_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00153.html" target="_self">Vector Relational Functions</a></td><td class="desc">Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results </td></tr>
+<tr id="row_2_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_2_8_" class="arrow" onclick="toggleFolder('2_8_')">▼</span><a class="el" href="a00157.html" target="_self">Types</a></td><td class="desc">The standard types defined by the specification </td></tr>
+<tr id="row_2_8_0_"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a class="el" href="a00158.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
+<tr id="row_2_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00158.html" target="_self">Precision types</a></td><td class="desc">Non-GLSL types that are used to define precision-based types </td></tr>
+<tr id="row_2_10_"><td class="entry"><span style="width:32px;display:inline-block;"> </span><a class="el" href="a00159.html" target="_self">Template types</a></td><td class="desc">The generic template types used as the basis for the core types </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/glm.docx b/doc/glm.docx
index 00101b3..ba99849 100644
Binary files a/doc/glm.docx and b/doc/glm.docx differ
diff --git a/doc/glm.pdf b/doc/glm.pdf
index 8b67446..444725c 100644
Binary files a/doc/glm.pdf and b/doc/glm.pdf differ
diff --git a/doc/man.doxy b/doc/man.doxy
index faa8285..6095a17 100644
--- a/doc/man.doxy
+++ b/doc/man.doxy
@@ -1,2396 +1,2396 @@
-# Doxyfile 1.8.10
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME = 0.9.7
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF =
-
-# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-# in the documentation. The maximum height of the logo should not exceed 55
-# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-# the logo to the output directory.
-
-PROJECT_LOGO = D:/Source/G-Truc/glm/doc/logo.png
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = .
-
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS = NO
-
-# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-# characters to appear in the names of generated files. If set to NO, non-ASCII
-# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-# U+3044.
-# The default value is: NO.
-
-ALLOW_UNICODE_NAMES = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC = NO
-
-# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF = "The $name class " \
- "The $name widget " \
- "The $name file " \
- is \
- provides \
- specifies \
- contains \
- represents \
- a \
- an \
- the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES = NO
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-# page for each member. If set to NO, the documentation of a member will be part
-# of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
-#
-# Note: For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT = YES
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# If one adds a struct or class to a group and this option is enabled, then also
-# any nested class or struct is added to the same group. By default this option
-# is disabled and one has to add nested compounds explicitly via \ingroup.
-# The default value is: NO.
-
-GROUP_NESTED_COMPOUNDS = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING = NO
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE = NO
-
-# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO,
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES = NO
-
-# This flag is only useful for Objective-C code. If set to YES, local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO, only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES = YES
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS = YES
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO, these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS = YES
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES, the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES = YES
-
-# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
-# append additional text to a page's title, such as Class Reference. If set to
-# YES the compound reference will be hidden.
-# The default value is: NO.
-
-HIDE_COMPOUND_REFERENCE= NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES = NO
-
-# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-# grouped member an include statement to the documentation, telling the reader
-# which file to include in order to use the member.
-# The default value is: NO.
-
-SHOW_GROUPED_MEMB_INC = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO = NO
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS = YES
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME = YES
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-# list. This list is created by putting \todo commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-# list. This list is created by putting \test commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if <section_label> ... \endif and \cond <section_label>
-# ... \endcond blocks.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES, the
-# list will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. See also \cite for info how to create references.
-
-CITE_BIB_FILES =
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = ../glm \
- .
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# read by doxygen.
-#
-# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
-# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
-# *.vhdl, *.ucf, *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.hpp \
- *.doxy
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-# <filter> <input-file>
-#
-# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS =
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX = NO
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET =
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# cascading style sheets that are included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefore more robust against future updates.
-# Doxygen will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = NO
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE =
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler (hhc.exe). If non-empty,
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION =
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING =
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated
-# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-# enables the Previous and Next buttons.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS =
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH = 250
-
-# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX = NO
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS =
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use <access key> + S
-# (what the <access key> is depends on the OS and browser, but it is typically
-# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-# key> to jump into the search results window, the results can be navigated
-# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-# the search. The filter options can be selected when the cursor is inside the
-# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-# to select a filter and <Enter> or <escape> to activate or cancel the filter
-# option.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-SEARCHENGINE = NO
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
-# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
-# setting. When disabled, doxygen will generate a PHP script for searching and
-# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
-# and searching needs to be provided by external tools. See the section
-# "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SERVER_BASED_SEARCH = NO
-
-# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-# script for searching. Instead the search results are written to an XML file
-# which needs to be processed by an external indexer. Doxygen will invoke an
-# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-# search results.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
-#
-# See the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH = NO
-
-# The SEARCHENGINE_URL should point to a search engine hosted by a web server
-# which will return the search results when EXTERNAL_SEARCH is enabled.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHENGINE_URL =
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-# search data is written to a file for indexing by an external tool. With the
-# SEARCHDATA_FILE tag the name of this file can be specified.
-# The default file is: searchdata.xml.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHDATA_FILE = searchdata.xml
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-# projects and redirect the results back to the right project.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH_ID =
-
-# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-# projects other than the one defined by this configuration file, but that are
-# all added to the same external search index. Each project needs to have a
-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-# to a relative location where the documentation can be found. The format is:
-# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTRA_SEARCH_MAPPINGS =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
-# The default value is: YES.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked.
-#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used by the
-# printer.
-# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-# 14 inches) and executive (7.25 x 10.5 inches).
-# The default value is: a4.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. The package can be specified just
-# by its name or with the correct syntax as to be used with the LaTeX
-# \usepackage command. To get the times font for instance you can specify :
-# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
-# To use the option intlimits with the amsmath package you can specify:
-# EXTRA_PACKAGES=[intlimits]{amsmath}
-# If left blank no extra packages will be included.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
-# LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_FOOTER =
-
-# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# LaTeX style sheets that are included after the standard style sheets created
-# by doxygen. Using this option one can overrule certain style aspects. Doxygen
-# will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list).
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_STYLESHEET =
-
-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the LATEX_OUTPUT output
-# directory. Note that the files will be copied as-is; there are no commands or
-# markers available.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_FILES =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-# contain links (just like the HTML output) instead of page references. This
-# makes the output suitable for online browsing using a PDF viewer.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BATCHMODE = NO
-
-# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-# index chapters (such as File Index, Compound Index, etc.) in the output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HIDE_INDICES = NO
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-# The default value is: plain.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BIB_STYLE = plain
-
-#---------------------------------------------------------------------------
-# Configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
-# RTF output is optimized for Word 97 and may not look too pretty with other RTF
-# readers/editors.
-# The default value is: NO.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: rtf.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_OUTPUT = glm.rtf
-
-# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-# contain hyperlink fields. The RTF file will contain links (just like the HTML
-# output) instead of page references. This makes the output suitable for online
-# browsing using Word or some other Word compatible readers that support those
-# fields.
-#
-# Note: WordPad (write) and others do not support links.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_HYPERLINKS = YES
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
-#
-# See also section "Doxygen usage" for information on how to generate the
-# default style sheet that doxygen normally uses.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_EXTENSIONS_FILE =
-
-# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-# with syntax highlighting in the RTF output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_SOURCE_CODE = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
-# classes and files.
-# The default value is: NO.
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it. A directory man3 will be created inside the directory specified by
-# MAN_OUTPUT.
-# The default directory is: man.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to the generated
-# man pages. In case the manual section does not start with a number, the number
-# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-# optional.
-# The default value is: .3.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_EXTENSION = .3
-
-# The MAN_SUBDIR tag determines the name of the directory created within
-# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
-# MAN_EXTENSION with the initial . removed.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_SUBDIR =
-
-# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-# will generate one additional man file for each entity documented in the real
-# man page(s). These additional files only source the real man page, but without
-# them the man command would be unable to find the correct page.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
-# captures the structure of the code including all documentation.
-# The default value is: NO.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: xml.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_OUTPUT = xml
-
-# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
-# listings (including syntax highlighting and cross-referencing information) to
-# the XML output. Note that enabling this will significantly increase the size
-# of the XML output.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the DOCBOOK output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
-# that can be used to generate PDF.
-# The default value is: NO.
-
-GENERATE_DOCBOOK = NO
-
-# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-# front of it.
-# The default directory is: docbook.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_OUTPUT = docbook
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
-# file that captures the structure of the code including all documentation.
-#
-# Note that this feature is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
-# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-# output from the Perl module output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
-# formatted so it can be parsed by a human reader. This is useful if you want to
-# understand what is going on. On the other hand, if this tag is set to NO, the
-# size of the Perl module output will be much smaller and Perl will parse it
-# just the same.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file are
-# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-# so different doxyrules.make files included by the same Makefile don't
-# overwrite each other's variables.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
-# C-preprocessor directives found in the sources and include files.
-# The default value is: YES.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
-# in the source code. If set to NO, only conditional compilation will be
-# performed. Macro expansion can be done in a controlled way by setting
-# EXPAND_ONLY_PREDEF to YES.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-# the macro expansion is limited to the macros specified with the PREDEFINED and
-# EXPAND_AS_DEFINED tags.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES, the include files in the
-# INCLUDE_PATH will be searched if a #include is found.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by the
-# preprocessor.
-# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will be
-# used.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that are
-# defined before the preprocessor is started (similar to the -D option of e.g.
-# gcc). The argument of the tag is a list of macros of the form: name or
-# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-# is assumed. To prevent a macro definition from being undefined via #undef or
-# recursively expanded use the := operator instead of the = operator.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-# tag can be used to specify a list of macro names that should be expanded. The
-# macro definition that is found in the sources will be used. Use the PREDEFINED
-# tag if you want to use a different macro definition that overrules the
-# definition found in the source code.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-# remove all references to function-like macros that are alone on a line, have
-# an all uppercase name, and do not end with a semicolon. Such function macros
-# are typically used for boiler-plate code, and will confuse the parser if not
-# removed.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tag files. For each tag
-# file the location of the external documentation should be added. The format of
-# a tag file without this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where loc1 and loc2 can be relative or absolute paths or URLs. See the
-# section "Linking to external documentation" for more information about the use
-# of tag files.
-# Note: Each tag file must have a unique name (where the name does NOT include
-# the path). If a tag file is not located in the directory in which doxygen is
-# run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-# tag file that is based on the input files it reads. See section "Linking to
-# external documentation" for more information about the usage of tag files.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-# the class index. If set to NO, only the inherited external classes will be
-# listed.
-# The default value is: NO.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will be
-# listed.
-# The default value is: YES.
-
-EXTERNAL_GROUPS = YES
-
-# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
-# the related pages index. If set to NO, only the current project's pages will
-# be listed.
-# The default value is: YES.
-
-EXTERNAL_PAGES = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH =
-
-# If set to YES the inheritance and collaboration graphs will hide inheritance
-# and usage relations if the target is undocumented or is not a class.
-# The default value is: YES.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-# Bell Labs. The other options in this section have no effect if this option is
-# set to NO
-# The default value is: NO.
-
-HAVE_DOT = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-# to run in parallel. When set to 0 doxygen will base this on the number of
-# processors available in the system. You can set it explicitly to a value
-# larger than 0 to get control over the balance between CPU load and processing
-# speed.
-# Minimum value: 0, maximum value: 32, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_NUM_THREADS = 0
-
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTPATH =
-
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-# graph for each documented class showing the direct and indirect implementation
-# dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LOOK = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-# class node. If there are many fields or methods and many nodes the graph may
-# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-# number of items for each type to make the size more manageable. Set this to 0
-# for no limit. Note that the threshold may be exceeded by 50% before the limit
-# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-# but if the number exceeds 15, the total amount of fields shown is limited to
-# 10.
-# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS = 10
-
-# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-# collaboration graphs will show the relations between templates and their
-# instances.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-TEMPLATE_RELATIONS = NO
-
-# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-# YES then doxygen will generate a graph for each documented file showing the
-# direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDE_GRAPH = YES
-
-# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-# set to YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command. Disabling a call graph can be
-# accomplished by means of the command \hidecallgraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALL_GRAPH = YES
-
-# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command. Disabling a caller graph can be
-# accomplished by means of the command \hidecallergraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALLER_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-# hierarchy of all classes instead of a textual one.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-# dependencies a directory has on other directories in a graphical way. The
-# dependency relations are determined by the #include relations between the
-# files in the directories.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. For an explanation of the image formats see the section
-# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
-# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-# to make the SVG files visible in IE 9+ (other browsers do not have this
-# requirement).
-# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
-# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
-# png:gdiplus:gdiplus.
-# The default value is: png.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_IMAGE_FORMAT = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG = NO
-
-# The DOT_PATH tag can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the \dotfile
-# command).
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOTFILE_DIRS =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
-
-MSCFILE_DIRS =
-
-# The DIAFILE_DIRS tag can be used to specify one or more directories that
-# contain dia files that are included in the documentation (see the \diafile
-# command).
-
-DIAFILE_DIRS =
-
-# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
-
-PLANTUML_JAR_PATH =
-
-# When using plantuml, the specified paths are searched for files specified by
-# the !include statement in a plantuml block.
-
-PLANTUML_INCLUDE_PATH =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-# generated by dot. A depth value of 3 means that only nodes reachable from the
-# root by following a path via at most 3 edges will be shown. Nodes that lay
-# further from the root node will be omitted. Note that setting this option to 1
-# or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-# Minimum value: 0, maximum value: 1000, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-MAX_DOT_GRAPH_DEPTH = 1000
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-# this, this feature is disabled by default.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-# explaining the meaning of the various boxes and arrows in the dot generated
-# graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP = YES
+# Doxyfile 1.8.10
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME = 0.9.7
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO = D:/Source/G-Truc/glm/doc/logo.png
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = .
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC = NO
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF = "The $name class " \
+ "The $name widget " \
+ "The $name file " \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING = NO
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES = NO
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS = YES
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS = YES
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES = YES
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES = NO
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO = NO
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS = YES
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME = YES
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = ../glm \
+ .
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
+# *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
+FILE_PATTERNS = *.hpp \
+ *.doxy
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX = NO
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT = glm.rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS = YES
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH = YES
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH = 1000
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP = YES
diff --git a/doc/pages.doxy b/doc/pages.doxy
index 5424018..67b035f 100644
--- a/doc/pages.doxy
+++ b/doc/pages.doxy
@@ -23,7 +23,7 @@
Please ignore this; All publicly available types and functions can be accessed as a direct children
of the glm namespace.
- The source code is licenced under the <a href="http://glm.g-truc.net/copying.txt">Happy Bunny License (Modified MIT)</a> and <a href="http://glm.g-truc.net/copying.txt">MIT license</a>.
+ The source code is licensed under the <a href="http://glm.g-truc.net/copying.txt">Happy Bunny License (Modified MIT)</a> and <a href="http://glm.g-truc.net/copying.txt">MIT license</a>.
These pages are the API reference only. For more information about how to use GLM, please have a look at <a href="http://glm.g-truc.net/glm.pdf">the manual</a>.
diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt
index 44ed80c..67f1146 100644
--- a/glm/CMakeLists.txt
+++ b/glm/CMakeLists.txt
@@ -1,5 +1,3 @@
-set(NAME glm_dummy)
-
file(GLOB ROOT_SOURCE *.cpp)
file(GLOB ROOT_INLINE *.inl)
file(GLOB ROOT_HEADER *.hpp)
@@ -19,6 +17,10 @@ file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl)
file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp)
+file(GLOB_RECURSE SIMD_SOURCE ./simd/*.cpp)
+file(GLOB_RECURSE SIMD_INLINE ./simd/*.inl)
+file(GLOB_RECURSE SIMD_HEADER ./simd/*.h)
+
source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD})
source_group("Core Files" FILES ${CORE_SOURCE})
source_group("Core Files" FILES ${CORE_INLINE})
@@ -29,16 +31,37 @@ source_group("GTC Files" FILES ${GTC_HEADER})
source_group("GTX Files" FILES ${GTX_SOURCE})
source_group("GTX Files" FILES ${GTX_INLINE})
source_group("GTX Files" FILES ${GTX_HEADER})
+source_group("SIMD Files" FILES ${SIMD_SOURCE})
+source_group("SIMD Files" FILES ${SIMD_INLINE})
+source_group("SIMD Files" FILES ${SIMD_HEADER})
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
-if(GLM_TEST_ENABLE)
- add_executable(${NAME} ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
+if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
+ if(GLM_STATIC_LIBRARY_ENABLE)
+ add_library(glm_static STATIC ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
+ ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
+ ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
+ ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
+ ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
+ ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
+ endif(GLM_STATIC_LIBRARY_ENABLE)
+
+ if(GLM_DYNAMIC_LIBRARY_ENABLE)
+ add_library(glm_shared SHARED ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
+ ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
+ ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
+ ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
+ ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
+ ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
+ endif(GLM_DYNAMIC_LIBRARY_ENABLE)
+
+else(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
+ add_executable(glm_dummy ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT}
${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER}
${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER}
${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER}
- ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER})
-endif(GLM_TEST_ENABLE)
+ ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER}
+ ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER})
-#add_library(glm STATIC glm.cpp)
-#add_library(glm_shared SHARED glm.cpp)
+endif(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
diff --git a/glm/common.hpp b/glm/common.hpp
index 45dd343..ac8af6e 100644
--- a/glm/common.hpp
+++ b/glm/common.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/common.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/_features.hpp b/glm/detail/_features.hpp
index f132015..d47eef6 100644
--- a/glm/detail/_features.hpp
+++ b/glm/detail/_features.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_features.hpp
-/// @date 2013-02-20 / 2013-02-20
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -284,7 +255,7 @@
# define GLM_CXX11_STATIC_ASSERT
# endif
-#elif(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
+#elif(GLM_COMPILER & GLM_COMPILER_CLANG)
# if(__has_feature(cxx_exceptions))
# define GLM_CXX98_EXCEPTIONS
# endif
@@ -425,4 +396,4 @@
# define GLM_CXX11_VARIADIC_TEMPLATES
# endif
-#endif//(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
+#endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
diff --git a/glm/detail/_fixes.hpp b/glm/detail/_fixes.hpp
index 827ec95..38c210c 100644
--- a/glm/detail/_fixes.hpp
+++ b/glm/detail/_fixes.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_fixes.hpp
-/// @date 2011-02-21 / 2011-11-22
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <cmath>
diff --git a/glm/detail/_noise.hpp b/glm/detail/_noise.hpp
index 164e691..3e5913d 100644
--- a/glm/detail/_noise.hpp
+++ b/glm/detail/_noise.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_noise.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/_swizzle.hpp b/glm/detail/_swizzle.hpp
index 82be311..670e269 100644
--- a/glm/detail/_swizzle.hpp
+++ b/glm/detail/_swizzle.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_swizzle.hpp
-/// @date 2006-04-20 / 2011-02-16
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -39,11 +10,9 @@ namespace detail
template <typename T, int N>
struct _swizzle_base0
{
- typedef T value_type;
-
protected:
- GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast<value_type*>(_buffer))[i]; }
- GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast<const value_type*>(_buffer))[i]; }
+ GLM_FUNC_QUALIFIER T& elem(size_t i){ return (reinterpret_cast<T*>(_buffer))[i]; }
+ GLM_FUNC_QUALIFIER T const& elem(size_t i) const{ return (reinterpret_cast<const T*>(_buffer))[i]; }
// Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
// The size 1 buffer is assumed to aligned to the actual members so that the
@@ -51,27 +20,27 @@ namespace detail
char _buffer[1];
};
- template <typename T, precision P, typename V, int E0, int E1, int E2, int E3, int N>
+ template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, bool Aligned>
struct _swizzle_base1 : public _swizzle_base0<T, N>
{
};
- template <typename T, precision P, typename V, int E0, int E1>
- struct _swizzle_base1<T, P, V,E0,E1,-1,-2,2> : public _swizzle_base0<T, 2>
+ template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, bool Aligned>
+ struct _swizzle_base1<2, T, P, vecType, E0,E1,-1,-2, Aligned> : public _swizzle_base0<T, 2>
{
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
+ GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1)); }
};
- template <typename T, precision P, typename V, int E0, int E1, int E2>
- struct _swizzle_base1<T, P, V,E0,E1,E2,-1,3> : public _swizzle_base0<T, 3>
+ template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, bool Aligned>
+ struct _swizzle_base1<3, T, P, vecType, E0,E1,E2,-1, Aligned> : public _swizzle_base0<T, 3>
{
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
+ GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2)); }
};
- template <typename T, precision P, typename V, int E0, int E1, int E2, int E3>
- struct _swizzle_base1<T, P, V,E0,E1,E2,E3,4> : public _swizzle_base0<T, 4>
+ template <typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, bool Aligned>
+ struct _swizzle_base1<4, T, P, vecType, E0,E1,E2,E3, Aligned> : public _swizzle_base0<T, 4>
{
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+ GLM_FUNC_QUALIFIER vecType<T, P> operator ()() const { return vecType<T, P>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
};
// Internal class for implementing swizzle operators
@@ -86,79 +55,76 @@ namespace detail
DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
containing duplicate elements so that they cannot be used as r-values).
*/
- template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
- struct _swizzle_base2 : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
+ template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
+ struct _swizzle_base2 : public _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value>
{
- typedef VecType vec_type;
- typedef ValueType value_type;
-
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t)
+ GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const T& t)
{
for (int i = 0; i < N; ++i)
(*this)[i] = t;
return *this;
}
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that)
+ GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vecType<T, P> const& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; }
+ GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e = t; }
};
_apply_op(that, op());
return *this;
}
- GLM_FUNC_QUALIFIER void operator -= (const VecType& that)
+ GLM_FUNC_QUALIFIER void operator -= (vecType<T, P> const& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; }
+ GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e -= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator += (const VecType& that)
+ GLM_FUNC_QUALIFIER void operator += (vecType<T, P> const& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; }
+ GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e += t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator *= (const VecType& that)
+ GLM_FUNC_QUALIFIER void operator *= (vecType<T, P> const& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; }
+ GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e *= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator /= (const VecType& that)
+ GLM_FUNC_QUALIFIER void operator /= (vecType<T, P> const& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; }
+ GLM_FUNC_QUALIFIER void operator() (T& e, T& t) { e /= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER value_type& operator[] (size_t i)
+ GLM_FUNC_QUALIFIER T& operator[](size_t i)
{
const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
}
- GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+ GLM_FUNC_QUALIFIER T operator[](size_t i) const
{
const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
}
protected:
- template <typename T>
- GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op)
+ template <typename U>
+ GLM_FUNC_QUALIFIER void _apply_op(vecType<T, P> const& that, U op)
{
// Make a copy of the data in this == &that.
// The copier should optimize out the copy in cases where the function is
// properly inlined and the copy is not necessary.
- ValueType t[N];
+ T t[N];
for (int i = 0; i < N; ++i)
t[i] = that[i];
for (int i = 0; i < N; ++i)
@@ -167,56 +133,54 @@ namespace detail
};
// Specialization for swizzles containing duplicate elements. These cannot be modified.
- template <typename ValueType, precision P, typename VecType, int N, int E0, int E1, int E2, int E3>
- struct _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType, P, VecType,E0,E1,E2,E3,N>
+ template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
+ struct _swizzle_base2<N, T, P, vecType, E0,E1,E2,E3, 1> : public _swizzle_base1<N, T, P, vecType, E0,E1,E2,E3, detail::is_aligned<P>::value>
{
- typedef VecType vec_type;
- typedef ValueType value_type;
-
struct Stub {};
+
GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; }
- GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+ GLM_FUNC_QUALIFIER T operator[] (size_t i) const
{
const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
}
};
- template <int N,typename ValueType, precision P, typename VecType, int E0,int E1,int E2,int E3>
- struct _swizzle : public _swizzle_base2<ValueType, P, VecType, N, E0, E1, E2, E3, (E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)>
+ template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
+ struct _swizzle : public _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)>
{
- typedef _swizzle_base2<ValueType, P, VecType,N,E0,E1,E2,E3,(E0==E1||E0==E2||E0==E3||E1==E2||E1==E3||E2==E3)> base_type;
+ typedef _swizzle_base2<N, T, P, vecType, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;
using base_type::operator=;
- GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); }
+ GLM_FUNC_QUALIFIER operator vecType<T, P> () const { return (*this)(); }
};
//
// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
//
-#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3>
-#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, typename V, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
-#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, V, E0, E1, E2, E3>
-#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, V, F0, F1, F2, F3>
+#define _GLM_SWIZZLE_TEMPLATE1 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3>
+#define _GLM_SWIZZLE_TEMPLATE2 template <int N, typename T, precision P, template <typename, precision> class vecType, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
+#define _GLM_SWIZZLE_TYPE1 _swizzle<N, T, P, vecType, E0, E1, E2, E3>
+#define _GLM_SWIZZLE_TYPE2 _swizzle<N, T, P, vecType, F0, F1, F2, F3>
//
// Wrapper for a binary operator (e.g. u.yy + v.zy)
//
#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE2 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+ GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
{ \
return a() OPERAND b(); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
+ GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const vecType<T, P>& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
+ GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const vecType<T, P>& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -226,12 +190,12 @@ namespace detail
//
#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
+ GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
+ GLM_FUNC_QUALIFIER vecType<T, P> operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -334,500 +298,500 @@ namespace glm
}
#define _GLM_SWIZZLE2_2_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<2, T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2, T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2, T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2, T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; };
+ struct { detail::_swizzle<2, T, P, V, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2, T, P, V, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2, T, P, V, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2, T, P, V, 1,1,-1,-2> E1 ## E1; };
#define _GLM_SWIZZLE2_3_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T, P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; };
+ struct { detail::_swizzle<3,T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3,T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3,T, P, V, 1,1,1,-1> E1 ## E1 ## E1; };
#define _GLM_SWIZZLE2_4_MEMBERS(T, P, V, E0,E1) \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
+ struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
#define _GLM_SWIZZLE3_2_MEMBERS(T, P, V, E0,E1,E2) \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; };
+ struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; };
#define _GLM_SWIZZLE3_3_MEMBERS(T, P, V ,E0,E1,E2) \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; };
+ struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; };
#define _GLM_SWIZZLE3_4_MEMBERS(T, P, V, E0,E1,E2) \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4,T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
+ struct { detail::_swizzle<4,T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4,T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
#define _GLM_SWIZZLE4_2_MEMBERS(T, P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,0,-1,-2> E0 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,1,-1,-2> E0 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,2,-1,-2> E0 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 0,3,-1,-2> E0 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,0,-1,-2> E1 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,1,-1,-2> E1 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,2,-1,-2> E1 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 1,3,-1,-2> E1 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,0,-1,-2> E2 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,1,-1,-2> E2 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,2,-1,-2> E2 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 2,3,-1,-2> E2 ## E3; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 3,0,-1,-2> E3 ## E0; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 3,1,-1,-2> E3 ## E1; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 3,2,-1,-2> E3 ## E2; }; \
- struct { detail::_swizzle<2,T, P, V<T, P>, 3,3,-1,-2> E3 ## E3; };
-
-#define _GLM_SWIZZLE4_3_MEMBERS(T,P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,0,-1> E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,1,-1> E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,2,-1> E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,0,3,-1> E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,0,-1> E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,1,-1> E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,2,-1> E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,1,3,-1> E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,0,-1> E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,1,-1> E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,2,-1> E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,2,3,-1> E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,0,-1> E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,1,-1> E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,2,-1> E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 0,3,3,-1> E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,0,-1> E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,1,-1> E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,2,-1> E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,0,3,-1> E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,0,-1> E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,1,-1> E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,2,-1> E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,1,3,-1> E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,0,-1> E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,1,-1> E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,2,-1> E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,2,3,-1> E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,0,-1> E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,1,-1> E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,2,-1> E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 1,3,3,-1> E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,0,-1> E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,1,-1> E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,2,-1> E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,0,3,-1> E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,0,-1> E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,1,-1> E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,2,-1> E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,1,3,-1> E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,0,-1> E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,1,-1> E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,2,-1> E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,2,3,-1> E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,0,-1> E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,1,-1> E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,2,-1> E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 2,3,3,-1> E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,0,-1> E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,1,-1> E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,2,-1> E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,0,3,-1> E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,0,-1> E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,1,-1> E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,2,-1> E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,1,3,-1> E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,0,-1> E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,1,-1> E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,2,-1> E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,2,3,-1> E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,0,-1> E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,1,-1> E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,2,-1> E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<3,T,P, V<T, P>, 3,3,3,-1> E3 ## E3 ## E3; };
+ struct { detail::_swizzle<2,T, P, V, 0,0,-1,-2> E0 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 0,1,-1,-2> E0 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 0,2,-1,-2> E0 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 0,3,-1,-2> E0 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,0,-1,-2> E1 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,1,-1,-2> E1 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,2,-1,-2> E1 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 1,3,-1,-2> E1 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,0,-1,-2> E2 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,1,-1,-2> E2 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,2,-1,-2> E2 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 2,3,-1,-2> E2 ## E3; }; \
+ struct { detail::_swizzle<2,T, P, V, 3,0,-1,-2> E3 ## E0; }; \
+ struct { detail::_swizzle<2,T, P, V, 3,1,-1,-2> E3 ## E1; }; \
+ struct { detail::_swizzle<2,T, P, V, 3,2,-1,-2> E3 ## E2; }; \
+ struct { detail::_swizzle<2,T, P, V, 3,3,-1,-2> E3 ## E3; };
+
+#define _GLM_SWIZZLE4_3_MEMBERS(T, P, V, E0,E1,E2,E3) \
+ struct { detail::_swizzle<3, T, P, V, 0,0,0,-1> E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,0,1,-1> E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,0,2,-1> E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,0,3,-1> E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,0,-1> E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,1,-1> E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,2,-1> E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,1,3,-1> E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,0,-1> E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,1,-1> E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,2,-1> E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,2,3,-1> E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,3,0,-1> E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,3,1,-1> E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,3,2,-1> E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 0,3,3,-1> E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,0,-1> E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,1,-1> E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,2,-1> E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,0,3,-1> E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,0,-1> E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,1,-1> E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,2,-1> E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,1,3,-1> E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,0,-1> E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,1,-1> E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,2,-1> E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,2,3,-1> E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,3,0,-1> E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,3,1,-1> E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,3,2,-1> E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 1,3,3,-1> E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,0,-1> E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,1,-1> E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,2,-1> E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,0,3,-1> E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,0,-1> E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,1,-1> E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,2,-1> E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,1,3,-1> E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,0,-1> E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,1,-1> E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,2,-1> E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,2,3,-1> E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,3,0,-1> E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,3,1,-1> E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,3,2,-1> E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 2,3,3,-1> E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,0,0,-1> E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,0,1,-1> E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,0,2,-1> E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,0,3,-1> E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,1,0,-1> E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,1,1,-1> E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,1,2,-1> E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,1,3,-1> E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,2,0,-1> E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,2,1,-1> E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,2,2,-1> E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,2,3,-1> E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,3,0,-1> E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,3,1,-1> E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,3,2,-1> E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<3, T, P, V, 3,3,3,-1> E3 ## E3 ## E3; };
#define _GLM_SWIZZLE4_4_MEMBERS(T, P, V, E0,E1,E2,E3) \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
- struct { detail::_swizzle<4, T, P, V<T, P>, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
+ struct { detail::_swizzle<4, T, P, V, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
+ struct { detail::_swizzle<4, T, P, V, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
diff --git a/glm/detail/_swizzle_func.hpp b/glm/detail/_swizzle_func.hpp
index c7f1aec..4c36189 100644
--- a/glm/detail/_swizzle_func.hpp
+++ b/glm/detail/_swizzle_func.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_swizzle_func.hpp
-/// @date 2011-10-16 / 2011-10-16
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/_vectorize.hpp b/glm/detail/_vectorize.hpp
index ce83cb8..bba064a 100644
--- a/glm/detail/_vectorize.hpp
+++ b/glm/detail/_vectorize.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/_vectorize.hpp
-/// @date 2011-10-14 / 2011-10-14
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/dummy.cpp b/glm/detail/dummy.cpp
index 5034280..cf1730f 100644
--- a/glm/detail/dummy.cpp
+++ b/glm/detail/dummy.cpp
@@ -1,38 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/core/dummy.cpp
-/// @date 2011-01-19 / 2011-06-15
-/// @author Christophe Riccio
///
/// GLM is a header only library. There is nothing to compile.
/// dummy.cpp exist only a wordaround for CMake file.
-///////////////////////////////////////////////////////////////////////////////////
+/*
#define GLM_MESSAGES
#include <glm/glm.hpp>
#include <glm/ext.hpp>
@@ -149,6 +121,8 @@ struct intersection
glm::vec4 position;
glm::vec3 normal;
};
+*/
+
/*
// Sample 4
@@ -191,7 +165,7 @@ glm::vec3 lighting
}
*/
-
+/*
template <typename T, glm::precision P, template<typename, glm::precision> class vecType>
T normalizeDotA(vecType<T, P> const & x, vecType<T, P> const & y)
{
@@ -211,9 +185,10 @@ typename vecType::value_type normalizeDotC(vecType const & a, vecType const & b)
{
return glm::dot(a, b) * glm::inversesqrt(glm::dot(a, a) * glm::dot(b, b));
}
-
+*/
int main()
{
+/*
glm::vec1 o(1);
glm::vec2 a(1);
glm::vec3 b(1);
@@ -227,6 +202,6 @@ int main()
float a0 = normalizeDotA(a, a);
float b0 = normalizeDotB(b, b);
float c0 = normalizeDotC(c, c);
-
+*/
return 0;
}
diff --git a/glm/detail/func_common.hpp b/glm/detail/func_common.hpp
index 26c4c73..65cab6e 100644
--- a/glm/detail/func_common.hpp
+++ b/glm/detail/func_common.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_common.hpp
-/// @date 2008-03-08 / 2010-01-26
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a>
///
@@ -35,7 +7,6 @@
/// @ingroup core
///
/// These all operate component-wise. The description is per component.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_common.inl b/glm/detail/func_common.inl
index 2de04eb..054ac67 100644
--- a/glm/detail/func_common.inl
+++ b/glm/detail/func_common.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_common.inl
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "func_vector_relational.hpp"
#include "type_vec2.hpp"
@@ -37,6 +8,61 @@
#include "_vectorize.hpp"
#include <limits>
+namespace glm
+{
+ // min
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType min(genType x, genType y)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'min' only accept floating-point or integer inputs");
+ return x < y ? x : y;
+ }
+
+ // max
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType max(genType x, genType y)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'max' only accept floating-point or integer inputs");
+
+ return x > y ? x : y;
+ }
+
+ // abs
+ template <>
+ GLM_FUNC_QUALIFIER int32 abs(int32 x)
+ {
+ int32 const y = x >> 31;
+ return (x ^ y) - y;
+ }
+
+ // round
+# if GLM_HAS_CXX11_STL
+ using ::std::round;
+# else
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType round(genType x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'round' only accept floating-point inputs");
+
+ return x < static_cast<genType>(0) ? static_cast<genType>(int(x - static_cast<genType>(0.5))) : static_cast<genType>(int(x + static_cast<genType>(0.5)));
+ }
+# endif
+
+ // trunc
+# if GLM_HAS_CXX11_STL
+ using ::std::trunc;
+# else
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType trunc(genType x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'trunc' only accept floating-point inputs");
+
+ return x < static_cast<genType>(0) ? -std::floor(-x) : std::floor(x);
+ }
+# endif
+
+}//namespace glm
+
namespace glm{
namespace detail
{
@@ -58,6 +84,17 @@ namespace detail
}
};
+ #if GLM_COMPILER & GLM_COMPILER_CUDA
+ template <>
+ struct compute_abs<float, true>
+ {
+ GLM_FUNC_QUALIFIER static float call(float x)
+ {
+ return fabsf(x);
+ }
+ };
+ #endif
+
template <typename genFIType>
struct compute_abs<genFIType, false>
{
@@ -70,7 +107,16 @@ namespace detail
}
};
- template <typename T, typename U, precision P, template <class, precision> class vecType>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_abs_vector
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return detail::functor1<T, T, P, vecType>::call(abs, x);
+ }
+ };
+
+ template <typename T, typename U, precision P, template <typename, precision> class vecType, bool Aligned>
struct compute_mix_vector
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a)
@@ -81,19 +127,19 @@ namespace detail
}
};
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_mix_vector<T, bool, P, vecType>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_mix_vector<T, bool, P, vecType, Aligned>
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, vecType<bool, P> const & a)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = a[i] ? y[i] : x[i];
return Result;
}
};
- template <typename T, typename U, precision P, template <class, precision> class vecType>
+ template <typename T, typename U, precision P, template <typename, precision> class vecType, bool Aligned>
struct compute_mix_scalar
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, U const & a)
@@ -104,8 +150,8 @@ namespace detail
}
};
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_mix_scalar<T, bool, P, vecType>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_mix_scalar<T, bool, P, vecType, Aligned>
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y, bool const & a)
{
@@ -133,7 +179,7 @@ namespace detail
}
};
- template <typename T, precision P, template <class, precision> class vecType, bool isFloat = true, bool isSigned = true>
+ template <typename T, precision P, template <typename, precision> class vecType, bool isFloat, bool Aligned>
struct compute_sign
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
@@ -142,45 +188,122 @@ namespace detail
}
};
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_sign<T, P, vecType, false, false>
+# if GLM_ARCH == GLM_ARCH_X86
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_sign<T, P, vecType, false, Aligned>
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
{
- return vecType<T, P>(glm::greaterThan(x , vecType<T, P>(0)));
+ T const Shift(static_cast<T>(sizeof(T) * 8 - 1));
+ vecType<T, P> const y(vecType<typename make_unsigned<T>::type, P>(-x) >> typename make_unsigned<T>::type(Shift));
+
+ return (x >> Shift) | y;
}
};
+# endif
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_sign<T, P, vecType, false, true>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_floor
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
{
- T const Shift(static_cast<T>(sizeof(T) * 8 - 1));
- vecType<T, P> const y(vecType<typename make_unsigned<T>::type, P>(-x) >> typename make_unsigned<T>::type(Shift));
+ return detail::functor1<T, T, P, vecType>::call(std::floor, x);
+ }
+ };
- return (x >> Shift) | y;
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_ceil
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return detail::functor1<T, T, P, vecType>::call(std::ceil, x);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_fract
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return x - floor(x);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_trunc
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return detail::functor1<T, T, P, vecType>::call(trunc, x);
}
};
- template <typename T, precision P, template <class, precision> class vecType, typename genType, bool isFloat = true>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_round
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return detail::functor1<T, T, P, vecType>::call(round, x);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
struct compute_mod
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & a, genType const & b)
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & a, vecType<T, P> const & b)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'mod' only accept floating-point inputs. Include <glm/gtc/integer.hpp> for integer inputs.");
return a - b * floor(a / b);
}
};
-}//namespace detail
- // abs
- template <>
- GLM_FUNC_QUALIFIER int32 abs(int32 x)
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_min_vector
{
- int32 const y = x >> 31;
- return (x ^ y) - y;
- }
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y)
+ {
+ return detail::functor2<T, P, vecType>::call(min, x, y);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_max_vector
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & y)
+ {
+ return detail::functor2<T, P, vecType>::call(max, x, y);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_clamp_vector
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal)
+ {
+ return min(max(x, minVal), maxVal);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_step_vector
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & edge, vecType<T, P> const & x)
+ {
+ return mix(vecType<T, P>(1), vecType<T, P>(0), glm::lessThan(x, edge));
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_smoothstep_vector
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'step' only accept floating-point inputs");
+ vecType<T, P> const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast<T>(0), static_cast<T>(1)));
+ return tmp * tmp * (static_cast<T>(3) - static_cast<T>(2) * tmp);
+ }
+ };
+}//namespace detail
template <typename genFIType>
GLM_FUNC_QUALIFIER genFIType abs(genFIType x)
@@ -191,7 +314,7 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> abs(vecType<T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(abs, x);
+ return detail::compute_abs_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// sign
@@ -203,7 +326,7 @@ namespace detail
std::numeric_limits<genFIType>::is_iec559 || (std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer),
"'sign' only accept signed inputs");
- return detail::compute_sign<genFIType, defaultp, tvec1, std::numeric_limits<genFIType>::is_iec559>::call(tvec1<genFIType>(x)).x;
+ return detail::compute_sign<genFIType, defaultp, tvec1, std::numeric_limits<genFIType>::is_iec559, highp>::call(tvec1<genFIType>(x)).x;
}
template <typename T, precision P, template <typename, precision> class vecType>
@@ -213,7 +336,7 @@ namespace detail
std::numeric_limits<T>::is_iec559 || (std::numeric_limits<T>::is_signed && std::numeric_limits<T>::is_integer),
"'sign' only accept signed inputs");
- return detail::compute_sign<T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x);
+ return detail::compute_sign<T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
}
// floor
@@ -221,45 +344,22 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> floor(vecType<T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(floor, x);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'floor' only accept floating-point inputs.");
+ return detail::compute_floor<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
- // trunc
-# if GLM_HAS_CXX11_STL
- using ::std::trunc;
-# else
- template <typename genType>
- GLM_FUNC_QUALIFIER genType trunc(genType x)
- {
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'trunc' only accept floating-point inputs");
-
- return x < static_cast<genType>(0) ? -floor(-x) : floor(x);
- }
-# endif
-
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> trunc(vecType<T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(trunc, x);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'trunc' only accept floating-point inputs");
+ return detail::compute_trunc<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
- // round
-# if GLM_HAS_CXX11_STL
- using ::std::round;
-# else
- template <typename genType>
- GLM_FUNC_QUALIFIER genType round(genType x)
- {
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'round' only accept floating-point inputs");
-
- return x < static_cast<genType>(0) ? static_cast<genType>(int(x - static_cast<genType>(0.5))) : static_cast<genType>(int(x + static_cast<genType>(0.5)));
- }
-# endif
-
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> round(vecType<T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(round, x);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'round' only accept floating-point inputs");
+ return detail::compute_round<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
/*
@@ -308,6 +408,7 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> roundEven(vecType<T, P> const & x)
{
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'roundEven' only accept floating-point inputs");
return detail::functor1<T, T, P, vecType>::call(roundEven, x);
}
@@ -316,41 +417,47 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> ceil(vecType<T, P> const & x)
{
- return detail::functor1<T, T, P, vecType>::call(ceil, x);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'ceil' only accept floating-point inputs");
+ return detail::compute_ceil<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// fract
template <typename genType>
GLM_FUNC_QUALIFIER genType fract(genType x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'fract' only accept floating-point inputs");
-
return fract(tvec1<genType>(x)).x;
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> fract(vecType<T, P> const & x)
{
- return x - floor(x);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'fract' only accept floating-point inputs");
+ return detail::compute_fract<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// mod
template <typename genType>
GLM_FUNC_QUALIFIER genType mod(genType x, genType y)
{
- return mod(tvec1<genType>(x), y).x;
+# if GLM_COMPILER & GLM_COMPILER_CUDA
+ // Another Cuda compiler bug https://github.com/g-truc/glm/issues/530
+ tvec1<genType, defaultp> Result(mod(tvec1<genType, defaultp>(x), y));
+ return Result.x;
+# else
+ return mod(tvec1<genType, defaultp>(x), y).x;
+# endif
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> mod(vecType<T, P> const & x, T y)
{
- return detail::compute_mod<T, P, vecType, T, std::numeric_limits<T>::is_iec559>::call(x, y);
+ return detail::compute_mod<T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<T, P>(y));
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y)
{
- return detail::compute_mod<T, P, vecType, vecType<T, P>, std::numeric_limits<T>::is_iec559>::call(x, y);
+ return detail::compute_mod<T, P, vecType, detail::is_aligned<P>::value>::call(x, y);
}
// modf
@@ -358,7 +465,6 @@ namespace detail
GLM_FUNC_QUALIFIER genType modf(genType x, genType & i)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'modf' only accept floating-point inputs");
-
return std::modf(x, &i);
}
@@ -405,45 +511,30 @@ namespace detail
//CHAR_BIT - 1)));
// min
- template <typename genType>
- GLM_FUNC_QUALIFIER genType min(genType x, genType y)
- {
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'min' only accept floating-point or integer inputs");
-
- return x < y ? x : y;
- }
-
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> min(vecType<T, P> const & a, T b)
{
- return detail::functor2_vec_sca<T, P, vecType>::call(min, a, b);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'min' only accept floating-point inputs for the interpolator a");
+ return detail::compute_min_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<T, P>(b));
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> min(vecType<T, P> const & a, vecType<T, P> const & b)
{
- return detail::functor2<T, P, vecType>::call(min, a, b);
+ return detail::compute_min_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
}
// max
- template <typename genType>
- GLM_FUNC_QUALIFIER genType max(genType x, genType y)
- {
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'max' only accept floating-point or integer inputs");
-
- return x > y ? x : y;
- }
-
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> max(vecType<T, P> const & a, T b)
{
- return detail::functor2_vec_sca<T, P, vecType>::call(max, a, b);
+ return detail::compute_max_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, vecType<T, P>(b));
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> max(vecType<T, P> const & a, vecType<T, P> const & b)
{
- return detail::functor2<T, P, vecType>::call(max, a, b);
+ return detail::compute_max_vector<T, P, vecType, detail::is_aligned<P>::value>::call(a, b);
}
// clamp
@@ -451,7 +542,6 @@ namespace detail
GLM_FUNC_QUALIFIER genType clamp(genType x, genType minVal, genType maxVal)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559 || std::numeric_limits<genType>::is_integer, "'clamp' only accept floating-point or integer inputs");
-
return min(max(x, minVal), maxVal);
}
@@ -459,16 +549,14 @@ namespace detail
GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const & x, T minVal, T maxVal)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer, "'clamp' only accept floating-point or integer inputs");
-
- return min(max(x, minVal), maxVal);
+ return detail::compute_clamp_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x, vecType<T, P>(minVal), vecType<T, P>(maxVal));
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const & x, vecType<T, P> const & minVal, vecType<T, P> const & maxVal)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559 || std::numeric_limits<T>::is_integer, "'clamp' only accept floating-point or integer inputs");
-
- return min(max(x, minVal), maxVal);
+ return detail::compute_clamp_vector<T, P, vecType, detail::is_aligned<P>::value>::call(x, minVal, maxVal);
}
template <typename genTypeT, typename genTypeU>
@@ -480,13 +568,13 @@ namespace detail
template <typename T, typename U, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, U a)
{
- return detail::compute_mix_scalar<T, U, P, vecType>::call(x, y, a);
+ return detail::compute_mix_scalar<T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
}
template <typename T, typename U, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> mix(vecType<T, P> const & x, vecType<T, P> const & y, vecType<U, P> const & a)
{
- return detail::compute_mix_vector<T, U, P, vecType>::call(x, y, a);
+ return detail::compute_mix_vector<T, U, P, vecType, detail::is_aligned<P>::value>::call(x, y, a);
}
// step
@@ -499,15 +587,13 @@ namespace detail
template <template <typename, precision> class vecType, typename T, precision P>
GLM_FUNC_QUALIFIER vecType<T, P> step(T edge, vecType<T, P> const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'step' only accept floating-point inputs");
-
- return mix(vecType<T, P>(1), vecType<T, P>(0), glm::lessThan(x, vecType<T, P>(edge)));
+ return detail::compute_step_vector<T, P, vecType, detail::is_aligned<P>::value>::call(vecType<T, P>(edge), x);
}
template <template <typename, precision> class vecType, typename T, precision P>
GLM_FUNC_QUALIFIER vecType<T, P> step(vecType<T, P> const & edge, vecType<T, P> const & x)
{
- return mix(vecType<T, P>(1), vecType<T, P>(0), glm::lessThan(x, edge));
+ return detail::compute_step_vector<T, P, vecType, detail::is_aligned<P>::value>::call(edge, x);
}
// smoothstep
@@ -523,19 +609,13 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> smoothstep(T edge0, T edge1, vecType<T, P> const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'smoothstep' only accept floating-point inputs");
-
- vecType<T, P> const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast<T>(0), static_cast<T>(1)));
- return tmp * tmp * (static_cast<T>(3) - static_cast<T>(2) * tmp);
+ return detail::compute_smoothstep_vector<T, P, vecType, detail::is_aligned<P>::value>::call(vecType<T, P>(edge0), vecType<T, P>(edge1), x);
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> smoothstep(vecType<T, P> const & edge0, vecType<T, P> const & edge1, vecType<T, P> const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'smoothstep' only accept floating-point inputs");
-
- vecType<T, P> const tmp(clamp((x - edge0) / (edge1 - edge0), static_cast<T>(0), static_cast<T>(1)));
- return tmp * tmp * (static_cast<T>(3) - static_cast<T>(2) * tmp);
+ return detail::compute_smoothstep_vector<T, P, vecType, detail::is_aligned<P>::value>::call(edge0, edge1, x);
}
# if GLM_HAS_CXX11_STL
@@ -556,7 +636,7 @@ namespace detail
# else
return ::isnan(x) != 0;
# endif
-# elif (GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L
+# elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L
return _isnan(x) != 0;
# elif GLM_COMPILER & GLM_COMPILER_CUDA
return isnan(x) != 0;
@@ -590,7 +670,7 @@ namespace detail
# else
return ::isinf(x);
# endif
-# elif GLM_COMPILER & (GLM_COMPILER_GCC | (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
+# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L)
return _isinf(x) != 0;
# else
@@ -762,3 +842,7 @@ namespace detail
ldexp(x.w, exp.w));
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_common_simd.inl"
+#endif
diff --git a/glm/detail/func_common_simd.inl b/glm/detail/func_common_simd.inl
new file mode 100644
index 0000000..4ffa4ca
--- /dev/null
+++ b/glm/detail/func_common_simd.inl
@@ -0,0 +1,231 @@
+/// @ref core
+/// @file glm/detail/func_common_simd.inl
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+#include "../simd/common.h"
+
+#include <immintrin.h>
+
+namespace glm{
+namespace detail
+{
+ template <precision P>
+ struct compute_abs_vector<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_abs(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_abs_vector<int, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<int, P> call(tvec4<int, P> const & v)
+ {
+ tvec4<int, P> result(uninitialize);
+ result.data = glm_ivec4_abs(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_floor<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_floor(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_ceil<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_ceil(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_fract<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_fract(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_round<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_round(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_mod<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & y)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_mod(x.data, y.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_min_vector<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = _mm_min_ps(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_min_vector<int32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ {
+ tvec4<int32, P> result(uninitialize);
+ result.data = _mm_min_epi32(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_min_vector<uint32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<uint32, P> const & v1, tvec4<uint32, P> const & v2)
+ {
+ tvec4<uint32, P> result(uninitialize);
+ result.data = _mm_min_epu32(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_max_vector<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = _mm_max_ps(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_max_vector<int32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ {
+ tvec4<int32, P> result(uninitialize);
+ result.data = _mm_max_epi32(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_max_vector<uint32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v1, tvec4<uint32, P> const & v2)
+ {
+ tvec4<uint32, P> result(uninitialize);
+ result.data = _mm_max_epu32(v1.data, v2.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_clamp_vector<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & minVal, tvec4<float, P> const & maxVal)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = _mm_min_ps(_mm_max_ps(x.data, minVal.data), maxVal.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_clamp_vector<int32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<int32, P> call(tvec4<int32, P> const & x, tvec4<int32, P> const & minVal, tvec4<int32, P> const & maxVal)
+ {
+ tvec4<int32, P> result(uninitialize);
+ result.data = _mm_min_epi32(_mm_max_epi32(x.data, minVal.data), maxVal.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_clamp_vector<uint32, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & x, tvec4<uint32, P> const & minVal, tvec4<uint32, P> const & maxVal)
+ {
+ tvec4<uint32, P> result(uninitialize);
+ result.data = _mm_min_epu32(_mm_max_epu32(x.data, minVal.data), maxVal.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_mix_vector<float, bool, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & x, tvec4<float, P> const & y, tvec4<bool, P> const & a)
+ {
+ __m128i const Load = _mm_set_epi32(-(int)a.w, -(int)a.z, -(int)a.y, -(int)a.x);
+ __m128 const Mask = _mm_castsi128_ps(Load);
+
+ tvec4<float, P> Result(uninitialize);
+# if 0 && GLM_ARCH & GLM_ARCH_AVX
+ Result.data = _mm_blendv_ps(x.data, y.data, Mask);
+# else
+ Result.data = _mm_or_ps(_mm_and_ps(Mask, y.data), _mm_andnot_ps(Mask, x.data));
+# endif
+ return Result;
+ }
+ };
+/* FIXME
+ template <precision P>
+ struct compute_step_vector<float, P, tvec4>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& edge, tvec4<float, P> const& x)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_step(edge.data, x.data);
+ return result;
+ }
+ };
+*/
+ template <precision P>
+ struct compute_smoothstep_vector<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& edge0, tvec4<float, P> const& edge1, tvec4<float, P> const& x)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_smoothstep(edge0.data, edge1.data, x.data);
+ return result;
+ }
+ };
+}//namespace detail
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/func_exponential.hpp b/glm/detail/func_exponential.hpp
index c8c88e5..1c3ef0b 100644
--- a/glm/detail/func_exponential.hpp
+++ b/glm/detail/func_exponential.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_exponential.hpp
-/// @date 2008-08-08 / 2011-06-14
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.2 Exponential Functions</a>
///
@@ -35,7 +7,6 @@
/// @ingroup core
///
/// These all operate component-wise. The description is per component.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_exponential.inl b/glm/detail/func_exponential.inl
index bbd76a8..b09bf26 100644
--- a/glm/detail/func_exponential.inl
+++ b/glm/detail/func_exponential.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_exponential.inl
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "func_vector_relational.hpp"
#include "_vectorize.hpp"
@@ -49,7 +20,7 @@ namespace detail
}
# endif
- template <typename T, precision P, template <class, precision> class vecType, bool isFloat = true>
+ template <typename T, precision P, template <class, precision> class vecType, bool isFloat, bool Aligned>
struct compute_log2
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & vec)
@@ -58,7 +29,16 @@ namespace detail
}
};
- template <template <class, precision> class vecType, typename T, precision P>
+ template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
+ struct compute_sqrt
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
+ {
+ return detail::functor1<T, T, P, vecType>::call(std::sqrt, x);
+ }
+ };
+
+ template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
struct compute_inversesqrt
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & x)
@@ -67,8 +47,8 @@ namespace detail
}
};
- template <template <class, precision> class vecType>
- struct compute_inversesqrt<vecType, float, lowp>
+ template <template <class, precision> class vecType, bool Aligned>
+ struct compute_inversesqrt<vecType, float, lowp, Aligned>
{
GLM_FUNC_QUALIFIER static vecType<float, lowp> call(vecType<float, lowp> const & x)
{
@@ -133,7 +113,7 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> log2(vecType<T, P> const & x)
{
- return detail::compute_log2<T, P, vecType, std::numeric_limits<T>::is_iec559>::call(x);
+ return detail::compute_log2<T, P, vecType, std::numeric_limits<T>::is_iec559, detail::is_aligned<P>::value>::call(x);
}
// sqrt
@@ -142,7 +122,7 @@ namespace detail
GLM_FUNC_QUALIFIER vecType<T, P> sqrt(vecType<T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'sqrt' only accept floating-point inputs");
- return detail::functor1<T, T, P, vecType>::call(sqrt, x);
+ return detail::compute_sqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
}
// inversesqrt
@@ -156,6 +136,11 @@ namespace detail
GLM_FUNC_QUALIFIER vecType<T, P> inversesqrt(vecType<T, P> const & x)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'inversesqrt' only accept floating-point inputs");
- return detail::compute_inversesqrt<vecType, T, P>::call(x);
+ return detail::compute_inversesqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_exponential_simd.inl"
+#endif
+
diff --git a/glm/detail/func_exponential_simd.inl b/glm/detail/func_exponential_simd.inl
new file mode 100644
index 0000000..66cb9d3
--- /dev/null
+++ b/glm/detail/func_exponential_simd.inl
@@ -0,0 +1,35 @@
+/// @ref core
+/// @file glm/detail/func_exponential_simd.inl
+
+#include "../simd/exponential.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+namespace glm{
+namespace detail
+{
+ template <precision P>
+ struct compute_sqrt<tvec4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = _mm_sqrt_ps(v.data);
+ return result;
+ }
+ };
+
+ template <>
+ struct compute_sqrt<tvec4, float, aligned_lowp, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, aligned_lowp> call(tvec4<float, aligned_lowp> const & v)
+ {
+ tvec4<float, aligned_lowp> result(uninitialize);
+ result.data = glm_vec4_sqrt_lowp(v.data);
+ return result;
+ }
+ };
+}//namespace detail
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/func_geometric.hpp b/glm/detail/func_geometric.hpp
index 6d97b09..6da13e1 100644
--- a/glm/detail/func_geometric.hpp
+++ b/glm/detail/func_geometric.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_geometric.hpp
-/// @date 2008-08-03 / 2011-06-14
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.5 Geometric Functions</a>
///
@@ -35,7 +7,6 @@
/// @ingroup core
///
/// These operate on vectors as vectors, not component-wise.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_geometric.inl b/glm/detail/func_geometric.inl
index 2d4d50e..f77c7f1 100644
--- a/glm/detail/func_geometric.inl
+++ b/glm/detail/func_geometric.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_geometric.inl
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "func_exponential.hpp"
#include "func_common.hpp"
@@ -39,11 +10,29 @@
namespace glm{
namespace detail
{
- template <template <class, precision> class vecType, typename T, precision P>
+ template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
+ struct compute_length
+ {
+ GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & v)
+ {
+ return sqrt(dot(v, v));
+ }
+ };
+
+ template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
+ struct compute_distance
+ {
+ GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & p0, vecType<T, P> const & p1)
+ {
+ return length(p1 - p0);
+ }
+ };
+
+ template <template <class, precision> class vecType, typename T, precision P, bool Aligned>
struct compute_dot{};
- template <typename T, precision P>
- struct compute_dot<tvec1, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_dot<tvec1, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tvec1<T, P> const & a, tvec1<T, P> const & b)
{
@@ -51,8 +40,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_dot<tvec2, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_dot<tvec2, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tvec2<T, P> const & x, tvec2<T, P> const & y)
{
@@ -61,8 +50,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_dot<tvec3, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_dot<tvec3, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tvec3<T, P> const & x, tvec3<T, P> const & y)
{
@@ -71,8 +60,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_dot<tvec4, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_dot<tvec4, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tvec4<T, P> const & x, tvec4<T, P> const & y)
{
@@ -80,13 +69,69 @@ namespace detail
return (tmp.x + tmp.y) + (tmp.z + tmp.w);
}
};
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_cross
+ {
+ GLM_FUNC_QUALIFIER static tvec3<T, P> call(tvec3<T, P> const & x, tvec3<T, P> const & y)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'cross' accepts only floating-point inputs");
+
+ return tvec3<T, P>(
+ x.y * y.z - y.y * x.z,
+ x.z * y.x - y.z * x.x,
+ x.x * y.y - y.x * x.y);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_normalize
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
+
+ return v * inversesqrt(dot(v, v));
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_faceforward
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & N, vecType<T, P> const & I, vecType<T, P> const & Nref)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
+
+ return dot(Nref, I) < static_cast<T>(0) ? N : -N;
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_reflect
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & I, vecType<T, P> const & N)
+ {
+ return I - N * dot(N, I) * static_cast<T>(2);
+ }
+ };
+
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_refract
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & I, vecType<T, P> const & N, T eta)
+ {
+ T const dotValue(dot(N, I));
+ T const k(static_cast<T>(1) - eta * eta * (static_cast<T>(1) - dotValue * dotValue));
+ return (eta * I - (eta * dotValue + std::sqrt(k)) * N) * static_cast<T>(k >= static_cast<T>(0));
+ }
+ };
}//namespace detail
// length
template <typename genType>
GLM_FUNC_QUALIFIER genType length(genType x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'length' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'length' accepts only floating-point inputs");
return abs(x);
}
@@ -94,16 +139,16 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T length(vecType<T, P> const & v)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'length' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'length' accepts only floating-point inputs");
- return sqrt(dot(v, v));
+ return detail::compute_length<vecType, T, P, detail::is_aligned<P>::value>::call(v);
}
// distance
template <typename genType>
GLM_FUNC_QUALIFIER genType distance(genType const & p0, genType const & p1)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'distance' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'distance' accepts only floating-point inputs");
return length(p1 - p0);
}
@@ -111,41 +156,36 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T distance(vecType<T, P> const & p0, vecType<T, P> const & p1)
{
- return length(p1 - p0);
+ return detail::compute_distance<vecType, T, P, detail::is_aligned<P>::value>::call(p0, p1);
}
// dot
template <typename T>
GLM_FUNC_QUALIFIER T dot(T x, T y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
return x * y;
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T dot(vecType<T, P> const & x, vecType<T, P> const & y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' only accept floating-point inputs");
- return detail::compute_dot<vecType, T, P>::call(x, y);
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'dot' accepts only floating-point inputs");
+ return detail::compute_dot<vecType, T, P, detail::is_aligned<P>::value>::call(x, y);
}
// cross
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec3<T, P> cross(tvec3<T, P> const & x, tvec3<T, P> const & y)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'cross' only accept floating-point inputs");
-
- return tvec3<T, P>(
- x.y * y.z - y.y * x.z,
- x.z * y.x - y.z * x.x,
- x.x * y.y - y.x * x.y);
+ return detail::compute_cross<T, P, detail::is_aligned<P>::value>::call(x, y);
}
// normalize
template <typename genType>
GLM_FUNC_QUALIFIER genType normalize(genType const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'normalize' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'normalize' accepts only floating-point inputs");
return x < genType(0) ? genType(-1) : genType(1);
}
@@ -153,9 +193,9 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> normalize(vecType<T, P> const & x)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' only accept floating-point inputs");
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'normalize' accepts only floating-point inputs");
- return x * inversesqrt(dot(x, x));
+ return detail::compute_normalize<T, P, vecType, detail::is_aligned<P>::value>::call(x);
}
// faceforward
@@ -168,22 +208,27 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> faceforward(vecType<T, P> const & N, vecType<T, P> const & I, vecType<T, P> const & Nref)
{
- return dot(Nref, I) < static_cast<T>(0) ? N : -N;
+ return detail::compute_faceforward<T, P, vecType, detail::is_aligned<P>::value>::call(N, I, Nref);
}
// reflect
template <typename genType>
GLM_FUNC_QUALIFIER genType reflect(genType const & I, genType const & N)
{
- return I - N * dot(N, I) * static_cast<genType>(2);
+ return I - N * dot(N, I) * genType(2);
+ }
+
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> reflect(vecType<T, P> const & I, vecType<T, P> const & N)
+ {
+ return detail::compute_reflect<T, P, vecType, detail::is_aligned<P>::value>::call(I, N);
}
// refract
template <typename genType>
- GLM_FUNC_QUALIFIER genType refract(genType const & I, genType const & N, genType const & eta)
+ GLM_FUNC_QUALIFIER genType refract(genType const & I, genType const & N, genType eta)
{
- GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'refract' only accept floating-point inputs");
-
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'refract' accepts only floating-point inputs");
genType const dotValue(dot(N, I));
genType const k(static_cast<genType>(1) - eta * eta * (static_cast<genType>(1) - dotValue * dotValue));
return (eta * I - (eta * dotValue + sqrt(k)) * N) * static_cast<genType>(k >= static_cast<genType>(0));
@@ -192,10 +237,11 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> refract(vecType<T, P> const & I, vecType<T, P> const & N, T eta)
{
- GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'refract' only accept floating-point inputs");
-
- T const dotValue(dot(N, I));
- T const k(static_cast<T>(1) - eta * eta * (static_cast<T>(1) - dotValue * dotValue));
- return (eta * I - (eta * dotValue + std::sqrt(k)) * N) * static_cast<T>(k >= static_cast<T>(0));
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'refract' accepts only floating-point inputs");
+ return detail::compute_refract<T, P, vecType, detail::is_aligned<P>::value>::call(I, N, eta);
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_geometric_simd.inl"
+#endif
diff --git a/glm/detail/func_geometric_simd.inl b/glm/detail/func_geometric_simd.inl
new file mode 100644
index 0000000..f8c4d14
--- /dev/null
+++ b/glm/detail/func_geometric_simd.inl
@@ -0,0 +1,99 @@
+/// @ref core
+/// @file glm/detail/func_geometric_simd.inl
+
+#include "../simd/geometric.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+namespace glm{
+namespace detail
+{
+ template <precision P>
+ struct compute_length<tvec4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const & v)
+ {
+ return _mm_cvtss_f32(glm_vec4_length(v.data));
+ }
+ };
+
+ template <precision P>
+ struct compute_distance<tvec4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const & p0, tvec4<float, P> const & p1)
+ {
+ return _mm_cvtss_f32(glm_vec4_distance(p0.data, p1.data));
+ }
+ };
+
+ template <precision P>
+ struct compute_dot<tvec4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static float call(tvec4<float, P> const& x, tvec4<float, P> const& y)
+ {
+ return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data));
+ }
+ };
+
+ template <precision P>
+ struct compute_cross<float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec3<float, P> call(tvec3<float, P> const & a, tvec3<float, P> const & b)
+ {
+ __m128 const set0 = _mm_set_ps(0.0f, a.z, a.y, a.x);
+ __m128 const set1 = _mm_set_ps(0.0f, b.z, b.y, b.x);
+ __m128 const xpd0 = glm_vec4_cross(set0, set1);
+
+ tvec4<float, P> result(uninitialize);
+ result.data = xpd0;
+ return tvec3<float, P>(result);
+ }
+ };
+
+ template <precision P>
+ struct compute_normalize<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const & v)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_normalize(v.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_faceforward<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& N, tvec4<float, P> const& I, tvec4<float, P> const& Nref)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_faceforward(N.data. I.data, Nref.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_reflect<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& I, tvec4<float, P> const& N)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_reflect(I.data, N.data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_refract<float, P, tvec4, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<float, P> call(tvec4<float, P> const& I, tvec4<float, P> const& N, float eta)
+ {
+ tvec4<float, P> result(uninitialize);
+ result.data = glm_vec4_refract(I.data, N.data, _mm_set1_ps(eta));
+ return result;
+ }
+ };
+}//namespace detail
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/func_integer.hpp b/glm/detail/func_integer.hpp
index 4e2567a..b8827e6 100644
--- a/glm/detail/func_integer.hpp
+++ b/glm/detail/func_integer.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_integer.hpp
-/// @date 2010-03-17 / 2011-06-18
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.8 Integer Functions</a>
///
@@ -37,7 +9,6 @@
/// These all operate component-wise. The description is per component.
/// The notation [a, b] means the set of bits from bit-number a through bit-number
/// b, inclusive. The lowest-order bit is bit 0.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_integer.inl b/glm/detail/func_integer.inl
index 6632308..e43e7c2 100644
--- a/glm/detail/func_integer.inl
+++ b/glm/detail/func_integer.inl
@@ -1,48 +1,26 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_integer.inl
-/// @date 2010-03-17 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "type_vec2.hpp"
#include "type_vec3.hpp"
#include "type_vec4.hpp"
#include "type_int.hpp"
#include "_vectorize.hpp"
-#if(GLM_ARCH != GLM_ARCH_PURE)
-#if(GLM_COMPILER & GLM_COMPILER_VC)
+#if(GLM_ARCH & GLM_ARCH_X86 && GLM_COMPILER & GLM_COMPILER_VC)
# include <intrin.h>
# pragma intrinsic(_BitScanReverse)
-#endif//(GLM_COMPILER & GLM_COMPILER_VC)
-#endif//(GLM_ARCH != GLM_ARCH_PURE)
+#endif//(GLM_ARCH & GLM_ARCH_X86 && GLM_COMPILER & GLM_COMPILER_VC)
#include <limits>
+#if !GLM_HAS_EXTENDED_INTEGER_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic ignored "-Wlong-long"
+# endif
+# if (GLM_COMPILER & GLM_COMPILER_CLANG)
+# pragma clang diagnostic ignored "-Wc++11-long-long"
+# endif
+#endif
+
namespace glm{
namespace detail
{
@@ -52,40 +30,36 @@ namespace detail
return Bits >= sizeof(T) * 8 ? ~static_cast<T>(0) : (static_cast<T>(1) << Bits) - static_cast<T>(1);
}
- template <bool EXEC = false>
+ template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned, bool EXEC>
struct compute_bitfieldReverseStep
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
{
return v;
}
};
- template <>
- struct compute_bitfieldReverseStep<true>
+ template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned>
+ struct compute_bitfieldReverseStep<T, P, vecType, Aligned, true>
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
{
return (v & Mask) << Shift | (v & (~Mask)) >> Shift;
}
};
- template <bool EXEC = false>
+ template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned, bool EXEC>
struct compute_bitfieldBitCountStep
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T, T)
{
return v;
}
};
- template <>
- struct compute_bitfieldBitCountStep<true>
+ template <typename T, glm::precision P, template <typename, glm::precision> class vecType, bool Aligned>
+ struct compute_bitfieldBitCountStep<T, P, vecType, Aligned, true>
{
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & v, T Mask, T Shift)
{
return (v & Mask) + ((v >> Shift) & Mask);
@@ -173,7 +147,7 @@ namespace detail
return IsNotNull ? int(Result) : -1;
}
- template <typename T, glm::precision P, template <class, glm::precision> class vecType>
+ template <typename T, glm::precision P, template<typename, glm::precision> class vecType>
struct compute_findMSB_vec<T, P, vecType, 32>
{
GLM_FUNC_QUALIFIER static vecType<int, P> call(vecType<T, P> const & x)
@@ -324,12 +298,12 @@ namespace detail
GLM_FUNC_QUALIFIER vecType<T, P> bitfieldReverse(vecType<T, P> const & v)
{
vecType<T, P> x(v);
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 2>::call(x, T(0x5555555555555555ull), static_cast<T>( 1));
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 4>::call(x, T(0x3333333333333333ull), static_cast<T>( 2));
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 8>::call(x, T(0x0F0F0F0F0F0F0F0Full), static_cast<T>( 4));
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 16>::call(x, T(0x00FF00FF00FF00FFull), static_cast<T>( 8));
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 32>::call(x, T(0x0000FFFF0000FFFFull), static_cast<T>(16));
- x = detail::compute_bitfieldReverseStep<sizeof(T) * 8 >= 64>::call(x, T(0x00000000FFFFFFFFull), static_cast<T>(32));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, T(0x5555555555555555ull), static_cast<T>( 1));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, T(0x3333333333333333ull), static_cast<T>( 2));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, T(0x0F0F0F0F0F0F0F0Full), static_cast<T>( 4));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, T(0x00FF00FF00FF00FFull), static_cast<T>( 8));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, T(0x0000FFFF0000FFFFull), static_cast<T>(16));
+ x = detail::compute_bitfieldReverseStep<T, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, T(0x00000000FFFFFFFFull), static_cast<T>(32));
return x;
}
@@ -344,12 +318,12 @@ namespace detail
GLM_FUNC_QUALIFIER vecType<int, P> bitCount(vecType<T, P> const & v)
{
vecType<typename detail::make_unsigned<T>::type, P> x(*reinterpret_cast<vecType<typename detail::make_unsigned<T>::type, P> const *>(&v));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 2>::call(x, typename detail::make_unsigned<T>::type(0x5555555555555555ull), typename detail::make_unsigned<T>::type( 1));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 4>::call(x, typename detail::make_unsigned<T>::type(0x3333333333333333ull), typename detail::make_unsigned<T>::type( 2));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 8>::call(x, typename detail::make_unsigned<T>::type(0x0F0F0F0F0F0F0F0Full), typename detail::make_unsigned<T>::type( 4));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 16>::call(x, typename detail::make_unsigned<T>::type(0x00FF00FF00FF00FFull), typename detail::make_unsigned<T>::type( 8));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16));
- x = detail::compute_bitfieldBitCountStep<sizeof(T) * 8 >= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 2>::call(x, typename detail::make_unsigned<T>::type(0x5555555555555555ull), typename detail::make_unsigned<T>::type( 1));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 4>::call(x, typename detail::make_unsigned<T>::type(0x3333333333333333ull), typename detail::make_unsigned<T>::type( 2));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 8>::call(x, typename detail::make_unsigned<T>::type(0x0F0F0F0F0F0F0F0Full), typename detail::make_unsigned<T>::type( 4));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 16>::call(x, typename detail::make_unsigned<T>::type(0x00FF00FF00FF00FFull), typename detail::make_unsigned<T>::type( 8));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16));
+ x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32));
return vecType<int, P>(x);
}
@@ -387,3 +361,8 @@ namespace detail
return detail::compute_findMSB_vec<T, P, vecType, sizeof(T) * 8>::call(x);
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_integer_simd.inl"
+#endif
+
diff --git a/glm/detail/func_integer_simd.inl b/glm/detail/func_integer_simd.inl
new file mode 100644
index 0000000..e4f47fc
--- /dev/null
+++ b/glm/detail/func_integer_simd.inl
@@ -0,0 +1,66 @@
+/// @ref core
+/// @file glm/detail/func_integer_simd.inl
+
+#include "../simd/integer.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+namespace glm{
+namespace detail
+{
+ template <glm::precision P>
+ struct compute_bitfieldReverseStep<uint32, P, tvec4, true, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v, uint32 Mask, uint32 Shift)
+ {
+ __m128i const set0 = v.data;
+
+ __m128i const set1 = _mm_set1_epi32(Mask);
+ __m128i const and1 = _mm_and_si128(set0, set1);
+ __m128i const sft1 = _mm_slli_epi32(and1, Shift);
+
+ __m128i const set2 = _mm_andnot_si128(set0, _mm_set1_epi32(-1));
+ __m128i const and2 = _mm_and_si128(set0, set2);
+ __m128i const sft2 = _mm_srai_epi32(and2, Shift);
+
+ __m128i const or0 = _mm_or_si128(sft1, sft2);
+
+ return or0;
+ }
+ };
+
+ template <glm::precision P>
+ struct compute_bitfieldBitCountStep<uint32, P, tvec4, true, true>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<uint32, P> call(tvec4<uint32, P> const & v, uint32 Mask, uint32 Shift)
+ {
+ __m128i const set0 = v.data;
+
+ __m128i const set1 = _mm_set1_epi32(Mask);
+ __m128i const and0 = _mm_and_si128(set0, set1);
+ __m128i const sft0 = _mm_slli_epi32(set0, Shift);
+ __m128i const and1 = _mm_and_si128(sft0, set1);
+ __m128i const add0 = _mm_add_epi32(and0, and1);
+
+ return add0;
+ }
+ };
+}//namespace detail
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <>
+ GLM_FUNC_QUALIFIER int bitCount(uint32 x)
+ {
+ return _mm_popcnt_u32(x);
+ }
+
+ template <>
+ GLM_FUNC_QUALIFIER int bitCount(uint64 x)
+ {
+ return static_cast<int>(_mm_popcnt_u64(x));
+ }
+# endif
+
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/func_matrix.hpp b/glm/detail/func_matrix.hpp
index fae1567..5d5377a 100644
--- a/glm/detail/func_matrix.hpp
+++ b/glm/detail/func_matrix.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_matrix.hpp
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
///
@@ -39,7 +11,6 @@
/// are single precision, and a double-precision floating version, where all
/// arguments and return values are double precision. Only the single-precision
/// floating point version is shown.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_matrix.inl b/glm/detail/func_matrix.inl
index b27efbc..18e21a6 100644
--- a/glm/detail/func_matrix.inl
+++ b/glm/detail/func_matrix.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_matrix.inl
-/// @date 2008-03-08 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../geometric.hpp"
#include <limits>
@@ -36,11 +7,23 @@
namespace glm{
namespace detail
{
- template <template <class, precision> class matType, typename T, precision P>
+ template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
+ struct compute_matrixCompMult
+ {
+ GLM_FUNC_QUALIFIER static matType<T, P> call(matType<T, P> const& x, matType<T, P> const& y)
+ {
+ matType<T, P> result(uninitialize);
+ for(length_t i = 0; i < result.length(); ++i)
+ result[i] = x[i] * y[i];
+ return result;
+ }
+ };
+
+ template <template <class, precision> class matType, typename T, precision P, bool Aligned>
struct compute_transpose{};
- template <typename T, precision P>
- struct compute_transpose<tmat2x2, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat2x2, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat2x2<T, P> call(tmat2x2<T, P> const & m)
{
@@ -53,8 +36,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat2x3, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat2x3, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat3x2<T, P> call(tmat2x3<T, P> const & m)
{
@@ -69,8 +52,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat2x4, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat2x4, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat4x2<T, P> call(tmat2x4<T, P> const & m)
{
@@ -87,8 +70,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat3x2, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat3x2, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat2x3<T, P> call(tmat3x2<T, P> const & m)
{
@@ -103,8 +86,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat3x3, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat3x3, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat3x3<T, P> call(tmat3x3<T, P> const & m)
{
@@ -124,8 +107,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat3x4, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat3x4, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat4x3<T, P> call(tmat3x4<T, P> const & m)
{
@@ -146,8 +129,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat4x2, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat4x2, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat2x4<T, P> call(tmat4x2<T, P> const & m)
{
@@ -164,8 +147,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat4x3, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat4x3, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat3x4<T, P> call(tmat4x3<T, P> const & m)
{
@@ -186,8 +169,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_transpose<tmat4x4, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_transpose<tmat4x4, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static tmat4x4<T, P> call(tmat4x4<T, P> const & m)
{
@@ -215,11 +198,11 @@ namespace detail
}
};
- template <template <class, precision> class matType, typename T, precision P>
+ template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
struct compute_determinant{};
- template <typename T, precision P>
- struct compute_determinant<tmat2x2, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_determinant<tmat2x2, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tmat2x2<T, P> const & m)
{
@@ -227,8 +210,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_determinant<tmat3x3, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_determinant<tmat3x3, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tmat3x3<T, P> const & m)
{
@@ -239,8 +222,8 @@ namespace detail
}
};
- template <typename T, precision P>
- struct compute_determinant<tmat4x4, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_determinant<tmat4x4, T, P, Aligned>
{
GLM_FUNC_QUALIFIER static T call(tmat4x4<T, P> const & m)
{
@@ -262,17 +245,121 @@ namespace detail
m[0][2] * DetCof[2] + m[0][3] * DetCof[3];
}
};
+
+ template <template <typename, precision> class matType, typename T, precision P, bool Aligned>
+ struct compute_inverse{};
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_inverse<tmat2x2, T, P, Aligned>
+ {
+ GLM_FUNC_QUALIFIER static tmat2x2<T, P> call(tmat2x2<T, P> const& m)
+ {
+ T OneOverDeterminant = static_cast<T>(1) / (
+ + m[0][0] * m[1][1]
+ - m[1][0] * m[0][1]);
+
+ tmat2x2<T, P> Inverse(
+ + m[1][1] * OneOverDeterminant,
+ - m[0][1] * OneOverDeterminant,
+ - m[1][0] * OneOverDeterminant,
+ + m[0][0] * OneOverDeterminant);
+
+ return Inverse;
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_inverse<tmat3x3, T, P, Aligned>
+ {
+ GLM_FUNC_QUALIFIER static tmat3x3<T, P> call(tmat3x3<T, P> const& m)
+ {
+ T OneOverDeterminant = static_cast<T>(1) / (
+ + m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2])
+ - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2])
+ + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]));
+
+ tmat3x3<T, P> Inverse(uninitialize);
+ Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]) * OneOverDeterminant;
+ Inverse[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]) * OneOverDeterminant;
+ Inverse[2][0] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]) * OneOverDeterminant;
+ Inverse[0][1] = - (m[0][1] * m[2][2] - m[2][1] * m[0][2]) * OneOverDeterminant;
+ Inverse[1][1] = + (m[0][0] * m[2][2] - m[2][0] * m[0][2]) * OneOverDeterminant;
+ Inverse[2][1] = - (m[0][0] * m[2][1] - m[2][0] * m[0][1]) * OneOverDeterminant;
+ Inverse[0][2] = + (m[0][1] * m[1][2] - m[1][1] * m[0][2]) * OneOverDeterminant;
+ Inverse[1][2] = - (m[0][0] * m[1][2] - m[1][0] * m[0][2]) * OneOverDeterminant;
+ Inverse[2][2] = + (m[0][0] * m[1][1] - m[1][0] * m[0][1]) * OneOverDeterminant;
+
+ return Inverse;
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_inverse<tmat4x4, T, P, Aligned>
+ {
+ GLM_FUNC_QUALIFIER static tmat4x4<T, P> call(tmat4x4<T, P> const& m)
+ {
+ T Coef00 = m[2][2] * m[3][3] - m[3][2] * m[2][3];
+ T Coef02 = m[1][2] * m[3][3] - m[3][2] * m[1][3];
+ T Coef03 = m[1][2] * m[2][3] - m[2][2] * m[1][3];
+
+ T Coef04 = m[2][1] * m[3][3] - m[3][1] * m[2][3];
+ T Coef06 = m[1][1] * m[3][3] - m[3][1] * m[1][3];
+ T Coef07 = m[1][1] * m[2][3] - m[2][1] * m[1][3];
+
+ T Coef08 = m[2][1] * m[3][2] - m[3][1] * m[2][2];
+ T Coef10 = m[1][1] * m[3][2] - m[3][1] * m[1][2];
+ T Coef11 = m[1][1] * m[2][2] - m[2][1] * m[1][2];
+
+ T Coef12 = m[2][0] * m[3][3] - m[3][0] * m[2][3];
+ T Coef14 = m[1][0] * m[3][3] - m[3][0] * m[1][3];
+ T Coef15 = m[1][0] * m[2][3] - m[2][0] * m[1][3];
+
+ T Coef16 = m[2][0] * m[3][2] - m[3][0] * m[2][2];
+ T Coef18 = m[1][0] * m[3][2] - m[3][0] * m[1][2];
+ T Coef19 = m[1][0] * m[2][2] - m[2][0] * m[1][2];
+
+ T Coef20 = m[2][0] * m[3][1] - m[3][0] * m[2][1];
+ T Coef22 = m[1][0] * m[3][1] - m[3][0] * m[1][1];
+ T Coef23 = m[1][0] * m[2][1] - m[2][0] * m[1][1];
+
+ tvec4<T, P> Fac0(Coef00, Coef00, Coef02, Coef03);
+ tvec4<T, P> Fac1(Coef04, Coef04, Coef06, Coef07);
+ tvec4<T, P> Fac2(Coef08, Coef08, Coef10, Coef11);
+ tvec4<T, P> Fac3(Coef12, Coef12, Coef14, Coef15);
+ tvec4<T, P> Fac4(Coef16, Coef16, Coef18, Coef19);
+ tvec4<T, P> Fac5(Coef20, Coef20, Coef22, Coef23);
+
+ tvec4<T, P> Vec0(m[1][0], m[0][0], m[0][0], m[0][0]);
+ tvec4<T, P> Vec1(m[1][1], m[0][1], m[0][1], m[0][1]);
+ tvec4<T, P> Vec2(m[1][2], m[0][2], m[0][2], m[0][2]);
+ tvec4<T, P> Vec3(m[1][3], m[0][3], m[0][3], m[0][3]);
+
+ tvec4<T, P> Inv0(Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2);
+ tvec4<T, P> Inv1(Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4);
+ tvec4<T, P> Inv2(Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5);
+ tvec4<T, P> Inv3(Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5);
+
+ tvec4<T, P> SignA(+1, -1, +1, -1);
+ tvec4<T, P> SignB(-1, +1, -1, +1);
+ tmat4x4<T, P> Inverse(Inv0 * SignA, Inv1 * SignB, Inv2 * SignA, Inv3 * SignB);
+
+ tvec4<T, P> Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]);
+
+ tvec4<T, P> Dot0(m[0] * Row0);
+ T Dot1 = (Dot0.x + Dot0.y) + (Dot0.z + Dot0.w);
+
+ T OneOverDeterminant = static_cast<T>(1) / Dot1;
+
+ return Inverse * OneOverDeterminant;
+ }
+ };
}//namespace detail
template <typename T, precision P, template <typename, precision> class matType>
GLM_FUNC_QUALIFIER matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'matrixCompMult' only accept floating-point inputs");
-
- matType<T, P> result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(result); ++i)
- result[i] = x[i] * y[i];
- return result;
+ return detail::compute_matrixCompMult<matType, T, P, detail::is_aligned<P>::value>::call(x, y);
}
template<typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
@@ -281,7 +368,7 @@ namespace detail
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'outerProduct' only accept floating-point inputs");
typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type m(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(m); ++i)
+ for(length_t i = 0; i < m.length(); ++i)
m[i] = c * r[i];
return m;
}
@@ -290,21 +377,25 @@ namespace detail
GLM_FUNC_QUALIFIER typename matType<T, P>::transpose_type transpose(matType<T, P> const & m)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'transpose' only accept floating-point inputs");
- return detail::compute_transpose<matType, T, P>::call(m);
+ return detail::compute_transpose<matType, T, P, detail::is_aligned<P>::value>::call(m);
}
template <typename T, precision P, template <typename, precision> class matType>
GLM_FUNC_QUALIFIER T determinant(matType<T, P> const & m)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'determinant' only accept floating-point inputs");
- return detail::compute_determinant<matType, T, P>::call(m);
+ return detail::compute_determinant<matType, T, P, detail::is_aligned<P>::value>::call(m);
}
template <typename T, precision P, template <typename, precision> class matType>
GLM_FUNC_QUALIFIER matType<T, P> inverse(matType<T, P> const & m)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'inverse' only accept floating-point inputs");
- return detail::compute_inverse(m);
+ return detail::compute_inverse<matType, T, P, detail::is_aligned<P>::value>::call(m);
}
-
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_matrix_simd.inl"
+#endif
+
diff --git a/glm/detail/func_matrix_simd.inl b/glm/detail/func_matrix_simd.inl
new file mode 100644
index 0000000..b7cfe76
--- /dev/null
+++ b/glm/detail/func_matrix_simd.inl
@@ -0,0 +1,88 @@
+/// @ref core
+/// @file glm/detail/func_matrix_simd.inl
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+#include "type_mat4x4.hpp"
+#include "func_geometric.hpp"
+#include "../simd/matrix.h"
+
+namespace glm{
+namespace detail
+{
+ template <precision P>
+ struct compute_matrixCompMult<tmat4x4, float, P, true>
+ {
+ GLM_STATIC_ASSERT(detail::is_aligned<P>::value, "Specialization requires aligned");
+
+ GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const & x, tmat4x4<float, P> const & y)
+ {
+ tmat4x4<float, P> result(uninitialize);
+ glm_mat4_matrixCompMult(
+ *(glm_vec4 const (*)[4])&x[0].data,
+ *(glm_vec4 const (*)[4])&y[0].data,
+ *(glm_vec4(*)[4])&result[0].data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_transpose<tmat4x4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const & m)
+ {
+ tmat4x4<float, P> result(uninitialize);
+ glm_mat4_transpose(
+ *(glm_vec4 const (*)[4])&m[0].data,
+ *(glm_vec4(*)[4])&result[0].data);
+ return result;
+ }
+ };
+
+ template <precision P>
+ struct compute_determinant<tmat4x4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static float call(tmat4x4<float, P> const& m)
+ {
+ return _mm_cvtss_f32(glm_mat4_determinant(*reinterpret_cast<__m128 const(*)[4]>(&m[0].data)));
+ }
+ };
+
+ template <precision P>
+ struct compute_inverse<tmat4x4, float, P, true>
+ {
+ GLM_FUNC_QUALIFIER static tmat4x4<float, P> call(tmat4x4<float, P> const& m)
+ {
+ tmat4x4<float, P> Result(uninitialize);
+ glm_mat4_inverse(*reinterpret_cast<__m128 const(*)[4]>(&m[0].data), *reinterpret_cast<__m128(*)[4]>(&Result[0].data));
+ return Result;
+ }
+ };
+}//namespace detail
+
+ template<>
+ GLM_FUNC_QUALIFIER tmat4x4<float, aligned_lowp> outerProduct<float, aligned_lowp, tvec4, tvec4>(tvec4<float, aligned_lowp> const & c, tvec4<float, aligned_lowp> const & r)
+ {
+ tmat4x4<float, aligned_lowp> m(uninitialize);
+ glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
+ return m;
+ }
+
+ template<>
+ GLM_FUNC_QUALIFIER tmat4x4<float, aligned_mediump> outerProduct<float, aligned_mediump, tvec4, tvec4>(tvec4<float, aligned_mediump> const & c, tvec4<float, aligned_mediump> const & r)
+ {
+ tmat4x4<float, aligned_mediump> m(uninitialize);
+ glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
+ return m;
+ }
+
+ template<>
+ GLM_FUNC_QUALIFIER tmat4x4<float, aligned_highp> outerProduct<float, aligned_highp, tvec4, tvec4>(tvec4<float, aligned_highp> const & c, tvec4<float, aligned_highp> const & r)
+ {
+ tmat4x4<float, aligned_highp> m(uninitialize);
+ glm_mat4_outerProduct(c.data, r.data, *reinterpret_cast<__m128(*)[4]>(&m[0].data));
+ return m;
+ }
+}//namespace glm
+
+#endif
diff --git a/glm/detail/func_packing.hpp b/glm/detail/func_packing.hpp
index 38347d3..e298297 100644
--- a/glm/detail/func_packing.hpp
+++ b/glm/detail/func_packing.hpp
@@ -1,42 +1,13 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_packing.hpp
-/// @date 2010-03-17 / 2011-06-15
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
/// @see gtc_packing
-///
+///
/// @defgroup core_func_packing Floating-Point Pack and Unpack Functions
/// @ingroup core
-///
+///
/// These functions do not operate component-wise, rather as described in each case.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_packing.inl b/glm/detail/func_packing.inl
index a5ebeaf..f0f2938 100644
--- a/glm/detail/func_packing.inl
+++ b/glm/detail/func_packing.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_packing.inl
-/// @date 2010-03-17 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "func_common.hpp"
#include "type_half.hpp"
@@ -213,3 +184,7 @@ namespace glm
}
}//namespace glm
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_packing_simd.inl"
+#endif
+
diff --git a/glm/detail/func_packing_simd.inl b/glm/detail/func_packing_simd.inl
new file mode 100644
index 0000000..5aeca56
--- /dev/null
+++ b/glm/detail/func_packing_simd.inl
@@ -0,0 +1,9 @@
+/// @ref core
+/// @file glm/detail/func_packing_simd.inl
+
+namespace glm{
+namespace detail
+{
+
+}//namespace detail
+}//namespace glm
diff --git a/glm/detail/func_trigonometric.hpp b/glm/detail/func_trigonometric.hpp
index 9130856..8c934d6 100644
--- a/glm/detail/func_trigonometric.hpp
+++ b/glm/detail/func_trigonometric.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_trigonometric.hpp
-/// @date 2008-08-01 / 2011-06-15
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions</a>
///
@@ -39,7 +11,6 @@
/// the divisor of a ratio is 0, then results will be undefined.
///
/// These all operate component-wise. The description is per component.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_trigonometric.inl b/glm/detail/func_trigonometric.inl
index 7536d42..c305fa3 100644
--- a/glm/detail/func_trigonometric.inl
+++ b/glm/detail/func_trigonometric.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_trigonometric.inl
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "_vectorize.hpp"
#include <cmath>
@@ -123,7 +94,7 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> atan(vecType<T, P> const & a, vecType<T, P> const & b)
{
- return detail::functor2<T, P, vecType>::call(atan2, a, b);
+ return detail::functor2<T, P, vecType>::call(::std::atan2, a, b);
}
using std::atan;
@@ -222,3 +193,8 @@ namespace glm
return detail::functor1<T, T, P, vecType>::call(atanh, v);
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_trigonometric_simd.inl"
+#endif
+
diff --git a/glm/detail/func_trigonometric_simd.inl b/glm/detail/func_trigonometric_simd.inl
new file mode 100644
index 0000000..e69de29
diff --git a/glm/detail/func_vector_relational.hpp b/glm/detail/func_vector_relational.hpp
index 73a0ef5..3071ae9 100644
--- a/glm/detail/func_vector_relational.hpp
+++ b/glm/detail/func_vector_relational.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_vector_relational.hpp
-/// @date 2008-08-03 / 2011-06-15
-/// @author Christophe Riccio
///
/// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7 Vector Relational Functions</a>
///
@@ -40,7 +12,6 @@
///
/// In all cases, the sizes of all the input and return vectors for any particular
/// call must match.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/func_vector_relational.inl b/glm/detail/func_vector_relational.inl
index ac88c49..a2154f6 100644
--- a/glm/detail/func_vector_relational.inl
+++ b/glm/detail/func_vector_relational.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/func_vector_relational.inl
-/// @date 2008-08-03 / 2011-09-09
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <limits>
@@ -37,10 +8,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> lessThan(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
return Result;
@@ -49,10 +20,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> lessThanEqual(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
return Result;
}
@@ -60,10 +31,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> greaterThan(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
return Result;
}
@@ -71,10 +42,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> greaterThanEqual(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
return Result;
}
@@ -82,10 +53,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> equal(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
return Result;
}
@@ -93,10 +64,10 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<bool, P> notEqual(vecType<T, P> const & x, vecType<T, P> const & y)
{
- assert(detail::component_count(x) == detail::component_count(y));
+ assert(x.length() == y.length());
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
return Result;
}
@@ -105,7 +76,7 @@ namespace glm
GLM_FUNC_QUALIFIER bool any(vecType<bool, P> const & v)
{
bool Result = false;
- for(detail::component_count_t i = 0; i < detail::component_count(v); ++i)
+ for(length_t i = 0; i < v.length(); ++i)
Result = Result || v[i];
return Result;
}
@@ -114,7 +85,7 @@ namespace glm
GLM_FUNC_QUALIFIER bool all(vecType<bool, P> const & v)
{
bool Result = true;
- for(detail::component_count_t i = 0; i < detail::component_count(v); ++i)
+ for(length_t i = 0; i < v.length(); ++i)
Result = Result && v[i];
return Result;
}
@@ -123,9 +94,12 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<bool, P> not_(vecType<bool, P> const & v)
{
vecType<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(v); ++i)
+ for(length_t i = 0; i < v.length(); ++i)
Result[i] = !v[i];
return Result;
}
}//namespace glm
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS
+# include "func_vector_relational_simd.inl"
+#endif
diff --git a/glm/detail/func_vector_relational_simd.inl b/glm/detail/func_vector_relational_simd.inl
new file mode 100644
index 0000000..fbb080e
--- /dev/null
+++ b/glm/detail/func_vector_relational_simd.inl
@@ -0,0 +1,9 @@
+/// @ref core
+/// @file glm/detail/func_vector_relational_simd.inl
+
+namespace glm{
+namespace detail
+{
+
+}//namespace detail
+}//namespace glm
diff --git a/glm/detail/glm.cpp b/glm/detail/glm.cpp
index 47c7479..a13ec32 100644
--- a/glm/detail/glm.cpp
+++ b/glm/detail/glm.cpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/glm.cpp
-/// @date 2013-04-22 / 2013-04-22
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <glm/glm.hpp>
#include <glm/gtc/quaternion.hpp>
diff --git a/glm/detail/intrinsic_common.hpp b/glm/detail/intrinsic_common.hpp
deleted file mode 100644
index 54911e3..0000000
--- a/glm/detail/intrinsic_common.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_common.hpp
-/// @date 2009-05-11 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-namespace glm{
-namespace detail
-{
- __m128 sse_abs_ps(__m128 x);
-
- __m128 sse_sgn_ps(__m128 x);
-
- //floor
- __m128 sse_flr_ps(__m128 v);
-
- //trunc
- __m128 sse_trc_ps(__m128 v);
-
- //round
- __m128 sse_nd_ps(__m128 v);
-
- //roundEven
- __m128 sse_rde_ps(__m128 v);
-
- __m128 sse_rnd_ps(__m128 x);
-
- __m128 sse_ceil_ps(__m128 v);
-
- __m128 sse_frc_ps(__m128 x);
-
- __m128 sse_mod_ps(__m128 x, __m128 y);
-
- __m128 sse_modf_ps(__m128 x, __m128i & i);
-
- //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
-
- //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
-
- __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
-
- __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
-
- __m128 sse_stp_ps(__m128 edge, __m128 x);
-
- __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
-
- __m128 sse_nan_ps(__m128 x);
-
- __m128 sse_inf_ps(__m128 x);
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_common.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_common.inl b/glm/detail/intrinsic_common.inl
deleted file mode 100644
index 2c2f5d0..0000000
--- a/glm/detail/intrinsic_common.inl
+++ /dev/null
@@ -1,313 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_common.inl
-/// @date 2009-05-08 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail{
-
-#if(GLM_COMPILER & GLM_COMPILER_VC)
-#pragma warning(push)
-#pragma warning(disable : 4510 4512 4610)
-#endif
-
- union ieee754_QNAN
- {
- const float f;
- struct i
- {
- const unsigned int mantissa:23, exp:8, sign:1;
- };
-
- ieee754_QNAN() : f(0.0)/*, mantissa(0x7FFFFF), exp(0xFF), sign(0x0)*/ {}
- };
-
-#if(GLM_COMPILER & GLM_COMPILER_VC)
-#pragma warning(pop)
-#endif
-
- static const __m128 GLM_VAR_USED zero = _mm_setzero_ps();
- static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f);
- static const __m128 GLM_VAR_USED minus_one = _mm_set_ps1(-1.0f);
- static const __m128 GLM_VAR_USED two = _mm_set_ps1(2.0f);
- static const __m128 GLM_VAR_USED three = _mm_set_ps1(3.0f);
- static const __m128 GLM_VAR_USED pi = _mm_set_ps1(3.1415926535897932384626433832795f);
- static const __m128 GLM_VAR_USED hundred_eighty = _mm_set_ps1(180.f);
- static const __m128 GLM_VAR_USED pi_over_hundred_eighty = _mm_set_ps1(0.017453292519943295769236907684886f);
- static const __m128 GLM_VAR_USED hundred_eighty_over_pi = _mm_set_ps1(57.295779513082320876798154814105f);
-
- static const ieee754_QNAN absMask;
- static const __m128 GLM_VAR_USED abs4Mask = _mm_set_ps1(absMask.f);
-
- static const __m128 GLM_VAR_USED _epi32_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(static_cast<int>(0x80000000)));
- //static const __m128 GLM_VAR_USED _epi32_inv_sign_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF));
- //static const __m128 GLM_VAR_USED _epi32_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
- //static const __m128 GLM_VAR_USED _epi32_inv_mant_mask = _mm_castsi128_ps(_mm_set1_epi32(0x807FFFFF));
- //static const __m128 GLM_VAR_USED _epi32_min_norm_pos = _mm_castsi128_ps(_mm_set1_epi32(0x00800000));
- static const __m128 GLM_VAR_USED _epi32_0 = _mm_set_ps1(0);
- static const __m128 GLM_VAR_USED _epi32_1 = _mm_set_ps1(1);
- static const __m128 GLM_VAR_USED _epi32_2 = _mm_set_ps1(2);
- static const __m128 GLM_VAR_USED _epi32_3 = _mm_set_ps1(3);
- static const __m128 GLM_VAR_USED _epi32_4 = _mm_set_ps1(4);
- static const __m128 GLM_VAR_USED _epi32_5 = _mm_set_ps1(5);
- static const __m128 GLM_VAR_USED _epi32_6 = _mm_set_ps1(6);
- static const __m128 GLM_VAR_USED _epi32_7 = _mm_set_ps1(7);
- static const __m128 GLM_VAR_USED _epi32_8 = _mm_set_ps1(8);
- static const __m128 GLM_VAR_USED _epi32_9 = _mm_set_ps1(9);
- static const __m128 GLM_VAR_USED _epi32_127 = _mm_set_ps1(127);
- //static const __m128 GLM_VAR_USED _epi32_ninf = _mm_castsi128_ps(_mm_set1_epi32(0xFF800000));
- //static const __m128 GLM_VAR_USED _epi32_pinf = _mm_castsi128_ps(_mm_set1_epi32(0x7F800000));
-
- static const __m128 GLM_VAR_USED _ps_1_3 = _mm_set_ps1(0.33333333333333333333333333333333f);
- static const __m128 GLM_VAR_USED _ps_0p5 = _mm_set_ps1(0.5f);
- static const __m128 GLM_VAR_USED _ps_1 = _mm_set_ps1(1.0f);
- static const __m128 GLM_VAR_USED _ps_m1 = _mm_set_ps1(-1.0f);
- static const __m128 GLM_VAR_USED _ps_2 = _mm_set_ps1(2.0f);
- static const __m128 GLM_VAR_USED _ps_3 = _mm_set_ps1(3.0f);
- static const __m128 GLM_VAR_USED _ps_127 = _mm_set_ps1(127.0f);
- static const __m128 GLM_VAR_USED _ps_255 = _mm_set_ps1(255.0f);
- static const __m128 GLM_VAR_USED _ps_2pow23 = _mm_set_ps1(8388608.0f);
-
- static const __m128 GLM_VAR_USED _ps_1_0_0_0 = _mm_set_ps(1.0f, 0.0f, 0.0f, 0.0f);
- static const __m128 GLM_VAR_USED _ps_0_1_0_0 = _mm_set_ps(0.0f, 1.0f, 0.0f, 0.0f);
- static const __m128 GLM_VAR_USED _ps_0_0_1_0 = _mm_set_ps(0.0f, 0.0f, 1.0f, 0.0f);
- static const __m128 GLM_VAR_USED _ps_0_0_0_1 = _mm_set_ps(0.0f, 0.0f, 0.0f, 1.0f);
-
- static const __m128 GLM_VAR_USED _ps_pi = _mm_set_ps1(3.1415926535897932384626433832795f);
- static const __m128 GLM_VAR_USED _ps_pi2 = _mm_set_ps1(6.283185307179586476925286766560f);
- static const __m128 GLM_VAR_USED _ps_2_pi = _mm_set_ps1(0.63661977236758134307553505349006f);
- static const __m128 GLM_VAR_USED _ps_pi_2 = _mm_set_ps1(1.5707963267948966192313216916398f);
- static const __m128 GLM_VAR_USED _ps_4_pi = _mm_set_ps1(1.2732395447351626861510701069801f);
- static const __m128 GLM_VAR_USED _ps_pi_4 = _mm_set_ps1(0.78539816339744830961566084581988f);
-
- static const __m128 GLM_VAR_USED _ps_sincos_p0 = _mm_set_ps1(0.15707963267948963959e1f);
- static const __m128 GLM_VAR_USED _ps_sincos_p1 = _mm_set_ps1(-0.64596409750621907082e0f);
- static const __m128 GLM_VAR_USED _ps_sincos_p2 = _mm_set_ps1(0.7969262624561800806e-1f);
- static const __m128 GLM_VAR_USED _ps_sincos_p3 = _mm_set_ps1(-0.468175413106023168e-2f);
- static const __m128 GLM_VAR_USED _ps_tan_p0 = _mm_set_ps1(-1.79565251976484877988e7f);
- static const __m128 GLM_VAR_USED _ps_tan_p1 = _mm_set_ps1(1.15351664838587416140e6f);
- static const __m128 GLM_VAR_USED _ps_tan_p2 = _mm_set_ps1(-1.30936939181383777646e4f);
- static const __m128 GLM_VAR_USED _ps_tan_q0 = _mm_set_ps1(-5.38695755929454629881e7f);
- static const __m128 GLM_VAR_USED _ps_tan_q1 = _mm_set_ps1(2.50083801823357915839e7f);
- static const __m128 GLM_VAR_USED _ps_tan_q2 = _mm_set_ps1(-1.32089234440210967447e6f);
- static const __m128 GLM_VAR_USED _ps_tan_q3 = _mm_set_ps1(1.36812963470692954678e4f);
- static const __m128 GLM_VAR_USED _ps_tan_poleval = _mm_set_ps1(3.68935e19f);
- static const __m128 GLM_VAR_USED _ps_atan_t0 = _mm_set_ps1(-0.91646118527267623468e-1f);
- static const __m128 GLM_VAR_USED _ps_atan_t1 = _mm_set_ps1(-0.13956945682312098640e1f);
- static const __m128 GLM_VAR_USED _ps_atan_t2 = _mm_set_ps1(-0.94393926122725531747e2f);
- static const __m128 GLM_VAR_USED _ps_atan_t3 = _mm_set_ps1(0.12888383034157279340e2f);
- static const __m128 GLM_VAR_USED _ps_atan_s0 = _mm_set_ps1(0.12797564625607904396e1f);
- static const __m128 GLM_VAR_USED _ps_atan_s1 = _mm_set_ps1(0.21972168858277355914e1f);
- static const __m128 GLM_VAR_USED _ps_atan_s2 = _mm_set_ps1(0.68193064729268275701e1f);
- static const __m128 GLM_VAR_USED _ps_atan_s3 = _mm_set_ps1(0.28205206687035841409e2f);
-
- static const __m128 GLM_VAR_USED _ps_exp_hi = _mm_set_ps1(88.3762626647949f);
- static const __m128 GLM_VAR_USED _ps_exp_lo = _mm_set_ps1(-88.3762626647949f);
- static const __m128 GLM_VAR_USED _ps_exp_rln2 = _mm_set_ps1(1.4426950408889634073599f);
- static const __m128 GLM_VAR_USED _ps_exp_p0 = _mm_set_ps1(1.26177193074810590878e-4f);
- static const __m128 GLM_VAR_USED _ps_exp_p1 = _mm_set_ps1(3.02994407707441961300e-2f);
- static const __m128 GLM_VAR_USED _ps_exp_q0 = _mm_set_ps1(3.00198505138664455042e-6f);
- static const __m128 GLM_VAR_USED _ps_exp_q1 = _mm_set_ps1(2.52448340349684104192e-3f);
- static const __m128 GLM_VAR_USED _ps_exp_q2 = _mm_set_ps1(2.27265548208155028766e-1f);
- static const __m128 GLM_VAR_USED _ps_exp_q3 = _mm_set_ps1(2.00000000000000000009e0f);
- static const __m128 GLM_VAR_USED _ps_exp_c1 = _mm_set_ps1(6.93145751953125e-1f);
- static const __m128 GLM_VAR_USED _ps_exp_c2 = _mm_set_ps1(1.42860682030941723212e-6f);
- static const __m128 GLM_VAR_USED _ps_exp2_hi = _mm_set_ps1(127.4999961853f);
- static const __m128 GLM_VAR_USED _ps_exp2_lo = _mm_set_ps1(-127.4999961853f);
- static const __m128 GLM_VAR_USED _ps_exp2_p0 = _mm_set_ps1(2.30933477057345225087e-2f);
- static const __m128 GLM_VAR_USED _ps_exp2_p1 = _mm_set_ps1(2.02020656693165307700e1f);
- static const __m128 GLM_VAR_USED _ps_exp2_p2 = _mm_set_ps1(1.51390680115615096133e3f);
- static const __m128 GLM_VAR_USED _ps_exp2_q0 = _mm_set_ps1(2.33184211722314911771e2f);
- static const __m128 GLM_VAR_USED _ps_exp2_q1 = _mm_set_ps1(4.36821166879210612817e3f);
- static const __m128 GLM_VAR_USED _ps_log_p0 = _mm_set_ps1(-7.89580278884799154124e-1f);
- static const __m128 GLM_VAR_USED _ps_log_p1 = _mm_set_ps1(1.63866645699558079767e1f);
- static const __m128 GLM_VAR_USED _ps_log_p2 = _mm_set_ps1(-6.41409952958715622951e1f);
- static const __m128 GLM_VAR_USED _ps_log_q0 = _mm_set_ps1(-3.56722798256324312549e1f);
- static const __m128 GLM_VAR_USED _ps_log_q1 = _mm_set_ps1(3.12093766372244180303e2f);
- static const __m128 GLM_VAR_USED _ps_log_q2 = _mm_set_ps1(-7.69691943550460008604e2f);
- static const __m128 GLM_VAR_USED _ps_log_c0 = _mm_set_ps1(0.693147180559945f);
- static const __m128 GLM_VAR_USED _ps_log2_c0 = _mm_set_ps1(1.44269504088896340735992f);
-
-GLM_FUNC_QUALIFIER __m128 sse_abs_ps(__m128 x)
-{
- return _mm_and_ps(glm::detail::abs4Mask, x);
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_sgn_ps(__m128 x)
-{
- __m128 Neg = _mm_set1_ps(-1.0f);
- __m128 Pos = _mm_set1_ps(1.0f);
-
- __m128 Cmp0 = _mm_cmplt_ps(x, zero);
- __m128 Cmp1 = _mm_cmpgt_ps(x, zero);
-
- __m128 And0 = _mm_and_ps(Cmp0, Neg);
- __m128 And1 = _mm_and_ps(Cmp1, Pos);
-
- return _mm_or_ps(And0, And1);
-}
-
-//floor
-GLM_FUNC_QUALIFIER __m128 sse_flr_ps(__m128 x)
-{
- __m128 rnd0 = sse_rnd_ps(x);
- __m128 cmp0 = _mm_cmplt_ps(x, rnd0);
- __m128 and0 = _mm_and_ps(cmp0, glm::detail::_ps_1);
- __m128 sub0 = _mm_sub_ps(rnd0, and0);
- return sub0;
-}
-
-//trunc
-/*
-GLM_FUNC_QUALIFIER __m128 _mm_trc_ps(__m128 v)
-{
- return __m128();
-}
-*/
-//round
-GLM_FUNC_QUALIFIER __m128 sse_rnd_ps(__m128 x)
-{
- __m128 and0 = _mm_and_ps(glm::detail::_epi32_sign_mask, x);
- __m128 or0 = _mm_or_ps(and0, glm::detail::_ps_2pow23);
- __m128 add0 = _mm_add_ps(x, or0);
- __m128 sub0 = _mm_sub_ps(add0, or0);
- return sub0;
-}
-
-//roundEven
-GLM_FUNC_QUALIFIER __m128 sse_rde_ps(__m128 x)
-{
- __m128 and0 = _mm_and_ps(glm::detail::_epi32_sign_mask, x);
- __m128 or0 = _mm_or_ps(and0, glm::detail::_ps_2pow23);
- __m128 add0 = _mm_add_ps(x, or0);
- __m128 sub0 = _mm_sub_ps(add0, or0);
- return sub0;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_ceil_ps(__m128 x)
-{
- __m128 rnd0 = sse_rnd_ps(x);
- __m128 cmp0 = _mm_cmpgt_ps(x, rnd0);
- __m128 and0 = _mm_and_ps(cmp0, glm::detail::_ps_1);
- __m128 add0 = _mm_add_ps(rnd0, and0);
- return add0;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_frc_ps(__m128 x)
-{
- __m128 flr0 = sse_flr_ps(x);
- __m128 sub0 = _mm_sub_ps(x, flr0);
- return sub0;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_mod_ps(__m128 x, __m128 y)
-{
- __m128 div0 = _mm_div_ps(x, y);
- __m128 flr0 = sse_flr_ps(div0);
- __m128 mul0 = _mm_mul_ps(y, flr0);
- __m128 sub0 = _mm_sub_ps(x, mul0);
- return sub0;
-}
-
-/// TODO
-/*
-GLM_FUNC_QUALIFIER __m128 sse_modf_ps(__m128 x, __m128i & i)
-{
- __m128 empty;
- return empty;
-}
-*/
-
-//GLM_FUNC_QUALIFIER __m128 _mm_min_ps(__m128 x, __m128 y)
-
-//GLM_FUNC_QUALIFIER __m128 _mm_max_ps(__m128 x, __m128 y)
-
-GLM_FUNC_QUALIFIER __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal)
-{
- __m128 min0 = _mm_min_ps(v, maxVal);
- __m128 max0 = _mm_max_ps(min0, minVal);
- return max0;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a)
-{
- __m128 sub0 = _mm_sub_ps(glm::detail::one, a);
- __m128 mul0 = _mm_mul_ps(v1, sub0);
- __m128 mul1 = _mm_mul_ps(v2, a);
- __m128 add0 = _mm_add_ps(mul0, mul1);
- return add0;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_stp_ps(__m128 edge, __m128 x)
-{
- __m128 cmp = _mm_cmple_ps(x, edge);
- if(_mm_movemask_ps(cmp) == 0)
- return glm::detail::one;
- else
- return glm::detail::zero;
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x)
-{
- __m128 sub0 = _mm_sub_ps(x, edge0);
- __m128 sub1 = _mm_sub_ps(edge1, edge0);
- __m128 div0 = _mm_sub_ps(sub0, sub1);
- __m128 clp0 = sse_clp_ps(div0, glm::detail::zero, glm::detail::one);
- __m128 mul0 = _mm_mul_ps(glm::detail::two, clp0);
- __m128 sub2 = _mm_sub_ps(glm::detail::three, mul0);
- __m128 mul1 = _mm_mul_ps(clp0, clp0);
- __m128 mul2 = _mm_mul_ps(mul1, sub2);
- return mul2;
-}
-
-/// \todo
-//GLM_FUNC_QUALIFIER __m128 sse_nan_ps(__m128 x)
-//{
-// __m128 empty;
-// return empty;
-//}
-
-/// \todo
-//GLM_FUNC_QUALIFIER __m128 sse_inf_ps(__m128 x)
-//{
-// __m128 empty;
-// return empty;
-//}
-
-// SSE scalar reciprocal sqrt using rsqrt op, plus one Newton-Rhaphson iteration
-// By Elan Ruskin, http://assemblyrequired.crashworks.org/
-GLM_FUNC_QUALIFIER __m128 sse_sqrt_wip_ss(__m128 const & x)
-{
- __m128 const recip = _mm_rsqrt_ss(x); // "estimate" opcode
- __m128 const half = _mm_set_ps1(0.5f);
- __m128 const halfrecip = _mm_mul_ss(half, recip);
- __m128 const threeminus_xrr = _mm_sub_ss(three, _mm_mul_ss(x, _mm_mul_ss (recip, recip)));
- return _mm_mul_ss(halfrecip, threeminus_xrr);
-}
-
-}//namespace detail
-}//namespace glms
-
diff --git a/glm/detail/intrinsic_exponential.hpp b/glm/detail/intrinsic_exponential.hpp
deleted file mode 100644
index 8fca5f9..0000000
--- a/glm/detail/intrinsic_exponential.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_exponential.hpp
-/// @date 2009-05-11 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-namespace glm{
-namespace detail
-{
-/*
-GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
-{
- __m128 recip = _mm_rsqrt_ss( x ); // "estimate" opcode
- const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
- const static __m128 half = { 0.5,0.5,0.5,0.5 };
- __m128 halfrecip = _mm_mul_ss( half, recip );
- __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
- return _mm_mul_ss( halfrecip, threeminus_xrr );
-}
-
-GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps( float * RESTRICT vOut, float * RESTRICT vIn )
-{
- __m128 x = _mm_load_ss(&vIn[0]);
- __m128 y = _mm_load_ss(&vIn[1]);
- __m128 z = _mm_load_ss(&vIn[2]);
-
- const __m128 l = // compute x*x + y*y + z*z
- _mm_add_ss(
- _mm_add_ss( _mm_mul_ss(x,x),
- _mm_mul_ss(y,y)
- ),
- _mm_mul_ss( z, z )
- );
-
-
- const __m128 rsqt = _mm_rsqrt_nr_ss( l );
- _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
- _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
- _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
-
- return _mm_mul_ss( l , rsqt );
-}
-*/
-}//namespace detail
-}//namespace glm
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_exponential.inl b/glm/detail/intrinsic_exponential.inl
deleted file mode 100644
index 76d4a19..0000000
--- a/glm/detail/intrinsic_exponential.inl
+++ /dev/null
@@ -1,27 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_exponential.inl
-/// @date 2011-06-15 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/detail/intrinsic_geometric.hpp b/glm/detail/intrinsic_geometric.hpp
deleted file mode 100644
index 963baad..0000000
--- a/glm/detail/intrinsic_geometric.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_geometric.hpp
-/// @date 2009-05-08 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-#include "intrinsic_common.hpp"
-
-namespace glm{
-namespace detail
-{
- //length
- __m128 sse_len_ps(__m128 x);
-
- //distance
- __m128 sse_dst_ps(__m128 p0, __m128 p1);
-
- //dot
- __m128 sse_dot_ps(__m128 v1, __m128 v2);
-
- // SSE1
- __m128 sse_dot_ss(__m128 v1, __m128 v2);
-
- //cross
- __m128 sse_xpd_ps(__m128 v1, __m128 v2);
-
- //normalize
- __m128 sse_nrm_ps(__m128 v);
-
- //faceforward
- __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
-
- //reflect
- __m128 sse_rfe_ps(__m128 I, __m128 N);
-
- //refract
- __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_geometric.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_geometric.inl b/glm/detail/intrinsic_geometric.inl
deleted file mode 100644
index e58d5c4..0000000
--- a/glm/detail/intrinsic_geometric.inl
+++ /dev/null
@@ -1,147 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_geometric.inl
-/// @date 2009-05-08 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail{
-
-//length
-GLM_FUNC_QUALIFIER __m128 sse_len_ps(__m128 x)
-{
- __m128 dot0 = sse_dot_ps(x, x);
- __m128 sqt0 = _mm_sqrt_ps(dot0);
- return sqt0;
-}
-
-//distance
-GLM_FUNC_QUALIFIER __m128 sse_dst_ps(__m128 p0, __m128 p1)
-{
- __m128 sub0 = _mm_sub_ps(p0, p1);
- __m128 len0 = sse_len_ps(sub0);
- return len0;
-}
-
-//dot
-GLM_FUNC_QUALIFIER __m128 sse_dot_ps(__m128 v1, __m128 v2)
-{
-
-# if(GLM_ARCH & GLM_ARCH_AVX)
- return _mm_dp_ps(v1, v2, 0xff);
-# else
- __m128 mul0 = _mm_mul_ps(v1, v2);
- __m128 swp0 = _mm_shuffle_ps(mul0, mul0, _MM_SHUFFLE(2, 3, 0, 1));
- __m128 add0 = _mm_add_ps(mul0, swp0);
- __m128 swp1 = _mm_shuffle_ps(add0, add0, _MM_SHUFFLE(0, 1, 2, 3));
- __m128 add1 = _mm_add_ps(add0, swp1);
- return add1;
-# endif
-}
-
-// SSE1
-GLM_FUNC_QUALIFIER __m128 sse_dot_ss(__m128 v1, __m128 v2)
-{
- __m128 mul0 = _mm_mul_ps(v1, v2);
- __m128 mov0 = _mm_movehl_ps(mul0, mul0);
- __m128 add0 = _mm_add_ps(mov0, mul0);
- __m128 swp1 = _mm_shuffle_ps(add0, add0, 1);
- __m128 add1 = _mm_add_ss(add0, swp1);
- return add1;
-}
-
-//cross
-GLM_FUNC_QUALIFIER __m128 sse_xpd_ps(__m128 v1, __m128 v2)
-{
- __m128 swp0 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 0, 2, 1));
- __m128 swp1 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 1, 0, 2));
- __m128 swp2 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 0, 2, 1));
- __m128 swp3 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 1, 0, 2));
- __m128 mul0 = _mm_mul_ps(swp0, swp3);
- __m128 mul1 = _mm_mul_ps(swp1, swp2);
- __m128 sub0 = _mm_sub_ps(mul0, mul1);
- return sub0;
-}
-
-//normalize
-GLM_FUNC_QUALIFIER __m128 sse_nrm_ps(__m128 v)
-{
- __m128 dot0 = sse_dot_ps(v, v);
- __m128 isr0 = _mm_rsqrt_ps(dot0);
- __m128 mul0 = _mm_mul_ps(v, isr0);
- return mul0;
-}
-
-//faceforward
-GLM_FUNC_QUALIFIER __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref)
-{
- //__m128 dot0 = _mm_dot_ps(v, v);
- //__m128 neg0 = _mm_neg_ps(N);
- //__m128 sgn0 = _mm_sgn_ps(dot0);
- //__m128 mix0 = _mm_mix_ps(N, neg0, sgn0);
- //return mix0;
-
- __m128 dot0 = sse_dot_ps(Nref, I);
- __m128 sgn0 = sse_sgn_ps(dot0);
- __m128 mul0 = _mm_mul_ps(sgn0, glm::detail::minus_one);
- __m128 mul1 = _mm_mul_ps(N, mul0);
- return mul1;
-}
-
-//reflect
-GLM_FUNC_QUALIFIER __m128 sse_rfe_ps(__m128 I, __m128 N)
-{
- __m128 dot0 = sse_dot_ps(N, I);
- __m128 mul0 = _mm_mul_ps(N, dot0);
- __m128 mul1 = _mm_mul_ps(mul0, glm::detail::two);
- __m128 sub0 = _mm_sub_ps(I, mul1);
- return sub0;
-}
-
-//refract
-GLM_FUNC_QUALIFIER __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta)
-{
- __m128 dot0 = sse_dot_ps(N, I);
- __m128 mul0 = _mm_mul_ps(eta, eta);
- __m128 mul1 = _mm_mul_ps(dot0, dot0);
- __m128 sub0 = _mm_sub_ps(glm::detail::one, mul0);
- __m128 sub1 = _mm_sub_ps(glm::detail::one, mul1);
- __m128 mul2 = _mm_mul_ps(sub0, sub1);
-
- if(_mm_movemask_ps(_mm_cmplt_ss(mul2, glm::detail::zero)) == 0)
- return glm::detail::zero;
-
- __m128 sqt0 = _mm_sqrt_ps(mul2);
- __m128 mul3 = _mm_mul_ps(eta, dot0);
- __m128 add0 = _mm_add_ps(mul3, sqt0);
- __m128 mul4 = _mm_mul_ps(add0, N);
- __m128 mul5 = _mm_mul_ps(eta, I);
- __m128 sub2 = _mm_sub_ps(mul5, mul4);
-
- return sub2;
-}
-
-}//namespace detail
-}//namespace glm
diff --git a/glm/detail/intrinsic_integer.hpp b/glm/detail/intrinsic_integer.hpp
deleted file mode 100644
index 049388e..0000000
--- a/glm/detail/intrinsic_integer.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_integer.hpp
-/// @date 2009-05-11 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "glm/glm.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-namespace glm{
-namespace detail
-{
- __m128i _mm_bit_interleave_si128(__m128i x);
- __m128i _mm_bit_interleave_si128(__m128i x, __m128i y);
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_integer.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_integer.inl b/glm/detail/intrinsic_integer.inl
deleted file mode 100644
index 1ea96b5..0000000
--- a/glm/detail/intrinsic_integer.inl
+++ /dev/null
@@ -1,139 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_integer.inl
-/// @date 2009-05-08 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail
-{
- inline __m128i _mm_bit_interleave_si128(__m128i x)
- {
- __m128i const Mask4 = _mm_set1_epi32(0x0000FFFF);
- __m128i const Mask3 = _mm_set1_epi32(0x00FF00FF);
- __m128i const Mask2 = _mm_set1_epi32(0x0F0F0F0F);
- __m128i const Mask1 = _mm_set1_epi32(0x33333333);
- __m128i const Mask0 = _mm_set1_epi32(0x55555555);
-
- __m128i Reg1;
- __m128i Reg2;
-
- // REG1 = x;
- // REG2 = y;
- //Reg1 = _mm_unpacklo_epi64(x, y);
- Reg1 = x;
-
- //REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFF);
- //REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFF);
- Reg2 = _mm_slli_si128(Reg1, 2);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask4);
-
- //REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FF);
- //REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FF);
- Reg2 = _mm_slli_si128(Reg1, 1);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask3);
-
- //REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0F);
- //REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0F);
- Reg2 = _mm_slli_epi32(Reg1, 4);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask2);
-
- //REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333);
- //REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333);
- Reg2 = _mm_slli_epi32(Reg1, 2);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask1);
-
- //REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555);
- //REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555);
- Reg2 = _mm_slli_epi32(Reg1, 1);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask0);
-
- //return REG1 | (REG2 << 1);
- Reg2 = _mm_slli_epi32(Reg1, 1);
- Reg2 = _mm_srli_si128(Reg2, 8);
- Reg1 = _mm_or_si128(Reg1, Reg2);
-
- return Reg1;
- }
-
- inline __m128i _mm_bit_interleave_si128(__m128i x, __m128i y)
- {
- __m128i const Mask4 = _mm_set1_epi32(0x0000FFFF);
- __m128i const Mask3 = _mm_set1_epi32(0x00FF00FF);
- __m128i const Mask2 = _mm_set1_epi32(0x0F0F0F0F);
- __m128i const Mask1 = _mm_set1_epi32(0x33333333);
- __m128i const Mask0 = _mm_set1_epi32(0x55555555);
-
- __m128i Reg1;
- __m128i Reg2;
-
- // REG1 = x;
- // REG2 = y;
- Reg1 = _mm_unpacklo_epi64(x, y);
-
- //REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFF);
- //REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFF);
- Reg2 = _mm_slli_si128(Reg1, 2);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask4);
-
- //REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FF);
- //REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FF);
- Reg2 = _mm_slli_si128(Reg1, 1);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask3);
-
- //REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0F);
- //REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0F);
- Reg2 = _mm_slli_epi32(Reg1, 4);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask2);
-
- //REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333);
- //REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333);
- Reg2 = _mm_slli_epi32(Reg1, 2);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask1);
-
- //REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555);
- //REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555);
- Reg2 = _mm_slli_epi32(Reg1, 1);
- Reg1 = _mm_or_si128(Reg2, Reg1);
- Reg1 = _mm_and_si128(Reg1, Mask0);
-
- //return REG1 | (REG2 << 1);
- Reg2 = _mm_slli_epi32(Reg1, 1);
- Reg2 = _mm_srli_si128(Reg2, 8);
- Reg1 = _mm_or_si128(Reg1, Reg2);
-
- return Reg1;
- }
-}//namespace detail
-}//namespace glms
diff --git a/glm/detail/intrinsic_matrix.hpp b/glm/detail/intrinsic_matrix.hpp
deleted file mode 100644
index 909d137..0000000
--- a/glm/detail/intrinsic_matrix.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_common.hpp
-/// @date 2009-06-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-#include "intrinsic_geometric.hpp"
-
-namespace glm{
-namespace detail
-{
- void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
- void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
-
- __m128 sse_mul_ps(__m128 m[4], __m128 v);
-
- __m128 sse_mul_ps(__m128 v, __m128 m[4]);
-
- void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
-
- void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
-
- void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
-
- void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
-
- __m128 sse_det_ps(__m128 const m[4]);
-
- __m128 sse_slow_det_ps(__m128 const m[4]);
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_matrix.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_trigonometric.hpp b/glm/detail/intrinsic_trigonometric.hpp
deleted file mode 100644
index 78888b1..0000000
--- a/glm/detail/intrinsic_trigonometric.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_trigonometric.hpp
-/// @date 2009-06-09 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-namespace glm{
-namespace detail
-{
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_trigonometric.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_trigonometric.inl b/glm/detail/intrinsic_trigonometric.inl
deleted file mode 100644
index badf934..0000000
--- a/glm/detail/intrinsic_trigonometric.inl
+++ /dev/null
@@ -1,27 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_trigonometric.inl
-/// @date 2011-06-15 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/detail/intrinsic_vector_relational.hpp b/glm/detail/intrinsic_vector_relational.hpp
deleted file mode 100644
index d34541f..0000000
--- a/glm/detail/intrinsic_vector_relational.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_vector_relational.hpp
-/// @date 2009-06-09 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#pragma once
-
-#include "setup.hpp"
-
-#if(!(GLM_ARCH & GLM_ARCH_SSE2))
-# error "SSE2 instructions not supported or enabled"
-#else
-
-namespace glm{
-namespace detail
-{
-
-}//namespace detail
-}//namespace glm
-
-#include "intrinsic_vector_relational.inl"
-
-#endif//GLM_ARCH
diff --git a/glm/detail/intrinsic_vector_relational.inl b/glm/detail/intrinsic_vector_relational.inl
deleted file mode 100644
index 4b23082..0000000
--- a/glm/detail/intrinsic_vector_relational.inl
+++ /dev/null
@@ -1,366 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_vector_relational.inl
-/// @date 2009-06-09 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-//
-//// lessThan
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type lessThan
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec2<bool>::bool_type(x.x < y.x, x.y < y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type lessThan
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec3<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type lessThan
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec4<bool>::bool_type(x.x < y.x, x.y < y.y, x.z < y.z, x.w < y.w);
-//}
-//
-//// lessThanEqual
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type lessThanEqual
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec2<bool>::bool_type(x.x <= y.x, x.y <= y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type lessThanEqual
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec3<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type lessThanEqual
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec4<bool>::bool_type(x.x <= y.x, x.y <= y.y, x.z <= y.z, x.w <= y.w);
-//}
-//
-//// greaterThan
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type greaterThan
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec2<bool>::bool_type(x.x > y.x, x.y > y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type greaterThan
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec3<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type greaterThan
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec4<bool>::bool_type(x.x > y.x, x.y > y.y, x.z > y.z, x.w > y.w);
-//}
-//
-//// greaterThanEqual
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type greaterThanEqual
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec2<bool>::bool_type(x.x >= y.x, x.y >= y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type greaterThanEqual
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec3<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type greaterThanEqual
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint);
-//
-// return typename tvec4<bool>::bool_type(x.x >= y.x, x.y >= y.y, x.z >= y.z, x.w >= y.w);
-//}
-//
-//// equal
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type equal
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec2<T, P>::bool_type(x.x == y.x, x.y == y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type equal
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec3<T, P>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type equal
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec4<T, P>::bool_type(x.x == y.x, x.y == y.y, x.z == y.z, x.w == y.w);
-//}
-//
-//// notEqual
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec2<T, P>::bool_type notEqual
-//(
-// tvec2<T, P> const & x,
-// tvec2<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec2<T, P>::bool_type(x.x != y.x, x.y != y.y);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec3<T, P>::bool_type notEqual
-//(
-// tvec3<T, P> const & x,
-// tvec3<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec3<T, P>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z);
-//}
-//
-//template <typename valType>
-//GLM_FUNC_QUALIFIER typename tvec4<T, P>::bool_type notEqual
-//(
-// tvec4<T, P> const & x,
-// tvec4<T, P> const & y
-//)
-//{
-// GLM_STATIC_ASSERT(
-// detail::type<valType>::is_float ||
-// detail::type<valType>::is_int ||
-// detail::type<valType>::is_uint ||
-// detail::type<valType>::is_bool);
-//
-// return typename tvec4<T, P>::bool_type(x.x != y.x, x.y != y.y, x.z != y.z, x.w != y.w);
-//}
-//
-//// any
-//GLM_FUNC_QUALIFIER bool any(tvec2<bool> const & x)
-//{
-// return x.x || x.y;
-//}
-//
-//GLM_FUNC_QUALIFIER bool any(tvec3<bool> const & x)
-//{
-// return x.x || x.y || x.z;
-//}
-//
-//GLM_FUNC_QUALIFIER bool any(tvec4<bool> const & x)
-//{
-// return x.x || x.y || x.z || x.w;
-//}
-//
-//// all
-//GLM_FUNC_QUALIFIER bool all(const tvec2<bool>& x)
-//{
-// return x.x && x.y;
-//}
-//
-//GLM_FUNC_QUALIFIER bool all(const tvec3<bool>& x)
-//{
-// return x.x && x.y && x.z;
-//}
-//
-//GLM_FUNC_QUALIFIER bool all(const tvec4<bool>& x)
-//{
-// return x.x && x.y && x.z && x.w;
-//}
-//
-//// not
-//GLM_FUNC_QUALIFIER tvec2<bool>::bool_type not_
-//(
-// tvec2<bool> const & v
-//)
-//{
-// return tvec2<bool>::bool_type(!v.x, !v.y);
-//}
-//
-//GLM_FUNC_QUALIFIER tvec3<bool>::bool_type not_
-//(
-// tvec3<bool> const & v
-//)
-//{
-// return tvec3<bool>::bool_type(!v.x, !v.y, !v.z);
-//}
-//
-//GLM_FUNC_QUALIFIER tvec4<bool>::bool_type not_
-//(
-// tvec4<bool> const & v
-//)
-//{
-// return tvec4<bool>::bool_type(!v.x, !v.y, !v.z, !v.w);
-//}
\ No newline at end of file
diff --git a/glm/detail/precision.hpp b/glm/detail/precision.hpp
index 7677586..aa1e3dd 100644
--- a/glm/detail/precision.hpp
+++ b/glm/detail/precision.hpp
@@ -1,45 +1,63 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/precision.hpp
-/// @date 2013-04-01 / 2013-04-01
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
+#include "setup.hpp"
+
namespace glm
{
enum precision
{
- highp,
- mediump,
- lowp,
- simd,
- defaultp = highp
+ packed_highp,
+ packed_mediump,
+ packed_lowp,
+
+# if GLM_HAS_ALIGNED_TYPE
+ aligned_highp,
+ aligned_mediump,
+ aligned_lowp,
+ aligned = aligned_highp,
+# endif
+
+ highp = packed_highp,
+ mediump = packed_mediump,
+ lowp = packed_lowp,
+ packed = packed_highp,
+
+# if GLM_HAS_ALIGNED_TYPE && defined(GLM_FORCE_ALIGNED)
+ defaultp = aligned_highp
+# else
+ defaultp = highp
+# endif
+ };
+
+namespace detail
+{
+ template <glm::precision P>
+ struct is_aligned
+ {
+ static const bool value = false;
};
+
+# if GLM_HAS_ALIGNED_TYPE
+ template<>
+ struct is_aligned<glm::aligned_lowp>
+ {
+ static const bool value = true;
+ };
+
+ template<>
+ struct is_aligned<glm::aligned_mediump>
+ {
+ static const bool value = true;
+ };
+
+ template<>
+ struct is_aligned<glm::aligned_highp>
+ {
+ static const bool value = true;
+ };
+# endif
+}//namespace detail
}//namespace glm
diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp
index 35b3b73..60910da 100644
--- a/glm/detail/setup.hpp
+++ b/glm/detail/setup.hpp
@@ -1,373 +1,57 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/setup.hpp
-/// @date 2006-11-13 / 2014-10-05
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
-#include <cassert>
-#include <cstddef>
+#if (defined(GLM_FORCE_SWIZZLE) || defined(GLM_SWIZZLE)) && defined(GLM_FORCE_UNRESTRICTED_GENTYPE)
+# error "Both GLM_FORCE_SWIZZLE and GLM_FORCE_UNRESTRICTED_GENTYPE can't be defined at the same time"
+#endif
///////////////////////////////////////////////////////////////////////////////////
-// Version
+// Messages
-#define GLM_VERSION 97
-#define GLM_VERSION_MAJOR 0
-#define GLM_VERSION_MINOR 9
-#define GLM_VERSION_PATCH 7
-#define GLM_VERSION_REVISION 6
+#ifdef GLM_MESSAGES
+# pragma message("GLM: GLM_MESSAGES is deprecated, use GLM_FORCE_MESSAGES instead")
+#endif
-#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_VERSION_DISPLAYED))
-# define GLM_MESSAGE_VERSION_DISPLAYED
-# pragma message ("GLM: version 0.9.7.6")
-#endif//GLM_MESSAGE
+#define GLM_MESSAGES_ENABLED 1
+#define GLM_MESSAGES_DISABLE 0
-///////////////////////////////////////////////////////////////////////////////////
-// Platform
-
-#define GLM_PLATFORM_UNKNOWN 0x00000000
-#define GLM_PLATFORM_WINDOWS 0x00010000
-#define GLM_PLATFORM_LINUX 0x00020000
-#define GLM_PLATFORM_APPLE 0x00040000
-//#define GLM_PLATFORM_IOS 0x00080000
-#define GLM_PLATFORM_ANDROID 0x00100000
-#define GLM_PLATFORM_CHROME_NACL 0x00200000
-#define GLM_PLATFORM_UNIX 0x00400000
-#define GLM_PLATFORM_QNXNTO 0x00800000
-#define GLM_PLATFORM_WINCE 0x01000000
-#define GLM_PLATFORM_CYGWIN 0x02000000
-
-#ifdef GLM_FORCE_PLATFORM_UNKNOWN
-# define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-#elif defined(__CYGWIN__)
-# define GLM_PLATFORM GLM_PLATFORM_CYGWIN
-#elif defined(__QNXNTO__)
-# define GLM_PLATFORM GLM_PLATFORM_QNXNTO
-#elif defined(__APPLE__)
-# define GLM_PLATFORM GLM_PLATFORM_APPLE
-#elif defined(WINCE)
-# define GLM_PLATFORM GLM_PLATFORM_WINCE
-#elif defined(_WIN32)
-# define GLM_PLATFORM GLM_PLATFORM_WINDOWS
-#elif defined(__native_client__)
-# define GLM_PLATFORM GLM_PLATFORM_CHROME_NACL
-#elif defined(__ANDROID__)
-# define GLM_PLATFORM GLM_PLATFORM_ANDROID
-#elif defined(__linux)
-# define GLM_PLATFORM GLM_PLATFORM_LINUX
-#elif defined(__unix)
-# define GLM_PLATFORM GLM_PLATFORM_UNIX
+#if defined(GLM_FORCE_MESSAGES) || defined(GLM_MESSAGES)
+# undef GLM_MESSAGES
+# define GLM_MESSAGES GLM_MESSAGES_ENABLED
#else
-# define GLM_PLATFORM GLM_PLATFORM_UNKNOWN
-#endif//
+# undef GLM_MESSAGES
+# define GLM_MESSAGES GLM_MESSAGES_DISABLE
+#endif
-// Report platform detection
-#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
-# define GLM_MESSAGE_PLATFORM_DISPLAYED
-# if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
-# pragma message("GLM: QNX platform detected")
-//# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
-//# pragma message("GLM: iOS platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
-# pragma message("GLM: Apple platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
-# pragma message("GLM: WinCE platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
-# pragma message("GLM: Windows platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
-# pragma message("GLM: Native Client detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-# pragma message("GLM: Android platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
-# pragma message("GLM: Linux platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
-# pragma message("GLM: UNIX platform detected")
-# elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
-# pragma message("GLM: platform unknown")
-# else
-# pragma message("GLM: platform not detected")
-# endif
-#endif//GLM_MESSAGE
+#include <cassert>
+#include <cstddef>
+#include "../simd/platform.h"
///////////////////////////////////////////////////////////////////////////////////
-// Compiler
-
-// User defines: GLM_FORCE_COMPILER_UNKNOWN
-// TODO ? __llvm__
-
-#define GLM_COMPILER_UNKNOWN 0x00000000
-
-// Intel
-#define GLM_COMPILER_INTEL 0x00100000
-#define GLM_COMPILER_INTEL12 0x00100010
-#define GLM_COMPILER_INTEL12_1 0x00100020
-#define GLM_COMPILER_INTEL13 0x00100030
-#define GLM_COMPILER_INTEL14 0x00100040
-#define GLM_COMPILER_INTEL15 0x00100050
-#define GLM_COMPILER_INTEL16 0x00100060
-
-// Visual C++ defines
-#define GLM_COMPILER_VC 0x01000000
-#define GLM_COMPILER_VC2010 0x01000090
-#define GLM_COMPILER_VC2012 0x010000A0
-#define GLM_COMPILER_VC2013 0x010000B0
-#define GLM_COMPILER_VC2015 0x010000C0
-
-// GCC defines
-#define GLM_COMPILER_GCC 0x02000000
-#define GLM_COMPILER_GCC44 0x020000B0
-#define GLM_COMPILER_GCC45 0x020000C0
-#define GLM_COMPILER_GCC46 0x020000D0
-#define GLM_COMPILER_GCC47 0x020000E0
-#define GLM_COMPILER_GCC48 0x020000F0
-#define GLM_COMPILER_GCC49 0x02000100
-#define GLM_COMPILER_GCC50 0x02000200
-#define GLM_COMPILER_GCC51 0x02000300
-#define GLM_COMPILER_GCC52 0x02000400
-#define GLM_COMPILER_GCC53 0x02000500
-#define GLM_COMPILER_GCC54 0x02000600
-#define GLM_COMPILER_GCC60 0x02000700
-#define GLM_COMPILER_GCC61 0x02000800
-#define GLM_COMPILER_GCC62 0x02000900
-#define GLM_COMPILER_GCC70 0x02000A00
-#define GLM_COMPILER_GCC71 0x02000B00
-#define GLM_COMPILER_GCC72 0x02000C00
-#define GLM_COMPILER_GCC80 0x02000D00
-
-// CUDA
-#define GLM_COMPILER_CUDA 0x10000000
-#define GLM_COMPILER_CUDA40 0x10000040
-#define GLM_COMPILER_CUDA41 0x10000050
-#define GLM_COMPILER_CUDA42 0x10000060
-#define GLM_COMPILER_CUDA50 0x10000070
-#define GLM_COMPILER_CUDA60 0x10000080
-#define GLM_COMPILER_CUDA65 0x10000090
-#define GLM_COMPILER_CUDA70 0x100000A0
-#define GLM_COMPILER_CUDA75 0x100000B0
-#define GLM_COMPILER_CUDA80 0x100000C0
-
-// LLVM
-#define GLM_COMPILER_LLVM 0x20000000
-#define GLM_COMPILER_LLVM32 0x20000030
-#define GLM_COMPILER_LLVM33 0x20000040
-#define GLM_COMPILER_LLVM34 0x20000050
-#define GLM_COMPILER_LLVM35 0x20000060
-#define GLM_COMPILER_LLVM36 0x20000070
-#define GLM_COMPILER_LLVM37 0x20000080
-#define GLM_COMPILER_LLVM38 0x20000090
-#define GLM_COMPILER_LLVM39 0x200000A0
-
-// Apple Clang
-#define GLM_COMPILER_APPLE_CLANG 0x40000000
-#define GLM_COMPILER_APPLE_CLANG40 0x40000010
-#define GLM_COMPILER_APPLE_CLANG41 0x40000020
-#define GLM_COMPILER_APPLE_CLANG42 0x40000030
-#define GLM_COMPILER_APPLE_CLANG50 0x40000040
-#define GLM_COMPILER_APPLE_CLANG51 0x40000050
-#define GLM_COMPILER_APPLE_CLANG60 0x40000060
-#define GLM_COMPILER_APPLE_CLANG61 0x40000070
-#define GLM_COMPILER_APPLE_CLANG70 0x40000080
-#define GLM_COMPILER_APPLE_CLANG73 0x40000090
-#define GLM_COMPILER_APPLE_CLANG80 0x400000A0
-
-// Build model
-#define GLM_MODEL_32 0x00000010
-#define GLM_MODEL_64 0x00000020
-
-// Force generic C++ compiler
-#ifdef GLM_FORCE_COMPILER_UNKNOWN
-# define GLM_COMPILER GLM_COMPILER_UNKNOWN
-
-#elif defined(__INTEL_COMPILER)
-# if __INTEL_COMPILER == 1200
-# define GLM_COMPILER GLM_COMPILER_INTEL12
-# elif __INTEL_COMPILER == 1210
-# define GLM_COMPILER GLM_COMPILER_INTEL12_1
-# elif __INTEL_COMPILER == 1300
-# define GLM_COMPILER GLM_COMPILER_INTEL13
-# elif __INTEL_COMPILER == 1400
-# define GLM_COMPILER GLM_COMPILER_INTEL14
-# elif __INTEL_COMPILER == 1500
-# define GLM_COMPILER GLM_COMPILER_INTEL15
-# elif __INTEL_COMPILER >= 1600
-# define GLM_COMPILER GLM_COMPILER_INTEL16
-# else
-# define GLM_COMPILER GLM_COMPILER_INTEL
-# endif
-
-// CUDA
-#elif defined(__CUDACC__)
-# if !defined(CUDA_VERSION) && !defined(GLM_FORCE_CUDA)
-# include <cuda.h> // make sure version is defined since nvcc does not define it itself!
-# endif
-# if CUDA_VERSION < 3000
-# error "GLM requires CUDA 3.0 or higher"
-# else
-# define GLM_COMPILER GLM_COMPILER_CUDA
-# endif
-
-// Visual C++
-#elif defined(_MSC_VER)
-# if _MSC_VER < 1600
-# error "GLM requires Visual C++ 2010 or higher"
-# elif _MSC_VER == 1600
-# define GLM_COMPILER GLM_COMPILER_VC2010
-# elif _MSC_VER == 1700
-# define GLM_COMPILER GLM_COMPILER_VC2012
-# elif _MSC_VER == 1800
-# define GLM_COMPILER GLM_COMPILER_VC2013
-# elif _MSC_VER >= 1900
-# define GLM_COMPILER GLM_COMPILER_VC2015
-# else//_MSC_VER
-# define GLM_COMPILER GLM_COMPILER_VC
-# endif//_MSC_VER
-
-// Clang
-#elif defined(__clang__)
-# if GLM_PLATFORM & GLM_PLATFORM_APPLE
-# if __clang_major__ == 4 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG40
-# elif __clang_major__ == 4 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG41
-# elif __clang_major__ == 4 && __clang_minor__ == 2
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG42
-# elif __clang_major__ == 5 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG50
-# elif __clang_major__ == 5 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG51
-# elif __clang_major__ == 6 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG60
-# elif __clang_major__ == 6 && __clang_minor__ >= 1
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG61
-# elif __clang_major__ == 7 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG70
-# elif __clang_major__ == 7 && __clang_minor__ >= 3
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG73
-# elif __clang_major__ >= 8
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG80
-# else
-# define GLM_COMPILER GLM_COMPILER_APPLE_CLANG
-# endif
-# else
-# if __clang_major__ == 3 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_LLVM30
-# elif __clang_major__ == 3 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_LLVM31
-# elif __clang_major__ == 3 && __clang_minor__ == 2
-# define GLM_COMPILER GLM_COMPILER_LLVM32
-# elif __clang_major__ == 3 && __clang_minor__ == 3
-# define GLM_COMPILER GLM_COMPILER_LLVM33
-# elif __clang_major__ == 3 && __clang_minor__ == 4
-# define GLM_COMPILER GLM_COMPILER_LLVM34
-# elif __clang_major__ == 3 && __clang_minor__ == 5
-# define GLM_COMPILER GLM_COMPILER_LLVM35
-# elif __clang_major__ == 3 && __clang_minor__ == 6
-# define GLM_COMPILER GLM_COMPILER_LLVM36
-# elif __clang_major__ == 3 && __clang_minor__ == 7
-# define GLM_COMPILER GLM_COMPILER_LLVM37
-# elif __clang_major__ == 3 && __clang_minor__ == 8
-# define GLM_COMPILER GLM_COMPILER_LLVM38
-# elif __clang_major__ == 3 && __clang_minor__ >= 9
-# define GLM_COMPILER GLM_COMPILER_LLVM39
-# elif __clang_major__ >= 4
-# define GLM_COMPILER GLM_COMPILER_LLVM39
-# else
-# define GLM_COMPILER GLM_COMPILER_LLVM
-# endif
-# endif
-
-// G++
-#elif defined(__GNUC__) || defined(__MINGW32__)
-# if (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC42)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
-# define GLM_COMPILER (GLM_COMPILER_GCC43)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
-# define GLM_COMPILER (GLM_COMPILER_GCC44)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
-# define GLM_COMPILER (GLM_COMPILER_GCC45)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-# define GLM_COMPILER (GLM_COMPILER_GCC46)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
-# define GLM_COMPILER (GLM_COMPILER_GCC47)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
-# define GLM_COMPILER (GLM_COMPILER_GCC48)
-# elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)
-# define GLM_COMPILER (GLM_COMPILER_GCC49)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC50)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC51)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC52)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3)
-# define GLM_COMPILER (GLM_COMPILER_GCC53)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4)
-# define GLM_COMPILER (GLM_COMPILER_GCC54)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC60)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC61)
-# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC62)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0)
-# define GLM_COMPILER (GLM_COMPILER_GCC70)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1)
-# define GLM_COMPILER (GLM_COMPILER_GCC71)
-# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2)
-# define GLM_COMPILER (GLM_COMPILER_GCC72)
-# elif (__GNUC__ >= 8)
-# define GLM_COMPILER (GLM_COMPILER_GCC80)
-# else
-# define GLM_COMPILER (GLM_COMPILER_GCC)
-# endif
+// Version
-#else
-# define GLM_COMPILER GLM_COMPILER_UNKNOWN
-#endif
+#define GLM_VERSION 98
+#define GLM_VERSION_MAJOR 0
+#define GLM_VERSION_MINOR 9
+#define GLM_VERSION_PATCH 8
+#define GLM_VERSION_REVISION 0
-#ifndef GLM_COMPILER
-#error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
-#endif//GLM_COMPILER
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_VERSION_DISPLAYED)
+# define GLM_MESSAGE_VERSION_DISPLAYED
+# pragma message ("GLM: version 0.9.8.0")
+#endif//GLM_MESSAGES
// Report compiler detection
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_COMPILER_DISPLAYED)
# define GLM_MESSAGE_COMPILER_DISPLAYED
# if GLM_COMPILER & GLM_COMPILER_CUDA
# pragma message("GLM: CUDA compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_VC
# pragma message("GLM: Visual C++ compiler detected")
-# elif GLM_COMPILER & GLM_COMPILER_APPLE_CLANG
+# elif GLM_COMPILER & GLM_COMPILER_CLANG
# pragma message("GLM: Clang compiler detected")
-# elif GLM_COMPILER & GLM_COMPILER_LLVM
-# pragma message("GLM: LLVM compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_INTEL
# pragma message("GLM: Intel Compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_GCC
@@ -375,13 +59,13 @@
# else
# pragma message("GLM: Compiler not detected")
# endif
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// Build model
#if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)
-# define GLM_MODEL GLM_MODEL_64
+# define GLM_MODEL GLM_MODEL_64
#elif defined(__i386__) || defined(__ppc__)
# define GLM_MODEL GLM_MODEL_32
#else
@@ -392,134 +76,45 @@
# error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
#endif//GLM_MODEL
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_MODEL_DISPLAYED)
# define GLM_MESSAGE_MODEL_DISPLAYED
# if(GLM_MODEL == GLM_MODEL_64)
# pragma message("GLM: 64 bits model")
# elif(GLM_MODEL == GLM_MODEL_32)
# pragma message("GLM: 32 bits model")
# endif//GLM_MODEL
-#endif//GLM_MESSAGE
-
-///////////////////////////////////////////////////////////////////////////////////
-// Platform
-
-// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2 GLM_FORCE_AVX2
-
-#define GLM_ARCH_PURE 0x0000
-#define GLM_ARCH_ARM 0x0001
-#define GLM_ARCH_X86 0x0002
-#define GLM_ARCH_SSE2 0x0004
-#define GLM_ARCH_SSE3 0x0008
-#define GLM_ARCH_SSE4 0x0010
-#define GLM_ARCH_AVX 0x0020
-#define GLM_ARCH_AVX2 0x0040
-#define GLM_ARCH_AVX512 0x0080 // Skylake set
-
-#if defined(GLM_FORCE_PURE)
-# define GLM_ARCH GLM_ARCH_PURE
-#elif defined(GLM_FORCE_AVX512)
-# define GLM_ARCH (GLM_ARCH_AVX512 | GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-#elif defined(GLM_FORCE_AVX2)
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-#elif defined(GLM_FORCE_AVX)
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-#elif defined(GLM_FORCE_SSE4)
-# define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-#elif defined(GLM_FORCE_SSE3)
-# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-#elif defined(GLM_FORCE_SSE2)
-# define GLM_ARCH (GLM_ARCH_SSE2)
-#elif (GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
-// This is Skylake set of instruction set
-# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512CD__) && defined(__AVX512VL__) && defined(__AVX512DQ__)
-# define GLM_ARCH (GLM_ARCH_AVX512 | GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__AVX2__)
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__AVX__)
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__SSE3__)
-# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__SSE2__)
-# define GLM_ARCH (GLM_ARCH_SSE2)
-# else
-# define GLM_ARCH GLM_ARCH_PURE
-# endif
-#elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
-# if defined(_M_ARM_FP)
-# define GLM_ARCH (GLM_ARCH_ARM)
-# elif defined(__AVX2__)
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__AVX__)
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(_M_X64)
-# define GLM_ARCH (GLM_ARCH_SSE2)
-# elif defined(_M_IX86_FP)
-# if _M_IX86_FP >= 2
-# define GLM_ARCH (GLM_ARCH_SSE2)
-# else
-# define GLM_ARCH (GLM_ARCH_PURE)
-# endif
-# else
-# define GLM_ARCH (GLM_ARCH_PURE)
-# endif
-#elif (GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))
-# if defined(__AVX2__)
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__AVX__)
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__SSE4_1__ )
-# define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__SSE3__)
-# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
-# elif defined(__SSE2__)
-# define GLM_ARCH (GLM_ARCH_SSE2)
-# else
-# define GLM_ARCH (GLM_ARCH_PURE)
-# endif
-#else
-# define GLM_ARCH GLM_ARCH_PURE
-#endif
+#endif//GLM_MESSAGES
-// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
-// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
-// To fix, we just explicitly include intrin.h here.
-#if defined(__MINGW64__) && (GLM_ARCH != GLM_ARCH_PURE)
-# include <intrin.h>
-#endif
-
-#if GLM_ARCH & GLM_ARCH_AVX2
-# include <immintrin.h>
-#endif//GLM_ARCH
-#if GLM_ARCH & GLM_ARCH_AVX
-# include <immintrin.h>
-#endif//GLM_ARCH
-#if GLM_ARCH & GLM_ARCH_SSE4
-# include <smmintrin.h>
-#endif//GLM_ARCH
-#if GLM_ARCH & GLM_ARCH_SSE3
-# include <pmmintrin.h>
-#endif//GLM_ARCH
-#if GLM_ARCH & GLM_ARCH_SSE2
-# include <emmintrin.h>
-#endif//GLM_ARCH
-
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_ARCH_DISPLAYED)
# define GLM_MESSAGE_ARCH_DISPLAYED
# if(GLM_ARCH == GLM_ARCH_PURE)
# pragma message("GLM: Platform independent code")
-# elif(GLM_ARCH & GLM_ARCH_ARM)
-# pragma message("GLM: ARM instruction set")
-# elif(GLM_ARCH & GLM_ARCH_AVX2)
+# elif(GLM_ARCH == GLM_ARCH_AVX2)
# pragma message("GLM: AVX2 instruction set")
-# elif(GLM_ARCH & GLM_ARCH_AVX)
+# elif(GLM_ARCH == GLM_ARCH_AVX)
# pragma message("GLM: AVX instruction set")
-# elif(GLM_ARCH & GLM_ARCH_SSE3)
+# elif(GLM_ARCH == GLM_ARCH_SSE42)
+# pragma message("GLM: SSE4.2 instruction set")
+# elif(GLM_ARCH == GLM_ARCH_SSE41)
+# pragma message("GLM: SSE4.1 instruction set")
+# elif(GLM_ARCH == GLM_ARCH_SSSE3)
+# pragma message("GLM: SSSE3 instruction set")
+# elif(GLM_ARCH == GLM_ARCH_SSE3)
# pragma message("GLM: SSE3 instruction set")
-# elif(GLM_ARCH & GLM_ARCH_SSE2)
+# elif(GLM_ARCH == GLM_ARCH_SSE2)
# pragma message("GLM: SSE2 instruction set")
+# elif(GLM_ARCH == GLM_ARCH_X86)
+# pragma message("GLM: x86 instruction set")
+# elif(GLM_ARCH == GLM_ARCH_NEON)
+# pragma message("GLM: NEON instruction set")
+# elif(GLM_ARCH == GLM_ARCH_ARM)
+# pragma message("GLM: ARM instruction set")
+# elif(GLM_ARCH == GLM_ARCH_MIPS)
+# pragma message("GLM: MIPS instruction set")
+# elif(GLM_ARCH == GLM_ARCH_PPC)
+# pragma message("GLM: PowerPC architechture")
# endif//GLM_ARCH
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// C++ Version
@@ -561,14 +156,14 @@
#elif defined(GLM_FORCE_CXX98)
# define GLM_LANG GLM_LANG_CXX98
#else
-# if GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)
-# if __cplusplus >= 201402L // GLM_COMPILER_LLVM34 + -std=c++14
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# if __cplusplus >= 201402L // GLM_COMPILER_CLANG34 + -std=c++14
# define GLM_LANG GLM_LANG_CXX14
-# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_LLVM33 + -std=c++1y
+# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_CLANG33 + -std=c++1y
# define GLM_LANG GLM_LANG_CXX1Y
-# elif __cplusplus >= 201103L // GLM_COMPILER_LLVM33 + -std=c++11
+# elif __cplusplus >= 201103L // GLM_COMPILER_CLANG33 + -std=c++11
# define GLM_LANG GLM_LANG_CXX11
-# elif __has_feature(cxx_static_assert) // GLM_COMPILER_LLVM29 + -std=c++11
+# elif __has_feature(cxx_static_assert) // GLM_COMPILER_CLANG29 + -std=c++11
# define GLM_LANG GLM_LANG_CXX0X
# elif __cplusplus >= 199711L
# define GLM_LANG GLM_LANG_CXX98
@@ -603,8 +198,6 @@
# else
# if __cplusplus >= 201402L
# define GLM_LANG GLM_LANG_CXX14
-//# elif GLM_COMPILER >= GLM_COMPILER_VC2015
-//# define GLM_LANG GLM_LANG_CXX1Y
# elif __cplusplus >= 201103L
# define GLM_LANG GLM_LANG_CXX11
# elif GLM_COMPILER >= GLM_COMPILER_VC2010
@@ -632,7 +225,18 @@
# else
# define GLM_LANG (GLM_LANG_CXX | GLM_MSC_EXT)
# endif
-# else // Unkown compiler
+# elif GLM_COMPILER & GLM_COMPILER_CUDA
+# ifdef _MSC_EXTENSIONS
+# define GLM_MSC_EXT GLM_LANG_CXXMS_FLAG
+# else
+# define GLM_MSC_EXT 0
+# endif
+# if GLM_COMPILER >= GLM_COMPILER_CUDA75
+# define GLM_LANG (GLM_LANG_CXX0X | GLM_MSC_EXT)
+# else
+# define GLM_LANG (GLM_LANG_CXX98 | GLM_MSC_EXT)
+# endif
+# else // Unknown compiler
# if __cplusplus >= 201402L
# define GLM_LANG GLM_LANG_CXX14
# elif __cplusplus >= 201103L
@@ -648,7 +252,7 @@
# endif
#endif
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_LANG_DISPLAYED)
# define GLM_MESSAGE_LANG_DISPLAYED
# if GLM_LANG & GLM_LANG_CXX1Z_FLAG
@@ -672,7 +276,7 @@
# if GLM_LANG & (GLM_LANG_CXXGNU_FLAG | GLM_LANG_CXXMS_FLAG)
# pragma message("GLM: Language extensions enabled")
# endif//GLM_LANG
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// Has of C++ features
@@ -681,9 +285,7 @@
// http://gcc.gnu.org/projects/cxx0x.html
// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
-#if GLM_PLATFORM == GLM_PLATFORM_ANDROID || GLM_PLATFORM == GLM_PLATFORM_CYGWIN
-# define GLM_HAS_CXX11_STL 0
-#elif GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# if defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_CXX11_STL 1
# else
@@ -697,13 +299,14 @@
#endif
// N1720
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_STATIC_ASSERT 1
#else
# define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2010))))
#endif
@@ -713,13 +316,13 @@
#else
# define GLM_HAS_EXTENDED_INTEGER_TYPE (\
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30)) || \
- ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_APPLE_CLANG) && (GLM_COMPILER >= GLM_COMPILER_APPLE_CLANG40)))
+ ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG30)))
#endif
// N2235
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)
# define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
@@ -727,33 +330,38 @@
# define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR
#else
# define GLM_HAS_CONSTEXPR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46))))
+ ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)))) // GCC 4.6 support constexpr but there is a compiler bug causing a crash
# define GLM_HAS_CONSTEXPR_PARTIAL (GLM_HAS_CONSTEXPR || ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2015)))
#endif
// N2672
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_INITIALIZER_LISTS 1
#else
# define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA75))))
#endif
-// N2544 Unrestricted unions
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)
#elif GLM_LANG & (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)
# define GLM_HAS_UNRESTRICTED_UNIONS 1
#else
# define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_LANG & GLM_LANG_CXXMS_FLAG)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA75)) || \
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)))
#endif
// N2346
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if defined(GLM_FORCE_UNRESTRICTED_GENTYPE)
+# define GLM_HAS_DEFAULTED_FUNCTIONS 0
+#elif GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_DEFAULTED_FUNCTIONS 1
@@ -761,22 +369,24 @@
# define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC44)) || \
((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
- ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12))))
+ ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12)) || \
+ (GLM_COMPILER & GLM_COMPILER_CUDA)))
#endif
// N2118
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_RVALUE_REFERENCES 1
#else
# define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
#endif
// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1
@@ -784,11 +394,12 @@
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC45)) || \
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
#endif
// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_TEMPLATE_ALIASES 1
@@ -796,11 +407,12 @@
# define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL12_1)) || \
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC47)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
#endif
// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
-#if GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_APPLE_CLANG)
+#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_RANGE_FOR 1
@@ -808,7 +420,8 @@
# define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC46)) || \
((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL13)) || \
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
#endif
//
@@ -827,7 +440,8 @@
# define GLM_HAS_MAKE_SIGNED 1
#else
# define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
- ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013))))
+ ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2013)) || \
+ ((GLM_COMPILER & GLM_COMPILER_CUDA) && (GLM_COMPILER >= GLM_COMPILER_CUDA50))))
#endif
#if GLM_ARCH == GLM_ARCH_PURE
@@ -840,25 +454,44 @@
// OpenMP
#ifdef _OPENMP
# if GLM_COMPILER & GLM_COMPILER_GCC
-# if GLM_COMPILER >= GLM_COMPILER_GCC47
+# if GLM_COMPILER >= GLM_COMPILER_GCC61
+# define GLM_HAS_OPENMP 45
+# elif GLM_COMPILER >= GLM_COMPILER_GCC49
+# define GLM_HAS_OPENMP 40
+# elif GLM_COMPILER >= GLM_COMPILER_GCC47
# define GLM_HAS_OPENMP 31
# elif GLM_COMPILER >= GLM_COMPILER_GCC44
# define GLM_HAS_OPENMP 30
# elif GLM_COMPILER >= GLM_COMPILER_GCC42
# define GLM_HAS_OPENMP 25
+# else
+# define GLM_HAS_OPENMP 0
# endif
-# endif// GLM_COMPILER & GLM_COMPILER_GCC
-
-# if GLM_COMPILER & GLM_COMPILER_VC
+# elif GLM_COMPILER & GLM_COMPILER_CLANG
+# if GLM_COMPILER >= GLM_COMPILER_CLANG38
+# define GLM_HAS_OPENMP 31
+# else
+# define GLM_HAS_OPENMP 0
+# endif
+# elif GLM_COMPILER & GLM_COMPILER_VC
# if GLM_COMPILER >= GLM_COMPILER_VC2010
# define GLM_HAS_OPENMP 20
+# else
+# define GLM_HAS_OPENMP 0
+# endif
+# elif GLM_COMPILER & GLM_COMPILER_INTEL
+# if GLM_COMPILER >= GLM_COMPILER_INTEL16
+# define GLM_HAS_OPENMP 40
+# elif GLM_COMPILER >= GLM_COMPILER_INTEL12
+# define GLM_HAS_OPENMP 31
+# else
+# define GLM_HAS_OPENMP 0
# endif
+# else
+# define GLM_HAS_OPENMP 0
# endif// GLM_COMPILER & GLM_COMPILER_VC
#endif
-// Not standard
-#define GLM_HAS_ANONYMOUS_UNION (GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
///////////////////////////////////////////////////////////////////////////////////
// Static assert
@@ -894,9 +527,12 @@
# if GLM_COMPILER & GLM_COMPILER_VC
# define GLM_INLINE __forceinline
# define GLM_NEVER_INLINE __declspec((noinline))
-# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM)
+# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
# define GLM_INLINE inline __attribute__((__always_inline__))
# define GLM_NEVER_INLINE __attribute__((__noinline__))
+# elif GLM_COMPILER & GLM_COMPILER_CUDA
+# define GLM_INLINE __forceinline__
+# define GLM_NEVER_INLINE __noinline__
# else
# define GLM_INLINE inline
# define GLM_NEVER_INLINE
@@ -912,16 +548,94 @@
///////////////////////////////////////////////////////////////////////////////////
// Swizzle operators
-// User defines: GLM_SWIZZLE
+// User defines: GLM_FORCE_SWIZZLE
+
+#ifdef GLM_SWIZZLE
+# pragma message("GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead")
+#endif
+
+#define GLM_SWIZZLE_ENABLED 1
+#define GLM_SWIZZLE_DISABLE 0
+
+#if defined(GLM_FORCE_SWIZZLE) || defined(GLM_SWIZZLE)
+# undef GLM_SWIZZLE
+# define GLM_SWIZZLE GLM_SWIZZLE_ENABLED
+#else
+# undef GLM_SWIZZLE
+# define GLM_SWIZZLE GLM_SWIZZLE_DISABLE
+#endif
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED)
# define GLM_MESSAGE_SWIZZLE_DISPLAYED
-# if defined(GLM_SWIZZLE)
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
# pragma message("GLM: Swizzling operators enabled")
# else
# pragma message("GLM: Swizzling operators disabled, #define GLM_SWIZZLE to enable swizzle operators")
# endif
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
+
+///////////////////////////////////////////////////////////////////////////////////
+// Allows using not basic types as genType
+
+// #define GLM_FORCE_UNRESTRICTED_GENTYPE
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED)
+# define GLM_MESSAGE_UNRESTRICTED_GENTYPE_DISPLAYED
+# ifdef GLM_FORCE_UNRESTRICTED_GENTYPE
+# pragma message("GLM: Use unrestricted genType")
+# endif
+#endif//GLM_MESSAGES
+
+///////////////////////////////////////////////////////////////////////////////////
+// Clip control
+
+#ifdef GLM_DEPTH_ZERO_TO_ONE // Legacy 0.9.8 development
+# error Define GLM_FORCE_DEPTH_ZERO_TO_ONE instead of GLM_DEPTH_ZERO_TO_ONE to use 0 to 1 clip space.
+#endif
+
+#define GLM_DEPTH_ZERO_TO_ONE 0x00000001
+#define GLM_DEPTH_NEGATIVE_ONE_TO_ONE 0x00000002
+
+#ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE
+# define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_ZERO_TO_ONE
+#else
+# define GLM_DEPTH_CLIP_SPACE GLM_DEPTH_NEGATIVE_ONE_TO_ONE
+#endif
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_DEPTH_DISPLAYED)
+# define GLM_MESSAGE_DEPTH_DISPLAYED
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+# pragma message("GLM: Depth clip space: Zero to one")
+# else
+# pragma message("GLM: Depth clip space: negative one to one")
+# endif
+#endif//GLM_MESSAGES
+
+///////////////////////////////////////////////////////////////////////////////////
+// Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM
+// to use left handed coordinate system by default.
+
+#ifdef GLM_LEFT_HANDED // Legacy 0.9.8 development
+# error Define GLM_FORCE_LEFT_HANDED instead of GLM_LEFT_HANDED left handed coordinate system by default.
+#endif
+
+#define GLM_LEFT_HANDED 0x00000001 // For DirectX, Metal, Vulkan
+#define GLM_RIGHT_HANDED 0x00000002 // For OpenGL, default in GLM
+
+#ifdef GLM_FORCE_LEFT_HANDED
+# define GLM_COORDINATE_SYSTEM GLM_LEFT_HANDED
+#else
+# define GLM_COORDINATE_SYSTEM GLM_RIGHT_HANDED
+#endif
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_HANDED_DISPLAYED)
+# define GLM_MESSAGE_HANDED_DISPLAYED
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
+# pragma message("GLM: Coordinate system: left handed")
+# else
+# pragma message("GLM: Coordinate system: right handed")
+# endif
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// Qualifiers
@@ -931,22 +645,45 @@
# define GLM_ALIGN(x) __declspec(align(x))
# define GLM_ALIGNED_STRUCT(x) struct __declspec(align(x))
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name
-# define GLM_RESTRICT __declspec(restrict)
-# define GLM_RESTRICT_VAR __restrict
-#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)
+# define GLM_RESTRICT_FUNC __declspec(restrict)
+# define GLM_RESTRICT __restrict
+# if GLM_COMPILER >= GLM_COMPILER_VC2013
+# define GLM_VECTOR_CALL __vectorcall
+# else
+# define GLM_VECTOR_CALL
+# endif
+#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)
# define GLM_DEPRECATED __attribute__((__deprecated__))
# define GLM_ALIGN(x) __attribute__((aligned(x)))
# define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
+# define GLM_RESTRICT_FUNC __restrict__
+# define GLM_RESTRICT __restrict__
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# if GLM_COMPILER >= GLM_COMPILER_CLANG37
+# define GLM_VECTOR_CALL __vectorcall
+# else
+# define GLM_VECTOR_CALL
+# endif
+# else
+# define GLM_VECTOR_CALL
+# endif
+#elif GLM_COMPILER & GLM_COMPILER_CUDA
+# define GLM_DEPRECATED
+# define GLM_ALIGN(x) __align__(x)
+# define GLM_ALIGNED_STRUCT(x) struct __align__(x)
+# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)
+# define GLM_RESTRICT_FUNC __restrict__
# define GLM_RESTRICT __restrict__
-# define GLM_RESTRICT_VAR __restrict__
+# define GLM_VECTOR_CALL
#else
# define GLM_DEPRECATED
# define GLM_ALIGN
# define GLM_ALIGNED_STRUCT(x) struct
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name
+# define GLM_RESTRICT_FUNC
# define GLM_RESTRICT
-# define GLM_RESTRICT_VAR
+# define GLM_VECTOR_CALL
#endif//GLM_COMPILER
#if GLM_HAS_DEFAULTED_FUNCTIONS
@@ -963,12 +700,24 @@
#if GLM_HAS_CONSTEXPR
# define GLM_CONSTEXPR constexpr
+# define GLM_CONSTEXPR_CTOR constexpr
# define GLM_RELAXED_CONSTEXPR constexpr
+#elif GLM_HAS_CONSTEXPR_PARTIAL
+# define GLM_CONSTEXPR constexpr
+# define GLM_CONSTEXPR_CTOR
+# define GLM_RELAXED_CONSTEXPR const
#else
# define GLM_CONSTEXPR
+# define GLM_CONSTEXPR_CTOR
# define GLM_RELAXED_CONSTEXPR const
#endif
+#if GLM_ARCH == GLM_ARCH_PURE
+# define GLM_CONSTEXPR_SIMD GLM_CONSTEXPR
+#else
+# define GLM_CONSTEXPR_SIMD
+#endif
+
#ifdef GLM_FORCE_EXPLICIT_CTOR
# define GLM_EXPLICIT explicit
#else
@@ -976,6 +725,10 @@
#endif
///////////////////////////////////////////////////////////////////////////////////
+
+#define GLM_HAS_ALIGNED_TYPE GLM_HAS_UNRESTRICTED_UNIONS
+
+///////////////////////////////////////////////////////////////////////////////////
// Length type
// User defines: GLM_FORCE_SIZE_T_LENGTH GLM_FORCE_SIZE_FUNC
@@ -983,42 +736,21 @@
namespace glm
{
using std::size_t;
-# if defined(GLM_FORCE_SIZE_T_LENGTH) || defined(GLM_FORCE_SIZE_FUNC)
+# if defined(GLM_FORCE_SIZE_T_LENGTH)
typedef size_t length_t;
# else
typedef int length_t;
# endif
-
-namespace detail
-{
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t component_count_t;
-# else
- typedef length_t component_count_t;
-# endif
-
- template <typename genType>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR component_count_t component_count(genType const & m)
- {
-# ifdef GLM_FORCE_SIZE_FUNC
- return m.size();
-# else
- return m.length();
-# endif
- }
-}//namespace detail
}//namespace glm
-#if defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_FORCE_SIZE_T_LENGTH)
# define GLM_MESSAGE_FORCE_SIZE_T_LENGTH
-# if defined GLM_FORCE_SIZE_FUNC
-# pragma message("GLM: .length() is replaced by .size() and returns a std::size_t")
-# elif defined GLM_FORCE_SIZE_T_LENGTH
+# if defined GLM_FORCE_SIZE_T_LENGTH
# pragma message("GLM: .length() returns glm::length_t, a typedef of std::size_t")
# else
# pragma message("GLM: .length() returns glm::length_t, a typedef of int following the GLSL specification")
# endif
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// countof
diff --git a/glm/detail/type_float.hpp b/glm/detail/type_float.hpp
index fa6c15c..83606dd 100644
--- a/glm/detail/type_float.hpp
+++ b/glm/detail/type_float.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_float.hpp
-/// @date 2008-08-22 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/type_gentype.hpp b/glm/detail/type_gentype.hpp
index 9583a6c..b415fed 100644
--- a/glm/detail/type_gentype.hpp
+++ b/glm/detail/type_gentype.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_gentype.hpp
-/// @date 2008-10-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/type_gentype.inl b/glm/detail/type_gentype.inl
index 684caa4..4ec764e 100644
--- a/glm/detail/type_gentype.inl
+++ b/glm/detail/type_gentype.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_gentype.inl
-/// @date 2008-10-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail{
diff --git a/glm/detail/type_half.hpp b/glm/detail/type_half.hpp
index 3066d53..1a345e5 100644
--- a/glm/detail/type_half.hpp
+++ b/glm/detail/type_half.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_half.hpp
-/// @date 2008-08-17 / 2011-09-20
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/detail/type_half.inl b/glm/detail/type_half.inl
index a9c57f7..fe304ee 100644
--- a/glm/detail/type_half.inl
+++ b/glm/detail/type_half.inl
@@ -1,38 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-///
-/// This half implementation is based on OpenEXR which is Copyright (c) 2002,
-/// Industrial Light & Magic, a division of Lucas Digital Ltd. LLC
-///
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_half.inl
-/// @date 2008-08-17 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail
diff --git a/glm/detail/type_int.hpp b/glm/detail/type_int.hpp
index af6d556..829dfc8 100644
--- a/glm/detail/type_int.hpp
+++ b/glm/detail/type_int.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_int.hpp
-/// @date 2008-08-22 / 2013-03-30
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -58,12 +29,21 @@ namespace detail
# if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
typedef int64_t sint64;
typedef uint64_t uint64;
+
# elif GLM_COMPILER & GLM_COMPILER_VC
typedef signed __int64 sint64;
typedef unsigned __int64 uint64;
+
# elif GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic ignored "-Wlong-long"
__extension__ typedef signed long long sint64;
__extension__ typedef unsigned long long uint64;
+
+# elif (GLM_COMPILER & GLM_COMPILER_CLANG)
+# pragma clang diagnostic ignored "-Wc++11-long-long"
+ typedef signed long long sint64;
+ typedef unsigned long long uint64;
+
# else//unknown compiler
typedef signed long long sint64;
typedef unsigned long long uint64;
@@ -120,13 +100,7 @@ namespace detail
{
typedef long type;
};
-
- template <>
- struct make_signed<long long>
- {
- typedef long long type;
- };
-
+
template <>
struct make_signed<unsigned char>
{
@@ -151,12 +125,6 @@ namespace detail
typedef long type;
};
- template <>
- struct make_signed<unsigned long long>
- {
- typedef long long type;
- };
-
template <typename genType>
struct make_unsigned
{};
@@ -186,12 +154,6 @@ namespace detail
};
template <>
- struct make_unsigned<long long>
- {
- typedef unsigned long long type;
- };
-
- template <>
struct make_unsigned<unsigned char>
{
typedef unsigned char type;
@@ -216,6 +178,24 @@ namespace detail
};
template <>
+ struct make_signed<long long>
+ {
+ typedef long long type;
+ };
+
+ template <>
+ struct make_signed<unsigned long long>
+ {
+ typedef long long type;
+ };
+
+ template <>
+ struct make_unsigned<long long>
+ {
+ typedef unsigned long long type;
+ };
+
+ template <>
struct make_unsigned<unsigned long long>
{
typedef unsigned long long type;
@@ -287,7 +267,7 @@ namespace detail
#elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
typedef lowp_int int_t;
#else
-# error "GLM error: multiple default precision requested for signed interger types"
+# error "GLM error: multiple default precision requested for signed integer types"
#endif
#if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
@@ -299,7 +279,7 @@ namespace detail
#elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
typedef lowp_uint uint_t;
#else
-# error "GLM error: multiple default precision requested for unsigned interger types"
+# error "GLM error: multiple default precision requested for unsigned integer types"
#endif
/// Unsigned integer type.
diff --git a/glm/detail/type_mat.hpp b/glm/detail/type_mat.hpp
index 221505e..6c812f0 100644
--- a/glm/detail/type_mat.hpp
+++ b/glm/detail/type_mat.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat.hpp
-/// @date 2010-01-26 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -54,6 +25,9 @@ namespace detail
template <typename T, precision P> struct tmat4x3;
template <typename T, precision P> struct tmat4x4;
+ template <typename T, precision P, template <typename, precision> class matType>
+ GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
+
/// @addtogroup core_precision
/// @{
diff --git a/glm/detail/type_mat.inl b/glm/detail/type_mat.inl
index 6680af3..70fef92 100644
--- a/glm/detail/type_mat.inl
+++ b/glm/detail/type_mat.inl
@@ -1,32 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat.inl
-/// @date 2011-06-15 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/detail/type_mat2x2.hpp b/glm/detail/type_mat2x2.hpp
index a467bea..42070c2 100644
--- a/glm/detail/type_mat2x2.hpp
+++ b/glm/detail/type_mat2x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x2.hpp
-/// @date 2005-01-27 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,18 +20,6 @@ namespace glm
typedef tmat2x2<T, P> transpose_type;
typedef T value_type;
- template <typename U, precision Q>
- friend tvec2<U, Q> operator/(tmat2x2<U, Q> const & m, tvec2<U, Q> const & v);
- template <typename U, precision Q>
- friend tvec2<U, Q> operator/(tvec2<U, Q> const & v, tmat2x2<U, Q> const & m);
-
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 2;
- static GLM_RELAXED_CONSTEXPR length_t cols = 2;
- static GLM_RELAXED_CONSTEXPR length_t rows = 2;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[2];
@@ -72,8 +31,8 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat2x2(tmat2x2<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x2(ctor);
- GLM_FUNC_DECL explicit tmat2x2(T const & x);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x2(ctor);
+ GLM_FUNC_DECL explicit tmat2x2(T scalar);
GLM_FUNC_DECL tmat2x2(
T const & x1, T const & y1,
T const & x2, T const & y2);
@@ -98,30 +57,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x2<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x2(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -165,28 +116,28 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(T const & s, tmat2x2<T, P> const & m);
+ GLM_FUNC_DECL tmat2x2<T, P> operator+(T scalar, tmat2x2<T, P> const & m);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ GLM_FUNC_DECL tmat2x2<T, P> operator+(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(T const & s, tmat2x2<T, P> const & m);
+ GLM_FUNC_DECL tmat2x2<T, P> operator-(T scalar, tmat2x2<T, P> const & m);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ GLM_FUNC_DECL tmat2x2<T, P> operator-(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(T const & s, tmat2x2<T, P> const & m);
+ GLM_FUNC_DECL tmat2x2<T, P> operator*(T scalar, tmat2x2<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator*(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
@@ -195,7 +146,7 @@ namespace glm
GLM_FUNC_DECL typename tmat2x2<T, P>::row_type operator*(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
+ GLM_FUNC_DECL tmat2x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat2x2<T, P> const & m2);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat3x2<T, P> const & m2);
@@ -204,10 +155,10 @@ namespace glm
GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat2x2<T, P> const & m1, tmat4x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x2<T, P> operator/(T const & s, tmat2x2<T, P> const & m);
+ GLM_FUNC_DECL tmat2x2<T, P> operator/(T scalar, tmat2x2<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v);
diff --git a/glm/detail/type_mat2x2.inl b/glm/detail/type_mat2x2.inl
index 3b87374..c9ff528 100644
--- a/glm/detail/type_mat2x2.inl
+++ b/glm/detail/type_mat2x2.inl
@@ -1,55 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x2.inl
-/// @date 2005-01-16 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-namespace glm{
-namespace detail
-{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> compute_inverse(tmat2x2<T, P> const & m)
- {
- T OneOverDeterminant = static_cast<T>(1) / (
- + m[0][0] * m[1][1]
- - m[1][0] * m[0][1]);
-
- tmat2x2<T, P> Inverse(
- + m[1][1] * OneOverDeterminant,
- - m[0][1] * OneOverDeterminant,
- - m[1][0] * OneOverDeterminant,
- + m[0][0] * OneOverDeterminant);
-
- return Inverse;
- }
-}//namespace detail
+#include "func_matrix.hpp"
+namespace glm
+{
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
@@ -81,14 +36,14 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x2<T, P>::tmat2x2(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(T const & s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P>::tmat2x2(T scalar)
{
- this->value[0] = col_type(s, 0);
- this->value[1] = col_type(0, s);
+ this->value[0] = col_type(scalar, 0);
+ this->value[1] = col_type(0, scalar);
}
template <typename T, precision P>
@@ -199,47 +154,25 @@ namespace detail
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2<T, P>::size_type tmat2x2<T, P>::size() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type const & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2<T, P>::length_type tmat2x2<T, P>::length() const
- {
- return 2;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x2<T, P>::length_type tmat2x2<T, P>::length() const
+ {
+ return 2;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type const & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type const & tmat2x2<T, P>::operator[](typename tmat2x2<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -264,10 +197,10 @@ namespace detail
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator+=(U s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator+=(U scalar)
{
- this->value[0] += s;
- this->value[1] += s;
+ this->value[0] += scalar;
+ this->value[1] += scalar;
return *this;
}
@@ -282,10 +215,10 @@ namespace detail
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator-=(U s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator-=(U scalar)
{
- this->value[0] -= s;
- this->value[1] -= s;
+ this->value[0] -= scalar;
+ this->value[1] -= scalar;
return *this;
}
@@ -300,10 +233,10 @@ namespace detail
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator*=(U s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator*=(U scalar)
{
- this->value[0] *= s;
- this->value[1] *= s;
+ this->value[0] *= scalar;
+ this->value[1] *= scalar;
return *this;
}
@@ -316,10 +249,10 @@ namespace detail
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator/=(U s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator/=(U scalar)
{
- this->value[0] /= s;
- this->value[1] /= s;
+ this->value[0] /= scalar;
+ this->value[1] /= scalar;
return *this;
}
@@ -327,7 +260,7 @@ namespace detail
template <typename U>
GLM_FUNC_QUALIFIER tmat2x2<T, P>& tmat2x2<T, P>::operator/=(tmat2x2<U, P> const & m)
{
- return (*this = *this * detail::compute_inverse<T, P>(m));
+ return *this *= inverse(m);
}
// -- Increment and decrement operators --
@@ -383,19 +316,19 @@ namespace detail
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(tmat2x2<T, P> const & m, T scalar)
{
return tmat2x2<T, P>(
- m[0] + s,
- m[1] + s);
+ m[0] + scalar,
+ m[1] + scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(T const & s, tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator+(T scalar, tmat2x2<T, P> const & m)
{
return tmat2x2<T, P>(
- m[0] + s,
- m[1] + s);
+ m[0] + scalar,
+ m[1] + scalar);
}
template <typename T, precision P>
@@ -407,19 +340,19 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(tmat2x2<T, P> const & m, T scalar)
{
return tmat2x2<T, P>(
- m[0] - s,
- m[1] - s);
+ m[0] - scalar,
+ m[1] - scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(T const & s, tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator-(T scalar, tmat2x2<T, P> const & m)
{
return tmat2x2<T, P>(
- s - m[0],
- s - m[1]);
+ scalar - m[0],
+ scalar - m[1]);
}
template <typename T, precision P>
@@ -431,19 +364,19 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(tmat2x2<T, P> const & m, T scalar)
{
return tmat2x2<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(T const & s, tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator*(T scalar, tmat2x2<T, P> const & m)
{
return tmat2x2<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
@@ -507,31 +440,31 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(tmat2x2<T, P> const & m, T scalar)
{
return tmat2x2<T, P>(
- m[0] / s,
- m[1] / s);
+ m[0] / scalar,
+ m[1] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(T const & s, tmat2x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x2<T, P> operator/(T scalar, tmat2x2<T, P> const & m)
{
return tmat2x2<T, P>(
- s / m[0],
- s / m[1]);
+ scalar / m[0],
+ scalar / m[1]);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::col_type operator/(tmat2x2<T, P> const & m, typename tmat2x2<T, P>::row_type const & v)
{
- return detail::compute_inverse<T, P>(m) * v;
+ return inverse(m) * v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat2x2<T, P>::row_type operator/(typename tmat2x2<T, P>::col_type const & v, tmat2x2<T, P> const & m)
{
- return v * detail::compute_inverse<T, P>(m);
+ return v * inverse(m);
}
template <typename T, precision P>
diff --git a/glm/detail/type_mat2x3.hpp b/glm/detail/type_mat2x3.hpp
index 7ead9f8..4286541 100644
--- a/glm/detail/type_mat2x3.hpp
+++ b/glm/detail/type_mat2x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x3.hpp
-/// @date 2006-10-01 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat3x2<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 2;
- static GLM_RELAXED_CONSTEXPR length_t cols = 2;
- static GLM_RELAXED_CONSTEXPR length_t rows = 3;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[2];
@@ -68,11 +32,11 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat2x3(tmat2x3<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x3(ctor);
- GLM_FUNC_DECL explicit tmat2x3(T const & s);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x3(ctor);
+ GLM_FUNC_DECL explicit tmat2x3(T scalar);
GLM_FUNC_DECL tmat2x3(
- T const & x0, T const & y0, T const & z0,
- T const & x1, T const & y1, T const & z1);
+ T x0, T y0, T z0,
+ T x1, T y1, T z1);
GLM_FUNC_DECL tmat2x3(
col_type const & v0,
col_type const & v1);
@@ -81,8 +45,8 @@ namespace glm
template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
GLM_FUNC_DECL tmat2x3(
- X1 const & x1, Y1 const & y1, Z1 const & z1,
- X2 const & x2, Y2 const & y2, Z2 const & z2);
+ X1 x1, Y1 y1, Z1 z1,
+ X2 x2, Y2 y2, Z2 z2);
template <typename U, typename V>
GLM_FUNC_DECL tmat2x3(
@@ -94,30 +58,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x3<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x3(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -157,22 +113,22 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat2x3<T, P> operator+(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat2x3<T, P> operator-(tmat2x3<T, P> const & m1, tmat2x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator*(T const & s, tmat2x3<T, P> const & m);
+ GLM_FUNC_DECL tmat2x3<T, P> operator*(T scalar, tmat2x3<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat2x3<T, P>::col_type operator*(tmat2x3<T, P> const & m, typename tmat2x3<T, P>::row_type const & v);
@@ -190,10 +146,10 @@ namespace glm
GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat2x3<T, P> const & m1, tmat4x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x3<T, P> operator/(T const & s, tmat2x3<T, P> const & m);
+ GLM_FUNC_DECL tmat2x3<T, P> operator/(T scalar, tmat2x3<T, P> const & m);
// -- Boolean operators --
diff --git a/glm/detail/type_mat2x3.inl b/glm/detail/type_mat2x3.inl
index 56d10c7..e2a3546 100644
--- a/glm/detail/type_mat2x3.inl
+++ b/glm/detail/type_mat2x3.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x3.inl
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -63,21 +34,21 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x3<T, P>::tmat2x3(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(T const & s)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(T scalar)
{
- this->value[0] = col_type(s, 0, 0);
- this->value[1] = col_type(0, s, 0);
+ this->value[0] = col_type(scalar, 0, 0);
+ this->value[1] = col_type(0, scalar, 0);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3
(
- T const & x0, T const & y0, T const & z0,
- T const & x1, T const & y1, T const & z1
+ T x0, T y0, T z0,
+ T x1, T y1, T z1
)
{
this->value[0] = col_type(x0, y0, z0);
@@ -99,8 +70,8 @@ namespace glm
typename X2, typename Y2, typename Z2>
GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3
(
- X1 const & x1, Y1 const & y1, Z1 const & z1,
- X2 const & x2, Y2 const & y2, Z2 const & z2
+ X1 x1, Y1 y1, Z1 z1,
+ X2 x2, Y2 y2, Z2 z2
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1), value_type(z1));
@@ -133,7 +104,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P>::tmat2x3(tmat3x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
this->value[1] = col_type(m[1]);
@@ -183,47 +154,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3<T, P>::size_type tmat2x3<T, P>::size() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type const & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3<T, P>::length_type tmat2x3<T, P>::length() const
- {
- return 2;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x3<T, P>::length_type tmat2x3<T, P>::length() const
+ {
+ return 2;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type const & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x3<T, P>::col_type const & tmat2x3<T, P>::operator[](typename tmat2x3<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -353,11 +302,11 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator+(tmat2x3<T, P> const & m, T scalar)
{
return tmat2x3<T, P>(
- m[0] + s,
- m[1] + s);
+ m[0] + scalar,
+ m[1] + scalar);
}
template <typename T, precision P>
@@ -369,11 +318,11 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator-(tmat2x3<T, P> const & m, T scalar)
{
return tmat2x3<T, P>(
- m[0] - s,
- m[1] - s);
+ m[0] - scalar,
+ m[1] - scalar);
}
template <typename T, precision P>
@@ -385,19 +334,19 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(tmat2x3<T, P> const & m, T scalar)
{
return tmat2x3<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(T const & s, tmat2x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator*(T scalar, tmat2x3<T, P> const & m)
{
return tmat2x3<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
@@ -484,19 +433,19 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(tmat2x3<T, P> const & m, T scalar)
{
return tmat2x3<T, P>(
- m[0] / s,
- m[1] / s);
+ m[0] / scalar,
+ m[1] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(T const & s, tmat2x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x3<T, P> operator/(T scalar, tmat2x3<T, P> const & m)
{
return tmat2x3<T, P>(
- s / m[0],
- s / m[1]);
+ scalar / m[0],
+ scalar / m[1]);
}
// -- Boolean operators --
diff --git a/glm/detail/type_mat2x4.hpp b/glm/detail/type_mat2x4.hpp
index 639e654..5f1cc5b 100644
--- a/glm/detail/type_mat2x4.hpp
+++ b/glm/detail/type_mat2x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x4.hpp
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat4x2<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 2;
- static GLM_RELAXED_CONSTEXPR length_t cols = 2;
- static GLM_RELAXED_CONSTEXPR length_t rows = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[2];
@@ -68,11 +32,11 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat2x4(tmat2x4<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x4(ctor);
- GLM_FUNC_DECL explicit tmat2x4(T const & s);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat2x4(ctor);
+ GLM_FUNC_DECL explicit tmat2x4(T scalar);
GLM_FUNC_DECL tmat2x4(
- T const & x0, T const & y0, T const & z0, T const & w0,
- T const & x1, T const & y1, T const & z1, T const & w1);
+ T x0, T y0, T z0, T w0,
+ T x1, T y1, T z1, T w1);
GLM_FUNC_DECL tmat2x4(
col_type const & v0,
col_type const & v1);
@@ -83,8 +47,8 @@ namespace glm
typename X1, typename Y1, typename Z1, typename W1,
typename X2, typename Y2, typename Z2, typename W2>
GLM_FUNC_DECL tmat2x4(
- X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
- X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
+ X1 x1, Y1 y1, Z1 z1, W1 w1,
+ X2 x2, Y2 y2, Z2 z2, W2 w2);
template <typename U, typename V>
GLM_FUNC_DECL tmat2x4(
@@ -96,30 +60,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x4<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat2x4(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -159,22 +115,22 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat2x4<T, P> operator+(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat2x4<T, P> operator-(tmat2x4<T, P> const & m1, tmat2x4<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator*(T const & s, tmat2x4<T, P> const & m);
+ GLM_FUNC_DECL tmat2x4<T, P> operator*(T scalar, tmat2x4<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat2x4<T, P>::col_type operator*(tmat2x4<T, P> const & m, typename tmat2x4<T, P>::row_type const & v);
@@ -192,10 +148,10 @@ namespace glm
GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat2x4<T, P> const & m1, tmat3x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat2x4<T, P> operator/(T const & s, tmat2x4<T, P> const & m);
+ GLM_FUNC_DECL tmat2x4<T, P> operator/(T scalar, tmat2x4<T, P> const & m);
// -- Boolean operators --
diff --git a/glm/detail/type_mat2x4.inl b/glm/detail/type_mat2x4.inl
index 62616eb..20cd7dc 100644
--- a/glm/detail/type_mat2x4.inl
+++ b/glm/detail/type_mat2x4.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat2x4.inl
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -63,22 +34,22 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat2x4<T, P>::tmat2x4(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(T const & s)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4(T scalar)
{
value_type const Zero(0);
- this->value[0] = col_type(s, Zero, Zero, Zero);
- this->value[1] = col_type(Zero, s, Zero, Zero);
+ this->value[0] = col_type(scalar, Zero, Zero, Zero);
+ this->value[1] = col_type(Zero, scalar, Zero, Zero);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4
(
- T const & x0, T const & y0, T const & z0, T const & w0,
- T const & x1, T const & y1, T const & z1, T const & w1
+ T x0, T y0, T z0, T w0,
+ T x1, T y1, T z1, T w1
)
{
this->value[0] = col_type(x0, y0, z0, w0);
@@ -100,8 +71,8 @@ namespace glm
typename X2, typename Y2, typename Z2, typename W2>
GLM_FUNC_QUALIFIER tmat2x4<T, P>::tmat2x4
(
- X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
- X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2
+ X1 x1, Y1 y1, Z1 z1, W1 w1,
+ X2 x2, Y2 y2, Z2 z2, W2 w2
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1), value_type(z1), value_type(w1));
@@ -184,47 +155,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4<T, P>::size_type tmat2x4<T, P>::size() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type const & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4<T, P>::length_type tmat2x4<T, P>::length() const
- {
- return 2;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat2x4<T, P>::length_type tmat2x4<T, P>::length() const
+ {
+ return 2;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type const & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat2x4<T, P>::col_type const & tmat2x4<T, P>::operator[](typename tmat2x4<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -354,11 +303,11 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator+(tmat2x4<T, P> const & m, T scalar)
{
return tmat2x4<T, P>(
- m[0] + s,
- m[1] + s);
+ m[0] + scalar,
+ m[1] + scalar);
}
template <typename T, precision P>
@@ -370,11 +319,11 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator-(tmat2x4<T, P> const & m, T scalar)
{
return tmat2x4<T, P>(
- m[0] - s,
- m[1] - s);
+ m[0] - scalar,
+ m[1] - scalar);
}
template <typename T, precision P>
@@ -386,19 +335,19 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(tmat2x4<T, P> const & m, T scalar)
{
return tmat2x4<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(T const & s, tmat2x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator*(T scalar, tmat2x4<T, P> const & m)
{
return tmat2x4<T, P>(
- m[0] * s,
- m[1] * s);
+ m[0] * scalar,
+ m[1] * scalar);
}
template <typename T, precision P>
@@ -493,19 +442,19 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(tmat2x4<T, P> const & m, T scalar)
{
return tmat2x4<T, P>(
- m[0] / s,
- m[1] / s);
+ m[0] / scalar,
+ m[1] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(T const & s, tmat2x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat2x4<T, P> operator/(T scalar, tmat2x4<T, P> const & m)
{
return tmat2x4<T, P>(
- s / m[0],
- s / m[1]);
+ scalar / m[0],
+ scalar / m[1]);
}
// -- Boolean operators --
diff --git a/glm/detail/type_mat3x2.hpp b/glm/detail/type_mat3x2.hpp
index a3dce0b..1dd84d1 100644
--- a/glm/detail/type_mat3x2.hpp
+++ b/glm/detail/type_mat3x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x2.hpp
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat2x3<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 3;
- static GLM_RELAXED_CONSTEXPR length_t cols = 3;
- static GLM_RELAXED_CONSTEXPR length_t rows = 2;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[3];
@@ -68,12 +32,12 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat3x2(tmat3x2<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x2(ctor);
- GLM_FUNC_DECL explicit tmat3x2(T const & s);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x2(ctor);
+ GLM_FUNC_DECL explicit tmat3x2(T scalar);
GLM_FUNC_DECL tmat3x2(
- T const & x0, T const & y0,
- T const & x1, T const & y1,
- T const & x2, T const & y2);
+ T x0, T y0,
+ T x1, T y1,
+ T x2, T y2);
GLM_FUNC_DECL tmat3x2(
col_type const & v0,
col_type const & v1,
@@ -86,9 +50,9 @@ namespace glm
typename X2, typename Y2,
typename X3, typename Y3>
GLM_FUNC_DECL tmat3x2(
- X1 const & x1, Y1 const & y1,
- X2 const & x2, Y2 const & y2,
- X3 const & x3, Y3 const & y3);
+ X1 x1, Y1 y1,
+ X2 x2, Y2 y2,
+ X3 x3, Y3 y3);
template <typename V1, typename V2, typename V3>
GLM_FUNC_DECL tmat3x2(
@@ -101,30 +65,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x2<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x2(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -164,22 +120,22 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x2<T, P> operator+(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x2<T, P> operator-(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator*(T const & s, tmat3x2<T, P> const & m);
+ GLM_FUNC_DECL tmat3x2<T, P> operator*(T scalar, tmat3x2<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat3x2<T, P>::col_type operator*(tmat3x2<T, P> const & m, typename tmat3x2<T, P>::row_type const & v);
@@ -197,10 +153,10 @@ namespace glm
GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat3x2<T, P> const & m1, tmat4x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x2<T, P> operator/(T const & s, tmat3x2<T, P> const & m);
+ GLM_FUNC_DECL tmat3x2<T, P> operator/(T scalar, tmat3x2<T, P> const & m);
// -- Boolean operators --
@@ -209,6 +165,7 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tmat3x2<T, P> const & m1, tmat3x2<T, P> const & m2);
+
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/glm/detail/type_mat3x2.inl b/glm/detail/type_mat3x2.inl
index 59191e5..4e71a39 100644
--- a/glm/detail/type_mat3x2.inl
+++ b/glm/detail/type_mat3x2.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x2.inl
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -66,23 +37,23 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x2<T, P>::tmat3x2(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(T const & s)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(T scalar)
{
- this->value[0] = col_type(s, 0);
- this->value[1] = col_type(0, s);
+ this->value[0] = col_type(scalar, 0);
+ this->value[1] = col_type(0, scalar);
this->value[2] = col_type(0, 0);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
(
- T const & x0, T const & y0,
- T const & x1, T const & y1,
- T const & x2, T const & y2
+ T x0, T y0,
+ T x1, T y1,
+ T x2, T y2
)
{
this->value[0] = col_type(x0, y0);
@@ -112,9 +83,9 @@ namespace glm
typename X3, typename Y3>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2
(
- X1 const & x1, Y1 const & y1,
- X2 const & x2, Y2 const & y2,
- X3 const & x3, Y3 const & y3
+ X1 x1, Y1 y1,
+ X2 x2, Y2 y2,
+ X3 x3, Y3 y3
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1));
@@ -179,7 +150,7 @@ namespace glm
this->value[2] = col_type(T(0));
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat2x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -187,7 +158,7 @@ namespace glm
this->value[2] = col_type(T(0));
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat3x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -195,7 +166,7 @@ namespace glm
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat4x2<T, P> const & m)
{
this->value[0] = m[0];
@@ -203,7 +174,7 @@ namespace glm
this->value[2] = m[2];
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x2<T, P>::tmat3x2(tmat4x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -213,47 +184,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2<T, P>::size_type tmat3x2<T, P>::size() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type const & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2<T, P>::length_type tmat3x2<T, P>::length() const
- {
- return 3;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x2<T, P>::length_type tmat3x2<T, P>::length() const
+ {
+ return 3;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type const & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x2<T, P>::col_type const & tmat3x2<T, P>::operator[](typename tmat3x2<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -394,12 +343,12 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator+(tmat3x2<T, P> const & m, T scalar)
{
return tmat3x2<T, P>(
- m[0] + s,
- m[1] + s,
- m[2] + s);
+ m[0] + scalar,
+ m[1] + scalar,
+ m[2] + scalar);
}
template <typename T, precision P>
@@ -412,12 +361,12 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator-(tmat3x2<T, P> const & m, T scalar)
{
return tmat3x2<T, P>(
- m[0] - s,
- m[1] - s,
- m[2] - s);
+ m[0] - scalar,
+ m[1] - scalar,
+ m[2] - scalar);
}
template <typename T, precision P>
@@ -430,21 +379,21 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(tmat3x2<T, P> const & m, T scalar)
{
return tmat3x2<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(T const & s, tmat3x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator*(T scalar, tmat3x2<T, P> const & m)
{
return tmat3x2<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
@@ -516,21 +465,21 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(tmat3x2<T, P> const & m, T scalar)
{
return tmat3x2<T, P>(
- m[0] / s,
- m[1] / s,
- m[2] / s);
+ m[0] / scalar,
+ m[1] / scalar,
+ m[2] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(T const & s, tmat3x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x2<T, P> operator/(T scalar, tmat3x2<T, P> const & m)
{
return tmat3x2<T, P>(
- s / m[0],
- s / m[1],
- s / m[2]);
+ scalar / m[0],
+ scalar / m[1],
+ scalar / m[2]);
}
// -- Boolean operators --
diff --git a/glm/detail/type_mat3x3.hpp b/glm/detail/type_mat3x3.hpp
index e7e52f5..0a244c3 100644
--- a/glm/detail/type_mat3x3.hpp
+++ b/glm/detail/type_mat3x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x3.hpp
-/// @date 2005-01-27 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,18 +20,6 @@ namespace glm
typedef tmat3x3<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 3;
- static GLM_RELAXED_CONSTEXPR length_t cols = 3;
- static GLM_RELAXED_CONSTEXPR length_t rows = 3;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
- template <typename U, precision Q>
- friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);
- template <typename U, precision Q>
- friend tvec3<U, Q> operator/(tvec3<U, Q> const & v, tmat3x3<U, Q> const & m);
-
private:
col_type value[3];
@@ -72,12 +31,12 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x3(ctor);
- GLM_FUNC_DECL explicit tmat3x3(T const & s);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x3(ctor);
+ GLM_FUNC_DECL explicit tmat3x3(T scalar);
GLM_FUNC_DECL tmat3x3(
- T const & x0, T const & y0, T const & z0,
- T const & x1, T const & y1, T const & z1,
- T const & x2, T const & y2, T const & z2);
+ T x0, T y0, T z0,
+ T x1, T y1, T z1,
+ T x2, T y2, T z2);
GLM_FUNC_DECL tmat3x3(
col_type const & v0,
col_type const & v1,
@@ -90,9 +49,9 @@ namespace glm
typename X2, typename Y2, typename Z2,
typename X3, typename Y3, typename Z3>
GLM_FUNC_DECL tmat3x3(
- X1 const & x1, Y1 const & y1, Z1 const & z1,
- X2 const & x2, Y2 const & y2, Z2 const & z2,
- X3 const & x3, Y3 const & y3, Z3 const & z3);
+ X1 x1, Y1 y1, Z1 z1,
+ X2 x2, Y2 y2, Z2 z2,
+ X3 x3, Y3 y3, Z3 z3);
template <typename V1, typename V2, typename V3>
GLM_FUNC_DECL tmat3x3(
@@ -105,30 +64,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x3<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x3(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -172,28 +123,28 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator+(T const & s, tmat3x3<T, P> const & m);
+ GLM_FUNC_DECL tmat3x3<T, P> operator+(T scalar, tmat3x3<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x3<T, P> operator+(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator-(T const & s, tmat3x3<T, P> const & m);
+ GLM_FUNC_DECL tmat3x3<T, P> operator-(T scalar, tmat3x3<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x3<T, P> operator-(tmat3x3<T, P> const & m1, tmat3x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator*(T const & s, tmat3x3<T, P> const & m);
+ GLM_FUNC_DECL tmat3x3<T, P> operator*(T scalar, tmat3x3<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator*(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);
@@ -211,10 +162,10 @@ namespace glm
GLM_FUNC_DECL tmat4x3<T, P> operator*(tmat3x3<T, P> const & m1, tmat4x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x3<T, P> operator/(T const & s, tmat3x3<T, P> const & m);
+ GLM_FUNC_DECL tmat3x3<T, P> operator/(T scalar, tmat3x3<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v);
diff --git a/glm/detail/type_mat3x3.inl b/glm/detail/type_mat3x3.inl
index 239e61a..7b9f848 100644
--- a/glm/detail/type_mat3x3.inl
+++ b/glm/detail/type_mat3x3.inl
@@ -1,61 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x3.inl
-/// @date 2005-01-27 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-namespace glm{
-namespace detail
-{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> compute_inverse(tmat3x3<T, P> const & m)
- {
- T OneOverDeterminant = static_cast<T>(1) / (
- + m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2])
- - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2])
- + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]));
-
- tmat3x3<T, P> Inverse(uninitialize);
- Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]) * OneOverDeterminant;
- Inverse[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]) * OneOverDeterminant;
- Inverse[2][0] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]) * OneOverDeterminant;
- Inverse[0][1] = - (m[0][1] * m[2][2] - m[2][1] * m[0][2]) * OneOverDeterminant;
- Inverse[1][1] = + (m[0][0] * m[2][2] - m[2][0] * m[0][2]) * OneOverDeterminant;
- Inverse[2][1] = - (m[0][0] * m[2][1] - m[2][0] * m[0][1]) * OneOverDeterminant;
- Inverse[0][2] = + (m[0][1] * m[1][2] - m[1][1] * m[0][2]) * OneOverDeterminant;
- Inverse[1][2] = - (m[0][0] * m[1][2] - m[1][0] * m[0][2]) * OneOverDeterminant;
- Inverse[2][2] = + (m[0][0] * m[1][1] - m[1][0] * m[0][1]) * OneOverDeterminant;
-
- return Inverse;
- }
-}//namespace detail
+#include "func_matrix.hpp"
+namespace glm
+{
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
@@ -90,23 +39,23 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x3<T, P>::tmat3x3(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(T const & s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3(T scalar)
{
- this->value[0] = col_type(s, 0, 0);
- this->value[1] = col_type(0, s, 0);
- this->value[2] = col_type(0, 0, s);
+ this->value[0] = col_type(scalar, 0, 0);
+ this->value[1] = col_type(0, scalar, 0);
+ this->value[2] = col_type(0, 0, scalar);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
(
- T const & x0, T const & y0, T const & z0,
- T const & x1, T const & y1, T const & z1,
- T const & x2, T const & y2, T const & z2
+ T x0, T y0, T z0,
+ T x1, T y1, T z1,
+ T x2, T y2, T z2
)
{
this->value[0] = col_type(x0, y0, z0);
@@ -136,9 +85,9 @@ namespace detail
typename X3, typename Y3, typename Z3>
GLM_FUNC_QUALIFIER tmat3x3<T, P>::tmat3x3
(
- X1 const & x1, Y1 const & y1, Z1 const & z1,
- X2 const & x2, Y2 const & y2, Z2 const & z2,
- X3 const & x3, Y3 const & y3, Z3 const & z3
+ X1 x1, Y1 y1, Z1 z1,
+ X2 x2, Y2 y2, Z2 z2,
+ X3 x3, Y3 y3, Z3 z3
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1), value_type(z1));
@@ -237,47 +186,25 @@ namespace detail
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3<T, P>::size_type tmat3x3<T, P>::size() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type const & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3<T, P>::length_type tmat3x3<T, P>::length() const
- {
- return 3;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x3<T, P>::length_type tmat3x3<T, P>::length() const
+ {
+ return 3;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type const & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type const & tmat3x3<T, P>::operator[](typename tmat3x3<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -373,7 +300,7 @@ namespace detail
template <typename U>
GLM_FUNC_QUALIFIER tmat3x3<T, P> & tmat3x3<T, P>::operator/=(tmat3x3<U, P> const & m)
{
- return (*this = *this * detail::compute_inverse<T, P>(m));
+ return *this *= inverse(m);
}
// -- Increment and decrement operators --
@@ -432,21 +359,21 @@ namespace detail
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(tmat3x3<T, P> const & m, T scalar)
{
return tmat3x3<T, P>(
- m[0] + s,
- m[1] + s,
- m[2] + s);
+ m[0] + scalar,
+ m[1] + scalar,
+ m[2] + scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(T const & s, tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator+(T scalar, tmat3x3<T, P> const & m)
{
return tmat3x3<T, P>(
- m[0] + s,
- m[1] + s,
- m[2] + s);
+ m[0] + scalar,
+ m[1] + scalar,
+ m[2] + scalar);
}
template <typename T, precision P>
@@ -459,21 +386,21 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(tmat3x3<T, P> const & m, T scalar)
{
return tmat3x3<T, P>(
- m[0] - s,
- m[1] - s,
- m[2] - s);
+ m[0] - scalar,
+ m[1] - scalar,
+ m[2] - scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(T const & s, tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator-(T scalar, tmat3x3<T, P> const & m)
{
return tmat3x3<T, P>(
- s - m[0],
- s - m[1],
- s - m[2]);
+ scalar - m[0],
+ scalar - m[1],
+ scalar - m[2]);
}
template <typename T, precision P>
@@ -486,21 +413,21 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(tmat3x3<T, P> const & m, T scalar)
{
return tmat3x3<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(T const & s, tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator*(T scalar, tmat3x3<T, P> const & m)
{
return tmat3x3<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
@@ -588,33 +515,33 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(tmat3x3<T, P> const & m, T scalar)
{
return tmat3x3<T, P>(
- m[0] / s,
- m[1] / s,
- m[2] / s);
+ m[0] / scalar,
+ m[1] / scalar,
+ m[2] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(T const & s, tmat3x3<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> operator/(T scalar, tmat3x3<T, P> const & m)
{
return tmat3x3<T, P>(
- s / m[0],
- s / m[1],
- s / m[2]);
+ scalar / m[0],
+ scalar / m[1],
+ scalar / m[2]);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::col_type operator/(tmat3x3<T, P> const & m, typename tmat3x3<T, P>::row_type const & v)
{
- return detail::compute_inverse<T, P>(m) * v;
+ return inverse(m) * v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat3x3<T, P>::row_type operator/(typename tmat3x3<T, P>::col_type const & v, tmat3x3<T, P> const & m)
{
- return v * detail::compute_inverse<T, P>(m);
+ return v * inverse(m);
}
template <typename T, precision P>
diff --git a/glm/detail/type_mat3x4.hpp b/glm/detail/type_mat3x4.hpp
index 8cd578e..2d946a1 100644
--- a/glm/detail/type_mat3x4.hpp
+++ b/glm/detail/type_mat3x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x4.hpp
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat4x3<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 3;
- static GLM_RELAXED_CONSTEXPR length_t cols = 3;
- static GLM_RELAXED_CONSTEXPR length_t rows = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[3];
@@ -68,12 +32,12 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x4(ctor);
- GLM_FUNC_DECL explicit tmat3x4(T const & s);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat3x4(ctor);
+ GLM_FUNC_DECL explicit tmat3x4(T scalar);
GLM_FUNC_DECL tmat3x4(
- T const & x0, T const & y0, T const & z0, T const & w0,
- T const & x1, T const & y1, T const & z1, T const & w1,
- T const & x2, T const & y2, T const & z2, T const & w2);
+ T x0, T y0, T z0, T w0,
+ T x1, T y1, T z1, T w1,
+ T x2, T y2, T z2, T w2);
GLM_FUNC_DECL tmat3x4(
col_type const & v0,
col_type const & v1,
@@ -86,9 +50,9 @@ namespace glm
typename X2, typename Y2, typename Z2, typename W2,
typename X3, typename Y3, typename Z3, typename W3>
GLM_FUNC_DECL tmat3x4(
- X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
- X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
- X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
+ X1 x1, Y1 y1, Z1 z1, W1 w1,
+ X2 x2, Y2 y2, Z2 z2, W2 w2,
+ X3 x3, Y3 y3, Z3 z3, W3 w3);
template <typename V1, typename V2, typename V3>
GLM_FUNC_DECL tmat3x4(
@@ -101,30 +65,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x4<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat3x4(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -164,22 +120,22 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x4<T, P> operator+(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat3x4<T, P> operator-(tmat3x4<T, P> const & m1, tmat3x4<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator*(T const & s, tmat3x4<T, P> const & m);
+ GLM_FUNC_DECL tmat3x4<T, P> operator*(T scalar, tmat3x4<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator*(tmat3x4<T, P> const & m, typename tmat3x4<T, P>::row_type const & v);
@@ -197,10 +153,10 @@ namespace glm
GLM_FUNC_DECL tmat3x4<T, P> operator*(tmat3x4<T, P> const & m1, tmat3x3<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat3x4<T, P> operator/(T const & s, tmat3x4<T, P> const & m);
+ GLM_FUNC_DECL tmat3x4<T, P> operator/(T scalar, tmat3x4<T, P> const & m);
// -- Boolean operators --
diff --git a/glm/detail/type_mat3x4.inl b/glm/detail/type_mat3x4.inl
index 15f7520..112c120 100644
--- a/glm/detail/type_mat3x4.inl
+++ b/glm/detail/type_mat3x4.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat3x4.inl
-/// @date 2006-08-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -66,23 +37,23 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat3x4<T, P>::tmat3x4(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(T const & s)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(T scalar)
{
- this->value[0] = col_type(s, 0, 0, 0);
- this->value[1] = col_type(0, s, 0, 0);
- this->value[2] = col_type(0, 0, s, 0);
+ this->value[0] = col_type(scalar, 0, 0, 0);
+ this->value[1] = col_type(0, scalar, 0, 0);
+ this->value[2] = col_type(0, 0, scalar, 0);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
(
- T const & x0, T const & y0, T const & z0, T const & w0,
- T const & x1, T const & y1, T const & z1, T const & w1,
- T const & x2, T const & y2, T const & z2, T const & w2
+ T x0, T y0, T z0, T w0,
+ T x1, T y1, T z1, T w1,
+ T x2, T y2, T z2, T w2
)
{
this->value[0] = col_type(x0, y0, z0, w0);
@@ -112,9 +83,9 @@ namespace glm
typename X3, typename Y3, typename Z3, typename W3>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4
(
- X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
- X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
- X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3
+ X1 x1, Y1 y1, Z1 z1, W1 w1,
+ X2 x2, Y2 y2, Z2 z2, W2 w2,
+ X3 x3, Y3 y3, Z3 z3, W3 w3
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1), value_type(z1), value_type(w1));
@@ -163,7 +134,7 @@ namespace glm
this->value[2] = col_type(m[2], 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -171,7 +142,7 @@ namespace glm
this->value[2] = col_type(m[2]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat2x3<T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
@@ -179,7 +150,7 @@ namespace glm
this->value[2] = col_type(0, 0, 1, 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat3x2<T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
@@ -187,7 +158,7 @@ namespace glm
this->value[2] = col_type(m[2], 1, 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat2x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -195,7 +166,7 @@ namespace glm
this->value[2] = col_type(0, 0, 1, 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x2<T, P> const & m)
{
this->value[0] = col_type(m[0], 0, 0);
@@ -203,7 +174,7 @@ namespace glm
this->value[2] = col_type(m[2], 1, 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat3x4<T, P>::tmat3x4(tmat4x3<T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
@@ -213,47 +184,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4<T, P>::size_type tmat3x4<T, P>::size() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type const & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4<T, P>::length_type tmat3x4<T, P>::length() const
- {
- return 3;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat3x4<T, P>::length_type tmat3x4<T, P>::length() const
+ {
+ return 3;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type const & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat3x4<T, P>::col_type const & tmat3x4<T, P>::operator[](typename tmat3x4<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -394,12 +343,12 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator+(tmat3x4<T, P> const & m, T scalar)
{
return tmat3x4<T, P>(
- m[0] + s,
- m[1] + s,
- m[2] + s);
+ m[0] + scalar,
+ m[1] + scalar,
+ m[2] + scalar);
}
template <typename T, precision P>
@@ -412,12 +361,12 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator-(tmat3x4<T, P> const & m, T scalar)
{
return tmat3x4<T, P>(
- m[0] - s,
- m[1] - s,
- m[2] - s);
+ m[0] - scalar,
+ m[1] - scalar,
+ m[2] - scalar);
}
template <typename T, precision P>
@@ -430,21 +379,21 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(tmat3x4<T, P> const & m, T scalar)
{
return tmat3x4<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(T const & s, tmat3x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator*(T scalar, tmat3x4<T, P> const & m)
{
return tmat3x4<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar);
}
template <typename T, precision P>
@@ -556,21 +505,21 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(tmat3x4<T, P> const & m, T scalar)
{
return tmat3x4<T, P>(
- m[0] / s,
- m[1] / s,
- m[2] / s);
+ m[0] / scalar,
+ m[1] / scalar,
+ m[2] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(T const & s, tmat3x4<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat3x4<T, P> operator/(T scalar, tmat3x4<T, P> const & m)
{
return tmat3x4<T, P>(
- s / m[0],
- s / m[1],
- s / m[2]);
+ scalar / m[0],
+ scalar / m[1],
+ scalar / m[2]);
}
// -- Boolean operators --
diff --git a/glm/detail/type_mat4x2.hpp b/glm/detail/type_mat4x2.hpp
index 2238fe4..c1286b8 100644
--- a/glm/detail/type_mat4x2.hpp
+++ b/glm/detail/type_mat4x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x2.hpp
-/// @date 2006-10-01 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat2x4<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR length_t cols = 4;
- static GLM_RELAXED_CONSTEXPR length_t rows = 2;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[4];
@@ -68,13 +32,13 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat4x2(ctor);
- GLM_FUNC_DECL explicit tmat4x2(T const & x);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x2(ctor);
+ GLM_FUNC_DECL explicit tmat4x2(T scalar);
GLM_FUNC_DECL tmat4x2(
- T const & x0, T const & y0,
- T const & x1, T const & y1,
- T const & x2, T const & y2,
- T const & x3, T const & y3);
+ T x0, T y0,
+ T x1, T y1,
+ T x2, T y2,
+ T x3, T y3);
GLM_FUNC_DECL tmat4x2(
col_type const & v0,
col_type const & v1,
@@ -89,10 +53,10 @@ namespace glm
typename X3, typename Y3,
typename X4, typename Y4>
GLM_FUNC_DECL tmat4x2(
- X1 const & x1, Y1 const & y1,
- X2 const & x2, Y2 const & y2,
- X3 const & x3, Y3 const & y3,
- X4 const & x4, Y4 const & y4);
+ X1 x1, Y1 y1,
+ X2 x2, Y2 y2,
+ X3 x3, Y3 y3,
+ X4 x4, Y4 y4);
template <typename V1, typename V2, typename V3, typename V4>
GLM_FUNC_DECL tmat4x2(
@@ -106,30 +70,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x2<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x2(tmat3x4<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
@@ -169,22 +125,22 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat4x2<T, P> operator+(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tmat4x2<T, P> operator-(tmat4x2<T, P> const & m1, tmat4x2<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator*(T const & s, tmat4x2<T, P> const & m);
+ GLM_FUNC_DECL tmat4x2<T, P> operator*(T scalar, tmat4x2<T, P> const & m);
template <typename T, precision P>
GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator*(tmat4x2<T, P> const & m, typename tmat4x2<T, P>::row_type const & v);
@@ -202,10 +158,10 @@ namespace glm
GLM_FUNC_DECL tmat4x2<T, P> operator*(tmat4x2<T, P> const & m1, tmat4x4<T, P> const & m2);
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T const & s);
+ GLM_FUNC_DECL tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tmat4x2<T, P> operator/(T const & s, tmat4x2<T, P> const & m);
+ GLM_FUNC_DECL tmat4x2<T, P> operator/(T scalar, tmat4x2<T, P> const & m);
// -- Boolean operators --
diff --git a/glm/detail/type_mat4x2.inl b/glm/detail/type_mat4x2.inl
index 1bf75b3..f28d69c 100644
--- a/glm/detail/type_mat4x2.inl
+++ b/glm/detail/type_mat4x2.inl
@@ -1,37 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x2.inl
-/// @date 2006-10-01 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
+# ifdef GLM_STATIC_CONST_MEMBERS
+ template<typename T, precision P>
+ const tmat4x2<T, P> tmat4x2<T, P>::ZERO(static_cast<T>(0));
+
+ template<typename T, precision P>
+ const tmat4x2<T, P> tmat4x2<T, P>::IDENTITY(static_cast<T>(1));
+# endif
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
@@ -69,14 +47,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat4x2<T, P>::tmat4x2(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(T const & s)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(T scalar)
{
- this->value[0] = col_type(s, 0);
- this->value[1] = col_type(0, s);
+ this->value[0] = col_type(scalar, 0);
+ this->value[1] = col_type(0, scalar);
this->value[2] = col_type(0, 0);
this->value[3] = col_type(0, 0);
}
@@ -84,10 +62,10 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
(
- T const & x0, T const & y0,
- T const & x1, T const & y1,
- T const & x2, T const & y2,
- T const & x3, T const & y3
+ T x0, T y0,
+ T x1, T y1,
+ T x2, T y2,
+ T x3, T y3
)
{
this->value[0] = col_type(x0, y0);
@@ -121,10 +99,10 @@ namespace glm
typename X4, typename Y4>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2
(
- X1 const & x1, Y1 const & y1,
- X2 const & x2, Y2 const & y2,
- X3 const & x3, Y3 const & y3,
- X4 const & x4, Y4 const & y4
+ X1 x1, Y1 y1,
+ X2 x2, Y2 y2,
+ X3 x3, Y3 y3,
+ X4 x4, Y4 y4
)
{
this->value[0] = col_type(static_cast<T>(x1), value_type(y1));
@@ -170,7 +148,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -179,7 +157,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -188,7 +166,7 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat2x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -197,7 +175,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x2<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -206,7 +184,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat2x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -215,7 +193,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat4x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -224,7 +202,7 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x2<T, P>::tmat4x2(tmat3x4<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -235,47 +213,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2<T, P>::size_type tmat4x2<T, P>::size() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type const & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2<T, P>::length_type tmat4x2<T, P>::length() const
- {
- return 4;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x2<T, P>::length_type tmat4x2<T, P>::length() const
+ {
+ return 4;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type const & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x2<T, P>::col_type const & tmat4x2<T, P>::operator[](typename tmat4x2<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
@@ -427,13 +383,13 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator+(tmat4x2<T, P> const & m, T scalar)
{
return tmat4x2<T, P>(
- m[0] + s,
- m[1] + s,
- m[2] + s,
- m[3] + s);
+ m[0] + scalar,
+ m[1] + scalar,
+ m[2] + scalar,
+ m[3] + scalar);
}
template <typename T, precision P>
@@ -447,13 +403,13 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator-(tmat4x2<T, P> const & m, T scalar)
{
return tmat4x2<T, P>(
- m[0] - s,
- m[1] - s,
- m[2] - s,
- m[3] - s);
+ m[0] - scalar,
+ m[1] - scalar,
+ m[2] - scalar,
+ m[3] - scalar);
}
template <typename T, precision P>
@@ -467,23 +423,23 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(tmat4x2<T, P> const & m, T scalar)
{
return tmat4x2<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s,
- m[3] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar,
+ m[3] * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(T const & s, tmat4x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator*(T scalar, tmat4x2<T, P> const & m)
{
return tmat4x2<T, P>(
- m[0] * s,
- m[1] * s,
- m[2] * s,
- m[3] * s);
+ m[0] * scalar,
+ m[1] * scalar,
+ m[2] * scalar,
+ m[3] * scalar);
}
template <typename T, precision P>
@@ -560,23 +516,23 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T const & s)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(tmat4x2<T, P> const & m, T scalar)
{
return tmat4x2<T, P>(
- m[0] / s,
- m[1] / s,
- m[2] / s,
- m[3] / s);
+ m[0] / scalar,
+ m[1] / scalar,
+ m[2] / scalar,
+ m[3] / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(T const & s, tmat4x2<T, P> const & m)
+ GLM_FUNC_QUALIFIER tmat4x2<T, P> operator/(T scalar, tmat4x2<T, P> const & m)
{
return tmat4x2<T, P>(
- s / m[0],
- s / m[1],
- s / m[2],
- s / m[3]);
+ scalar / m[0],
+ scalar / m[1],
+ scalar / m[2],
+ scalar / m[3]);
}
// -- Boolean operators --
diff --git a/glm/detail/type_mat4x3.hpp b/glm/detail/type_mat4x3.hpp
index 2aa862f..2303b91 100644
--- a/glm/detail/type_mat4x3.hpp
+++ b/glm/detail/type_mat4x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x3.hpp
-/// @date 2006-08-04 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,13 +21,6 @@ namespace glm
typedef tmat3x4<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR length_t cols = 4;
- static GLM_RELAXED_CONSTEXPR length_t rows = 3;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
private:
col_type value[4];
@@ -68,7 +32,7 @@ namespace glm
template <precision Q>
GLM_FUNC_DECL tmat4x3(tmat4x3<T, Q> const & m);
- GLM_FUNC_DECL explicit tmat4x3(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tmat4x3(ctor);
GLM_FUNC_DECL explicit tmat4x3(T const & x);
GLM_FUNC_DECL tmat4x3(
T const & x0, T const & y0, T const & z0,
@@ -106,30 +70,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x3<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x3(tmat3x4<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
diff --git a/glm/detail/type_mat4x3.inl b/glm/detail/type_mat4x3.inl
index 68dbd9d..a58575d 100644
--- a/glm/detail/type_mat4x3.inl
+++ b/glm/detail/type_mat4x3.inl
@@ -1,41 +1,12 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x3.inl
-/// @date 2006-04-17 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3()
{
# ifndef GLM_FORCE_NO_CTOR_INIT
@@ -68,11 +39,11 @@ namespace glm
this->value[3] = m.value[3];
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(ctor)
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tmat4x3<T, P>::tmat4x3(ctor)
{}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(T const & s)
{
this->value[0] = col_type(s, 0, 0);
@@ -81,7 +52,7 @@ namespace glm
this->value[3] = col_type(0, 0, 0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
(
T const & x0, T const & y0, T const & z0,
@@ -96,11 +67,11 @@ namespace glm
this->value[3] = col_type(x3, y3, z3);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3
(
- col_type const & v0,
- col_type const & v1,
+ col_type const & v0,
+ col_type const & v1,
col_type const & v2,
col_type const & v3
)
@@ -113,7 +84,7 @@ namespace glm
// -- Conversion constructors --
- template <typename T, precision P>
+ template <typename T, precision P>
template <
typename X1, typename Y1, typename Z1,
typename X2, typename Y2, typename Z2,
@@ -161,7 +132,7 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat2x2<T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
@@ -170,7 +141,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat3x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -188,7 +159,7 @@ namespace glm
this->value[3] = col_type(m[3]);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat2x3<T, P> const & m)
{
this->value[0] = col_type(m[0]);
@@ -197,7 +168,7 @@ namespace glm
this->value[3] = col_type(0);
}
- template <typename T, precision P>
+ template <typename T, precision P>
GLM_FUNC_QUALIFIER tmat4x3<T, P>::tmat4x3(tmat3x2<T, P> const & m)
{
this->value[0] = col_type(m[0], 0);
@@ -235,47 +206,25 @@ namespace glm
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3<T, P>::size_type tmat4x3<T, P>::size() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type const & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3<T, P>::length_type tmat4x3<T, P>::length() const
- {
- return 4;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x3<T, P>::length_type tmat4x3<T, P>::length() const
+ {
+ return 4;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type const & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x3<T, P>::col_type const & tmat4x3<T, P>::operator[](typename tmat4x3<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary updatable operators --
diff --git a/glm/detail/type_mat4x4.hpp b/glm/detail/type_mat4x4.hpp
index 398acaf..e084ff4 100644
--- a/glm/detail/type_mat4x4.hpp
+++ b/glm/detail/type_mat4x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x4.hpp
-/// @date 2005-01-27 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,18 +20,6 @@ namespace glm
typedef tmat4x4<T, P> transpose_type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR length_t cols = 4;
- static GLM_RELAXED_CONSTEXPR length_t rows = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
- template <typename U, precision Q>
- friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);
- template <typename U, precision Q>
- friend tvec4<U, Q> operator/(tvec4<U, Q> const & v, tmat4x4<U, Q> const & m);
-
private:
col_type value[4];
@@ -110,30 +69,22 @@ namespace glm
template <typename U, precision Q>
GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x4<U, Q> const & m);
- GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);
- GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x3<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat2x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x2<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat3x4<T, P> const & x);
+ GLM_FUNC_DECL GLM_EXPLICIT tmat4x4(tmat4x3<T, P> const & x);
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_t size() const;
-
- GLM_FUNC_DECL col_type & operator[](size_type i);
- GLM_FUNC_DECL col_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL col_type & operator[](length_type i);
- GLM_FUNC_DECL col_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL col_type & operator[](length_type i);
+ GLM_FUNC_DECL col_type const & operator[](length_type i) const;
// -- Unary arithmetic operators --
diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl
index a9b8b35..b6a0347 100644
--- a/glm/detail/type_mat4x4.inl
+++ b/glm/detail/type_mat4x4.inl
@@ -1,97 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_mat4x4.inl
-/// @date 2005-01-27 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-namespace glm{
-namespace detail
-{
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> compute_inverse(tmat4x4<T, P> const & m)
- {
- T Coef00 = m[2][2] * m[3][3] - m[3][2] * m[2][3];
- T Coef02 = m[1][2] * m[3][3] - m[3][2] * m[1][3];
- T Coef03 = m[1][2] * m[2][3] - m[2][2] * m[1][3];
-
- T Coef04 = m[2][1] * m[3][3] - m[3][1] * m[2][3];
- T Coef06 = m[1][1] * m[3][3] - m[3][1] * m[1][3];
- T Coef07 = m[1][1] * m[2][3] - m[2][1] * m[1][3];
-
- T Coef08 = m[2][1] * m[3][2] - m[3][1] * m[2][2];
- T Coef10 = m[1][1] * m[3][2] - m[3][1] * m[1][2];
- T Coef11 = m[1][1] * m[2][2] - m[2][1] * m[1][2];
-
- T Coef12 = m[2][0] * m[3][3] - m[3][0] * m[2][3];
- T Coef14 = m[1][0] * m[3][3] - m[3][0] * m[1][3];
- T Coef15 = m[1][0] * m[2][3] - m[2][0] * m[1][3];
-
- T Coef16 = m[2][0] * m[3][2] - m[3][0] * m[2][2];
- T Coef18 = m[1][0] * m[3][2] - m[3][0] * m[1][2];
- T Coef19 = m[1][0] * m[2][2] - m[2][0] * m[1][2];
-
- T Coef20 = m[2][0] * m[3][1] - m[3][0] * m[2][1];
- T Coef22 = m[1][0] * m[3][1] - m[3][0] * m[1][1];
- T Coef23 = m[1][0] * m[2][1] - m[2][0] * m[1][1];
-
- tvec4<T, P> Fac0(Coef00, Coef00, Coef02, Coef03);
- tvec4<T, P> Fac1(Coef04, Coef04, Coef06, Coef07);
- tvec4<T, P> Fac2(Coef08, Coef08, Coef10, Coef11);
- tvec4<T, P> Fac3(Coef12, Coef12, Coef14, Coef15);
- tvec4<T, P> Fac4(Coef16, Coef16, Coef18, Coef19);
- tvec4<T, P> Fac5(Coef20, Coef20, Coef22, Coef23);
-
- tvec4<T, P> Vec0(m[1][0], m[0][0], m[0][0], m[0][0]);
- tvec4<T, P> Vec1(m[1][1], m[0][1], m[0][1], m[0][1]);
- tvec4<T, P> Vec2(m[1][2], m[0][2], m[0][2], m[0][2]);
- tvec4<T, P> Vec3(m[1][3], m[0][3], m[0][3], m[0][3]);
-
- tvec4<T, P> Inv0(Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2);
- tvec4<T, P> Inv1(Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4);
- tvec4<T, P> Inv2(Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5);
- tvec4<T, P> Inv3(Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5);
-
- tvec4<T, P> SignA(+1, -1, +1, -1);
- tvec4<T, P> SignB(-1, +1, -1, +1);
- tmat4x4<T, P> Inverse(Inv0 * SignA, Inv1 * SignB, Inv2 * SignA, Inv3 * SignB);
-
- tvec4<T, P> Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]);
-
- tvec4<T, P> Dot0(m[0] * Row0);
- T Dot1 = (Dot0.x + Dot0.y) + (Dot0.z + Dot0.w);
-
- T OneOverDeterminant = static_cast<T>(1) / Dot1;
-
- return Inverse * OneOverDeterminant;
- }
-}//namespace detail
+#include "func_matrix.hpp"
+namespace glm
+{
// -- Constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
@@ -323,47 +236,25 @@ namespace detail
// -- Accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4<T, P>::size_type tmat4x4<T, P>::size() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::size_type i)
- {
- assert(i < this->size());
- return this->value[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type const & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::size_type i) const
- {
- assert(i < this->size());
- return this->value[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4<T, P>::length_type tmat4x4<T, P>::length() const
- {
- return 4;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tmat4x4<T, P>::length_type tmat4x4<T, P>::length() const
+ {
+ return 4;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i)
- {
- assert(i < this->length());
- return this->value[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i)
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type const & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i) const
- {
- assert(i < this->length());
- return this->value[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type const & tmat4x4<T, P>::operator[](typename tmat4x4<T, P>::length_type i) const
+ {
+ assert(i < this->length());
+ return this->value[i];
+ }
// -- Unary arithmetic operators --
@@ -471,7 +362,7 @@ namespace detail
template <typename U>
GLM_FUNC_QUALIFIER tmat4x4<T, P> & tmat4x4<T, P>::operator/=(tmat4x4<U, P> const & m)
{
- return (*this = *this * detail::compute_inverse<T, P>(m));
+ return *this *= inverse(m);
}
// -- Increment and decrement operators --
@@ -750,13 +641,13 @@ namespace detail
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::col_type operator/(tmat4x4<T, P> const & m, typename tmat4x4<T, P>::row_type const & v)
{
- return detail::compute_inverse<T, P>(m) * v;
+ return inverse(m) * v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER typename tmat4x4<T, P>::row_type operator/(typename tmat4x4<T, P>::col_type const & v, tmat4x4<T, P> const & m)
{
- return v * detail::compute_inverse<T, P>(m);
+ return v * inverse(m);
}
template <typename T, precision P>
@@ -780,3 +671,7 @@ namespace detail
return (m1[0] != m2[0]) || (m1[1] != m2[1]) || (m1[2] != m2[2]) || (m1[3] != m2[3]);
}
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE
+# include "type_mat4x4_simd.inl"
+#endif
diff --git a/glm/detail/type_mat4x4_simd.inl b/glm/detail/type_mat4x4_simd.inl
new file mode 100644
index 0000000..eefcd7e
--- /dev/null
+++ b/glm/detail/type_mat4x4_simd.inl
@@ -0,0 +1,7 @@
+/// @ref core
+/// @file glm/detail/type_mat4x4_sse2.inl
+
+namespace glm
+{
+
+}//namespace glm
diff --git a/glm/detail/type_vec.hpp b/glm/detail/type_vec.hpp
index 078043c..46bc32e 100644
--- a/glm/detail/type_vec.hpp
+++ b/glm/detail/type_vec.hpp
@@ -1,42 +1,108 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec.hpp
-/// @date 2010-01-26 / 2014-10-05
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "precision.hpp"
#include "type_int.hpp"
-namespace glm
+namespace glm{
+namespace detail
{
+ template<std::size_t N> struct aligned {};
+ template<> GLM_ALIGNED_STRUCT(1) aligned<1>{};
+ template<> GLM_ALIGNED_STRUCT(2) aligned<2>{};
+ template<> GLM_ALIGNED_STRUCT(4) aligned<4>{};
+ template<> GLM_ALIGNED_STRUCT(8) aligned<8>{};
+ template<> GLM_ALIGNED_STRUCT(16) aligned<16>{};
+ template<> GLM_ALIGNED_STRUCT(32) aligned<32>{};
+ template<> GLM_ALIGNED_STRUCT(64) aligned<64>{};
+
+ template <typename T, std::size_t size, bool aligned>
+ struct storage
+ {
+ typedef struct type {
+ uint8 data[size];
+ } type;
+ };
+
+ template <typename T, std::size_t size>
+ struct storage<T, size, true>
+ {
+ struct type : aligned<size>
+ {
+ uint8 data[size];
+ };
+ };
+
+# if GLM_ARCH & GLM_ARCH_SSE2_BIT
+ template <>
+ struct storage<float, 16, true>
+ {
+ typedef glm_vec4 type;
+ };
+
+ template <>
+ struct storage<int, 16, true>
+ {
+ typedef glm_ivec4 type;
+ };
+
+ template <>
+ struct storage<unsigned int, 16, true>
+ {
+ typedef glm_uvec4 type;
+ };
+/*
+# else
+ typedef union __declspec(align(16)) glm_128
+ {
+ unsigned __int8 data[16];
+ } glm_128;
+
+ template <>
+ struct storage<float, 16, true>
+ {
+ typedef glm_128 type;
+ };
+
+ template <>
+ struct storage<int, 16, true>
+ {
+ typedef glm_128 type;
+ };
+
+ template <>
+ struct storage<unsigned int, 16, true>
+ {
+ typedef glm_128 type;
+ };
+*/
+# endif
+
+# if (GLM_ARCH & GLM_ARCH_AVX_BIT)
+ template <>
+ struct storage<double, 32, true>
+ {
+ typedef glm_dvec4 type;
+ };
+# endif
+
+# if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
+ template <>
+ struct storage<int64, 32, true>
+ {
+ typedef glm_i64vec4 type;
+ };
+
+ template <>
+ struct storage<uint64, 32, true>
+ {
+ typedef glm_u64vec4 type;
+ };
+# endif
+}//namespace detail
+
template <typename T, precision P> struct tvec1;
template <typename T, precision P> struct tvec2;
template <typename T, precision P> struct tvec3;
diff --git a/glm/detail/type_vec.inl b/glm/detail/type_vec.inl
index bc03472..570e1c6 100644
--- a/glm/detail/type_vec.inl
+++ b/glm/detail/type_vec.inl
@@ -1,31 +1,2 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec.inl
-/// @date 2011-06-15 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp
index d5b0dd2..d98f06c 100644
--- a/glm/detail/type_vec1.hpp
+++ b/glm/detail/type_vec1.hpp
@@ -1,41 +1,12 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec1.hpp
-/// @date 2008-08-25 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "../fwd.hpp"
#include "type_vec.hpp"
-#ifdef GLM_SWIZZLE
-# if GLM_HAS_ANONYMOUS_UNION
+#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+# if GLM_HAS_UNRESTRICTED_UNIONS
# include "_swizzle.hpp"
# else
# include "_swizzle_func.hpp"
@@ -50,25 +21,30 @@ namespace glm
{
// -- Implementation detail --
+ typedef T value_type;
typedef tvec1<T, P> type;
typedef tvec1<bool, P> bool_type;
- typedef T value_type;
-
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 1;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
// -- Data --
-# if GLM_HAS_ANONYMOUS_UNION
+# if GLM_HAS_ALIGNED_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-pedantic"
+# endif
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+# pragma clang diagnostic ignored "-Wnested-anon-types"
+# endif
+
union
{
T x;
T r;
T s;
/*
-# ifdef GLM_SWIZZLE
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
_GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, x)
_GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, r)
_GLM_SWIZZLE1_2_MEMBERS(T, P, tvec2, s)
@@ -80,70 +56,68 @@ namespace glm
_GLM_SWIZZLE1_4_MEMBERS(T, P, tvec4, s)
# endif//GLM_SWIZZLE*/
};
+
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic pop
+# endif
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic pop
+# endif
# else
union {T x, r, s;};
/*
-# ifdef GLM_SWIZZLE
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, P, tvec2, tvec2, tvec3, tvec4)
# endif//GLM_SWIZZLE*/
# endif
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- /// Return the count of components of the vector
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
-
- GLM_FUNC_DECL T & operator[](size_type i);
- GLM_FUNC_DECL T const & operator[](size_type i) const;
-# else
- /// Return the count of components of the vector
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ /// Return the count of components of the vector
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL T & operator[](length_type i);
+ GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tvec1() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tvec1(tvec1<T, P> const & v) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec1() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, P> const & v) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tvec1(tvec1<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec1(tvec1<T, Q> const & v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tvec1(ctor);
- GLM_FUNC_DECL explicit tvec1(T const & scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec1(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec1(T scalar);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec1(tvec2<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec2<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec1(tvec3<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec3<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec1(tvec4<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec4<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tvec1(tvec1<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec1(tvec1<U, Q> const & v);
// -- Swizzle constructors --
-
-# if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
+/*
+# if(GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))
template <int E0>
- GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1<T, P>, E0, -1,-2,-3> const & that)
+ GLM_FUNC_DECL tvec1(detail::_swizzle<1, T, P, tvec1, E0, -1,-2,-3> const & that)
{
*this = that();
}
-# endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
-
+# endif//(GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED))
+*/
// -- Unary arithmetic operators --
GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<T, P> const & v) GLM_DEFAULT;
@@ -151,19 +125,19 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator+=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator+=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator+=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator-=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator-=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator-=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator*=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator*=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator*=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator/=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator/=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator/=(tvec1<U, P> const & v);
@@ -177,27 +151,27 @@ namespace glm
// -- Unary bit operators --
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator%=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator%=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator%=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator&=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator&=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator&=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator|=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator|=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator|=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator^=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator^=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator^=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator<<=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator<<=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator<<=(tvec1<U, P> const & v);
template <typename U>
- GLM_FUNC_DECL tvec1<T, P> & operator>>=(U const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> & operator>>=(U scalar);
template <typename U>
GLM_FUNC_DECL tvec1<T, P> & operator>>=(tvec1<U, P> const & v);
};
@@ -213,91 +187,91 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator+(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator+(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator+(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator-(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator-(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator-(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator- (tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator*(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator*(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator*(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator/(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator/(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator/(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator%(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator%(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator%(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator&(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator&(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator&(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator|(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator|(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator|(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator^(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator^(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator^(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator<<(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator<<(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator<<(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec1<T, P> operator>>(T const & scalar, tvec1<T, P> const & v);
+ GLM_FUNC_DECL tvec1<T, P> operator>>(T scalar, tvec1<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec1<T, P> operator>>(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
@@ -312,6 +286,12 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec1<T, P> const & v1, tvec1<T, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/glm/detail/type_vec1.inl b/glm/detail/type_vec1.inl
index 561df5a..f41e226 100644
--- a/glm/detail/type_vec1.inl
+++ b/glm/detail/type_vec1.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec1.inl
-/// @date 2008-08-25 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -36,7 +7,7 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0)
# endif
@@ -45,25 +16,25 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<T, P> const & v)
: x(v.x)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec1<T, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<T, Q> const & v)
: x(v.x)
{}
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec1<T, P>::tvec1(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(T const & scalar)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(T scalar)
: x(scalar)
{}
@@ -71,71 +42,49 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec1<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec1<U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec2<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec2<U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec3<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec3<U, Q> const & v)
: x(static_cast<T>(v.x))
{}
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec1<T, P>::tvec1(tvec4<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec1<T, P>::tvec1(tvec4<U, Q> const & v)
: x(static_cast<T>(v.x))
{}
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1<T, P>::size_type tvec1<T, P>::size() const
- {
- return 1;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec1<T, P>::operator[](typename tvec1<T, P>::size_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec1<T, P>::operator[](typename tvec1<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1<T, P>::length_type tvec1<T, P>::length() const
- {
- return 1;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec1<T, P>::length_type tvec1<T, P>::length() const
+ {
+ return 1;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & tvec1<T, P>::operator[](typename tvec1<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
// -- Unary arithmetic operators --
@@ -158,7 +107,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator+=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator+=(U scalar)
{
this->x += static_cast<T>(scalar);
return *this;
@@ -174,7 +123,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator-=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator-=(U scalar)
{
this->x -= static_cast<T>(scalar);
return *this;
@@ -190,7 +139,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator*=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator*=(U scalar)
{
this->x *= static_cast<T>(scalar);
return *this;
@@ -206,7 +155,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator/=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator/=(U scalar)
{
this->x /= static_cast<T>(scalar);
return *this;
@@ -256,7 +205,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator%=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator%=(U scalar)
{
this->x %= static_cast<T>(scalar);
return *this;
@@ -272,7 +221,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator&=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator&=(U scalar)
{
this->x &= static_cast<T>(scalar);
return *this;
@@ -288,7 +237,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator|=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator|=(U scalar)
{
this->x |= static_cast<T>(scalar);
return *this;
@@ -304,7 +253,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator^=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator^=(U scalar)
{
this->x ^= static_cast<T>(scalar);
return *this;
@@ -320,7 +269,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator<<=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator<<=(U scalar)
{
this->x <<= static_cast<T>(scalar);
return *this;
@@ -336,7 +285,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator>>=(U const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> & tvec1<T, P>::operator>>=(U scalar)
{
this->x >>= static_cast<T>(scalar);
return *this;
@@ -368,14 +317,14 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator+(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x + scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator+(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator+(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar + v.x);
@@ -390,14 +339,14 @@ namespace glm
//operator-
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator-(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x - scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator-(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator-(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar - v.x);
@@ -411,14 +360,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator*(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator*(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x * scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator*(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator*(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar * v.x);
@@ -432,14 +381,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator/(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator/(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x / scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator/(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator/(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar / v.x);
@@ -455,14 +404,14 @@ namespace glm
// -- Binary bit operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator%(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator%(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x % scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator%(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator%(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar % v.x);
@@ -476,14 +425,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator&(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator&(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x & scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator&(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator&(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar & v.x);
@@ -497,14 +446,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator|(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator|(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x | scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator|(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator|(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar | v.x);
@@ -518,14 +467,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator^(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator^(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x ^ scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator^(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator^(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar ^ v.x);
@@ -539,14 +488,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x << scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator<<(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar << v.x);
@@ -560,14 +509,14 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(tvec1<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(tvec1<T, P> const & v, T scalar)
{
return tvec1<T, P>(
v.x >> scalar);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(T const & scalar, tvec1<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec1<T, P> operator>>(T scalar, tvec1<T, P> const & v)
{
return tvec1<T, P>(
scalar >> v.x);
@@ -600,4 +549,16 @@ namespace glm
{
return (v1.x != v2.x);
}
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec1<bool, P> operator&&(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
+ {
+ return tvec1<bool, P>(v1.x && v2.x);
+ }
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec1<bool, P> operator||(tvec1<bool, P> const & v1, tvec1<bool, P> const & v2)
+ {
+ return tvec1<bool, P>(v1.x || v2.x);
+ }
}//namespace glm
diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp
index a2548a1..76e9059 100644
--- a/glm/detail/type_vec2.hpp
+++ b/glm/detail/type_vec2.hpp
@@ -1,40 +1,11 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec2.hpp
-/// @date 2008-08-18 / 2013-08-27
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "type_vec.hpp"
-#ifdef GLM_SWIZZLE
-# if GLM_HAS_ANONYMOUS_UNION
+#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+# if GLM_HAS_UNRESTRICTED_UNIONS
# include "_swizzle.hpp"
# else
# include "_swizzle_func.hpp"
@@ -49,106 +20,109 @@ namespace glm
{
// -- Implementation detail --
+ typedef T value_type;
typedef tvec2<T, P> type;
typedef tvec2<bool, P> bool_type;
- typedef T value_type;
-
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 2;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
// -- Data --
-# if GLM_HAS_ANONYMOUS_UNION
+# if GLM_HAS_ALIGNED_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-pedantic"
+# endif
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+# pragma clang diagnostic ignored "-Wnested-anon-types"
+# endif
+
union
{
struct{ T x, y; };
struct{ T r, g; };
struct{ T s, t; };
-# ifdef GLM_SWIZZLE
- _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, x, y)
- _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, r, g)
- _GLM_SWIZZLE2_2_MEMBERS(T, P, tvec2, s, t)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, x, y)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, r, g)
- _GLM_SWIZZLE2_3_MEMBERS(T, P, tvec3, s, t)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, x, y)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, r, g)
- _GLM_SWIZZLE2_4_MEMBERS(T, P, tvec4, s, t)
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, x, y)
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, r, g)
+ _GLM_SWIZZLE2_2_MEMBERS(T, P, glm::tvec2, s, t)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, x, y)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, r, g)
+ _GLM_SWIZZLE2_3_MEMBERS(T, P, glm::tvec3, s, t)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, x, y)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, r, g)
+ _GLM_SWIZZLE2_4_MEMBERS(T, P, glm::tvec4, s, t)
# endif//GLM_SWIZZLE
+
};
+
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic pop
+# endif
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic pop
+# endif
# else
union {T x, r, s;};
union {T y, g, t;};
-# ifdef GLM_SWIZZLE
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P, tvec2, tvec2, tvec3, tvec4)
# endif//GLM_SWIZZLE
# endif
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- /// Return the count of components of the vector
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+ /// Return the count of components of the vector
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL T & operator[](size_type i);
- GLM_FUNC_DECL T const & operator[](size_type i) const;
-# else
- /// Return the count of components of the vector
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
-
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL T & operator[](length_type i);
+ GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tvec2() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tvec2(tvec2<T, P> const & v) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, P> const& v) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tvec2(tvec2<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec2<T, Q> const& v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tvec2(ctor);
- GLM_FUNC_DECL explicit tvec2(T const & scalar);
- GLM_FUNC_DECL tvec2(T const & s1, T const & s2);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec2(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec2(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2(T s1, T s2);
// -- Conversion constructors --
/// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B>
- GLM_FUNC_DECL tvec2(A const & x, B const & y);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2(A x, B y);
template <typename A, typename B>
- GLM_FUNC_DECL tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec2(tvec1<A, P> const & v1, tvec1<B, P> const & v2);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec3<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec4<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tvec2(tvec2<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec2(tvec2<U, Q> const & v);
// -- Swizzle constructors --
-
-# if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
template <int E0, int E1>
- GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1,-1,-2> const & that)
+ GLM_FUNC_DECL tvec2(detail::_swizzle<2, T, P, glm::tvec2, E0, E1,-1,-2> const& that)
{
*this = that();
}
-# endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
// -- Unary arithmetic operators --
@@ -239,13 +213,13 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator+(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator+(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator+(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -254,13 +228,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator+(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator-(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator-(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator-(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -269,13 +243,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator-(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator*(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator*(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator*(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -284,13 +258,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator*(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator/(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator/(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator/(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -299,13 +273,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator/(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator%(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator%(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator%(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -314,13 +288,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator%(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator&(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator&(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator&(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -329,13 +303,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator&(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator|(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator|(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator|(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -344,13 +318,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator|(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator^(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator^(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator^(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -359,13 +333,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator^(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator<<(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator<<(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -374,13 +348,13 @@ namespace glm
GLM_FUNC_DECL tvec2<T, P> operator<<(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec2<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec2<T, P> operator>>(T const & scalar, tvec2<T, P> const & v);
+ GLM_FUNC_DECL tvec2<T, P> operator>>(T scalar, tvec2<T, P> const & v);
template <typename T, precision P>
GLM_FUNC_DECL tvec2<T, P> operator>>(tvec1<T, P> const & v1, tvec2<T, P> const & v2);
@@ -398,6 +372,12 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec2<T, P> const & v1, tvec2<T, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/glm/detail/type_vec2.inl b/glm/detail/type_vec2.inl
index 798b4b8..3d74758 100644
--- a/glm/detail/type_vec2.inl
+++ b/glm/detail/type_vec2.inl
@@ -1,38 +1,26 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/core/type_tvec2.inl
-/// @date 2008-08-18 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
+# ifdef GLM_STATIC_CONST_MEMBERS
+ template <typename T, precision P>
+ const tvec2<T, P> tvec2<T, P>::ZERO(static_cast<T>(0), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec2<T, P> tvec2<T, P>::X(static_cast<T>(1), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec2<T, P> tvec2<T, P>::Y(static_cast<T>(0), static_cast<T>(1));
+
+ template <typename T, precision P>
+ const tvec2<T, P> tvec2<T, P>::XY(static_cast<T>(1), static_cast<T>(1));
+# endif
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0)
# endif
@@ -41,30 +29,30 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<T, P> const & v)
: x(v.x), y(v.y)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec2<T, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<T, Q> const & v)
: x(v.x), y(v.y)
{}
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec2<T, P>::tvec2(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(T const & scalar)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(T scalar)
: x(scalar), y(scalar)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(T const & s1, T const & s2)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(T s1, T s2)
: x(s1), y(s2)
{}
@@ -72,14 +60,14 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(A const & a, B const & b)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(A a, B b)
: x(static_cast<T>(a))
, y(static_cast<T>(b))
{}
template <typename T, precision P>
template <typename A, typename B>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec1<A, P> const & a, tvec1<B, P> const & b)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec1<A, P> const & a, tvec1<B, P> const & b)
: x(static_cast<T>(a.x))
, y(static_cast<T>(b.x))
{}
@@ -88,68 +76,46 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec2<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec2<U, Q> const & v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec3<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec3<U, Q> const & v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec2<T, P>::tvec2(tvec4<U, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec2<T, P>::tvec2(tvec4<U, Q> const & v)
: x(static_cast<T>(v.x))
, y(static_cast<T>(v.y))
{}
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2<T, P>::size_type tvec2<T, P>::size() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec2<T, P>::operator[](typename tvec2<T, P>::size_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec2<T, P>::operator[](typename tvec2<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2<T, P>::length_type tvec2<T, P>::length() const
- {
- return 2;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec2<T, P>::length_type tvec2<T, P>::length() const
+ {
+ return 2;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & tvec2<T, P>::operator[](typename tvec2<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
// -- Unary arithmetic operators --
@@ -497,7 +463,7 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator+(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x + scalar,
@@ -513,7 +479,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator+(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator+(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar + v.x,
@@ -537,7 +503,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator-(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x - scalar,
@@ -553,7 +519,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator-(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator-(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar - v.x,
@@ -577,11 +543,11 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec2<T, P> const & v1, T const & v2)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator*(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
- v1.x * v2,
- v1.y * v2);
+ v.x * scalar,
+ v.y * scalar);
}
template <typename T, precision P>
@@ -593,7 +559,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator*(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator*(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar * v.x,
@@ -617,7 +583,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator/(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x / scalar,
@@ -633,7 +599,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator/(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator/(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar / v.x,
@@ -659,7 +625,7 @@ namespace glm
// -- Binary bit operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator%(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x % scalar,
@@ -675,7 +641,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator%(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator%(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar % v.x,
@@ -699,7 +665,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator&(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x & scalar,
@@ -715,7 +681,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator&(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator&(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar & v.x,
@@ -739,7 +705,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator|(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x | scalar,
@@ -755,7 +721,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator|(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator|(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar | v.x,
@@ -779,7 +745,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator^(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x ^ scalar,
@@ -795,7 +761,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator^(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator^(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar ^ v.x,
@@ -819,7 +785,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x << scalar,
@@ -835,7 +801,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator<<(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar << v.x,
@@ -859,7 +825,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec2<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(tvec2<T, P> const & v, T scalar)
{
return tvec2<T, P>(
v.x >> scalar,
@@ -875,7 +841,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(T const & scalar, tvec2<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec2<T, P> operator>>(T scalar, tvec2<T, P> const & v)
{
return tvec2<T, P>(
scalar >> v.x,
@@ -919,4 +885,16 @@ namespace glm
{
return (v1.x != v2.x) || (v1.y != v2.y);
}
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec2<bool, P> operator&&(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
+ {
+ return tvec2<bool, P>(v1.x && v2.x, v1.y && v2.y);
+ }
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec2<bool, P> operator||(tvec2<bool, P> const & v1, tvec2<bool, P> const & v2)
+ {
+ return tvec2<bool, P>(v1.x || v2.x, v1.y || v2.y);
+ }
}//namespace glm
diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp
index ddbaf1c..ba05c86 100644
--- a/glm/detail/type_vec3.hpp
+++ b/glm/detail/type_vec3.hpp
@@ -1,45 +1,16 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec3.hpp
-/// @date 2008-08-22 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "type_vec.hpp"
-#ifdef GLM_SWIZZLE
-# if GLM_HAS_ANONYMOUS_UNION
+#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+# if GLM_HAS_UNRESTRICTED_UNIONS
# include "_swizzle.hpp"
# else
# include "_swizzle_func.hpp"
# endif
-#endif //GLM_SWIZZLE
+#endif //GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
#include <cstddef>
namespace glm
@@ -49,128 +20,130 @@ namespace glm
{
// -- Implementation detail --
+ typedef T value_type;
typedef tvec3<T, P> type;
typedef tvec3<bool, P> bool_type;
- typedef T value_type;
-
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 3;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
// -- Data --
-# if GLM_HAS_ANONYMOUS_UNION
+# if GLM_HAS_ALIGNED_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-pedantic"
+# endif
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+# pragma clang diagnostic ignored "-Wnested-anon-types"
+# endif
+
union
{
struct{ T x, y, z; };
struct{ T r, g, b; };
struct{ T s, t, p; };
-# ifdef GLM_SWIZZLE
- _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
- _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
- _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
- _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
- _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, x, y, z)
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, r, g, b)
+ _GLM_SWIZZLE3_2_MEMBERS(T, P, glm::tvec2, s, t, p)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, x, y, z)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, r, g, b)
+ _GLM_SWIZZLE3_3_MEMBERS(T, P, glm::tvec3, s, t, p)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, x, y, z)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, r, g, b)
+ _GLM_SWIZZLE3_4_MEMBERS(T, P, glm::tvec4, s, t, p)
# endif//GLM_SWIZZLE
};
+
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic pop
+# endif
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic pop
+# endif
# else
union { T x, r, s; };
union { T y, g, t; };
union { T z, b, p; };
-# ifdef GLM_SWIZZLE
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)
# endif//GLM_SWIZZLE
# endif//GLM_LANG
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- /// Return the count of components of the vector
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+ /// Return the count of components of the vector
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL T & operator[](size_type i);
- GLM_FUNC_DECL T const & operator[](size_type i) const;
-# else
- /// Return the count of components of the vector
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
-
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL T & operator[](length_type i);
+ GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tvec3() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tvec3(tvec3<T, P> const & v) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, P> const & v) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tvec3(tvec3<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec3<T, Q> const & v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tvec3(ctor);
- GLM_FUNC_DECL explicit tvec3(T const & scalar);
- GLM_FUNC_DECL tvec3(T const & a, T const & b, T const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec3(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR explicit tvec3(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(T a, T b, T c);
// -- Conversion scalar constructors --
/// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C>
- GLM_FUNC_DECL tvec3(A const & a, B const & b, C const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, B b, C c);
template <typename A, typename B, typename C>
- GLM_FUNC_DECL tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, B const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, B b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec3(A const & a, tvec2<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(A a, tvec2<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec4<U, Q> const & v);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tvec3(tvec3<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec3(tvec3<U, Q> const & v);
// -- Swizzle constructors --
-
-# if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & that)
+ GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & that)
{
*this = that();
}
template <int E0, int E1>
- GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & scalar)
+ GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & scalar)
{
*this = tvec3<T, P>(v(), scalar);
}
template <int E0, int E1>
- GLM_FUNC_DECL tvec3(T const & scalar, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
+ GLM_FUNC_DECL tvec3(T const & scalar, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v)
{
*this = tvec3<T, P>(scalar, v());
}
-# endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
// -- Unary arithmetic operators --
@@ -261,151 +234,151 @@ namespace glm
// -- Binary operators --
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator+(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator-(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator*(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator/(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(T const & scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator&(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator|(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator^(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator<<(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, T scalar);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v, tvec1<T, P> const & scalar);
+ GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec1<T, P> const & v2);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(T const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator>>(T scalar, tvec3<T, P> const & v);
template <typename T, precision P>
- GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> const & scalar, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> const & v1, tvec3<T, P> const & v2);
template <typename T, precision P>
GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
@@ -420,6 +393,12 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec3<T, P> const & v1, tvec3<T, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/glm/detail/type_vec3.inl b/glm/detail/type_vec3.inl
index 6c0531b..437efd9 100644
--- a/glm/detail/type_vec3.inl
+++ b/glm/detail/type_vec3.inl
@@ -1,42 +1,39 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_tvec3.inl
-/// @date 2008-08-22 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
+
+# ifdef GLM_STATIC_CONST_MEMBERS
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::ZERO(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::X(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::Y(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::Z(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::XY(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::XZ(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::YZ(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
+
+ template <typename T, precision P>
+ const tvec3<T, P> tvec3<T, P>::XYZ(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
+# endif
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0)
# endif
@@ -45,30 +42,30 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<T, P> const & v)
: x(v.x), y(v.y), z(v.z)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec3<T, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<T, Q> const & v)
: x(v.x), y(v.y), z(v.z)
{}
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec3<T, P>::tvec3(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(T const & scalar)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(T scalar)
: x(scalar), y(scalar), z(scalar)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(T const & a, T const & b, T const & c)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(T a, T b, T c)
: x(a), y(b), z(c)
{}
@@ -76,7 +73,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(A const & a, B const & b, C const & c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(A a, B b, C c) :
x(static_cast<T>(a)),
y(static_cast<T>(b)),
z(static_cast<T>(c))
@@ -84,7 +81,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c) :
x(static_cast<T>(a)),
y(static_cast<T>(b)),
z(static_cast<T>(c))
@@ -94,7 +91,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec2<A, Q> const & a, B const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec2<A, Q> const & a, B b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b))
@@ -102,7 +99,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec2<A, Q> const & a, tvec1<B, Q> const & b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x))
@@ -110,7 +107,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(A const & a, tvec2<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(A a, tvec2<B, Q> const & b) :
x(static_cast<T>(a)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y))
@@ -118,7 +115,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec1<A, Q> const & a, tvec2<B, Q> const & b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y))
@@ -126,7 +123,7 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec3<U, Q> const & v) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec3<U, Q> const & v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z))
@@ -134,7 +131,7 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec3<T, P>::tvec3(tvec4<U, Q> const & v) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec3<T, P>::tvec3(tvec4<U, Q> const & v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z))
@@ -142,47 +139,25 @@ namespace glm
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3<T, P>::size_type tvec3<T, P>::size() const
- {
- return 3;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec3<T, P>::operator[](typename tvec3<T, P>::size_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec3<T, P>::operator[](typename tvec3<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3<T, P>::length_type tvec3<T, P>::length() const
- {
- return 3;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec3<T, P>::length_type tvec3<T, P>::length() const
+ {
+ return 3;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & tvec3<T, P>::operator[](typename tvec3<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
// -- Unary arithmetic operators --
@@ -565,7 +540,7 @@ namespace glm
// -- Binary arithmetic operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator+(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x + scalar,
@@ -583,7 +558,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator+(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator+(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar + v.x,
@@ -610,7 +585,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator-(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x - scalar,
@@ -628,7 +603,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator-(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator-(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar - v.x,
@@ -655,7 +630,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator*(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x * scalar,
@@ -673,7 +648,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator*(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator*(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar * v.x,
@@ -700,7 +675,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator/(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x / scalar,
@@ -718,7 +693,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator/(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator/(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar / v.x,
@@ -747,7 +722,7 @@ namespace glm
// -- Binary bit operators --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator%(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x % scalar,
@@ -765,7 +740,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator%(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator%(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar % v.x,
@@ -792,7 +767,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator&(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x & scalar,
@@ -810,7 +785,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator&(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator&(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar & v.x,
@@ -837,7 +812,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator|(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x | scalar,
@@ -855,7 +830,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator|(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator|(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar | v.x,
@@ -882,7 +857,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator^(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x ^ scalar,
@@ -900,7 +875,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator^(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator^(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar ^ v.x,
@@ -927,7 +902,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x << scalar,
@@ -945,7 +920,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator<<(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar << v.x,
@@ -972,7 +947,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec3<T, P> const & v, T const & scalar)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(tvec3<T, P> const & v, T scalar)
{
return tvec3<T, P>(
v.x >> scalar,
@@ -990,7 +965,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(T const & scalar, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec3<T, P> operator>>(T scalar, tvec3<T, P> const & v)
{
return tvec3<T, P>(
scalar >> v.x,
@@ -1038,4 +1013,16 @@ namespace glm
{
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
}
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec3<bool, P> operator&&(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
+ {
+ return tvec3<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z);
+ }
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec3<bool, P> operator||(tvec3<bool, P> const & v1, tvec3<bool, P> const & v2)
+ {
+ return tvec3<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z);
+ }
}//namespace glm
diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp
index e178cdf..7570d27 100644
--- a/glm/detail/type_vec4.hpp
+++ b/glm/detail/type_vec4.hpp
@@ -1,41 +1,11 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_vec4.hpp
-/// @date 2008-08-22 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
-#include "setup.hpp"
#include "type_vec.hpp"
-#ifdef GLM_SWIZZLE
-# if GLM_HAS_ANONYMOUS_UNION
+#if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+# if GLM_HAS_UNRESTRICTED_UNIONS
# include "_swizzle.hpp"
# else
# include "_swizzle_func.hpp"
@@ -43,233 +13,182 @@
#endif //GLM_SWIZZLE
#include <cstddef>
-namespace glm{
-namespace detail
+namespace glm
{
template <typename T, precision P = defaultp>
- struct simd_data
- {
- typedef T type[4];
- };
-
-# define GLM_NOT_BUGGY_VC32BITS !(GLM_MODEL == GLM_MODEL_32 && (GLM_COMPILER & GLM_COMPILER_VC) && GLM_COMPILER < GLM_COMPILER_VC2013)
-
-# if (GLM_ARCH & GLM_ARCH_SSE2) && GLM_NOT_BUGGY_VC32BITS
- template <>
- struct simd_data<float, simd>
- {
- typedef __m128 type;
- };
-
- template <>
- struct simd_data<int, simd>
- {
- typedef __m128i type;
- };
-
- template <>
- struct simd_data<unsigned int, simd>
- {
- typedef __m128i type;
- };
-# endif
-
-# if (GLM_ARCH & GLM_ARCH_AVX) && GLM_NOT_BUGGY_VC32BITS
- template <>
- struct simd_data<double, simd>
- {
- typedef __m256d type;
- };
-# endif
-
-# if (GLM_ARCH & GLM_ARCH_AVX2) && GLM_NOT_BUGGY_VC32BITS
- template <>
- struct simd_data<int64, simd>
- {
- typedef __m256i type;
- };
-
- template <>
- struct simd_data<uint64, simd>
- {
- typedef __m256i type;
- };
-# endif
-
-}//namespace detail
-
- template <typename T, precision P = defaultp>
struct tvec4
{
// -- Implementation detail --
+ typedef T value_type;
typedef tvec4<T, P> type;
typedef tvec4<bool, P> bool_type;
- typedef T value_type;
-
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
// -- Data --
-# if GLM_HAS_ANONYMOUS_UNION && GLM_NOT_BUGGY_VC32BITS
+# if GLM_HAS_ALIGNED_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-pedantic"
+# endif
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+# pragma clang diagnostic ignored "-Wnested-anon-types"
+# endif
+
union
{
struct { T x, y, z, w;};
struct { T r, g, b, a; };
struct { T s, t, p, q; };
- typename detail::simd_data<T, P>::type data;
-
-# ifdef GLM_SWIZZLE
- _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, x, y, z, w)
- _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, r, g, b, a)
- _GLM_SWIZZLE4_2_MEMBERS(T, P, tvec2, s, t, p, q)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, x, y, z, w)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, r, g, b, a)
- _GLM_SWIZZLE4_3_MEMBERS(T, P, tvec3, s, t, p, q)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, x, y, z, w)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, r, g, b, a)
- _GLM_SWIZZLE4_4_MEMBERS(T, P, tvec4, s, t, p, q)
+ typename detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
+
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, x, y, z, w)
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, r, g, b, a)
+ _GLM_SWIZZLE4_2_MEMBERS(T, P, glm::tvec2, s, t, p, q)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, x, y, z, w)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, r, g, b, a)
+ _GLM_SWIZZLE4_3_MEMBERS(T, P, glm::tvec3, s, t, p, q)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, x, y, z, w)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, r, g, b, a)
+ _GLM_SWIZZLE4_4_MEMBERS(T, P, glm::tvec4, s, t, p, q)
# endif//GLM_SWIZZLE
};
+
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic pop
+# endif
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic pop
+# endif
# else
union { T x, r, s; };
union { T y, g, t; };
union { T z, b, p; };
union { T w, a, q; };
-# ifdef GLM_SWIZZLE
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P, tvec4, tvec2, tvec3, tvec4)
# endif//GLM_SWIZZLE
-# endif//GLM_LANG
+# endif
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- /// Return the count of components of the vector
- typedef size_t size_type;
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
+ /// Return the count of components of the vector
+ typedef length_t length_type;
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL T & operator[](size_type i);
- GLM_FUNC_DECL T const & operator[](size_type i) const;
-# else
- /// Return the count of components of the vector
- typedef length_t length_type;
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
-
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL T & operator[](length_type i);
+ GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tvec4() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tvec4(tvec4<T, P> const & v) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, P> const& v) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tvec4(tvec4<T, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec4<T, Q> const& v);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tvec4(ctor);
- GLM_FUNC_DECL explicit tvec4(T scalar);
- GLM_FUNC_DECL tvec4(T a, T b, T c, T d);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tvec4(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD explicit tvec4(T scalar);
+ GLM_FUNC_DECL GLM_CONSTEXPR_SIMD tvec4(T a, T b, T c, T d);
// -- Conversion scalar constructors --
/// Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, typename D>
- GLM_FUNC_DECL tvec4(A a, B b, C c, D d);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, C c, D d);
template <typename A, typename B, typename C, typename D>
- GLM_FUNC_DECL tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, P> const& a, tvec1<B, P> const& b, tvec1<C, P> const& c, tvec1<D, P> const& d);
// -- Conversion vector constructors --
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, B b, C c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, B b, C c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(A a, tvec2<B, Q> const & b, C c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec2<B, Q> const & b, C c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(A a, B b, tvec2<C, Q> const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, B b, tvec2<C, Q> const & c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, B b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, B b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec4(A a, tvec3<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(A a, tvec3<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
- GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);
+ GLM_FUNC_DECL GLM_CONSTEXPR tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b);
/// Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tvec4(tvec4<U, Q> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tvec4(tvec4<U, Q> const& v);
// -- Swizzle constructors --
-
-# if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# if GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
template <int E0, int E1, int E2, int E3>
- GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, tvec4<T, P>, E0, E1, E2, E3> const & that)
+ GLM_FUNC_DECL tvec4(detail::_swizzle<4, T, P, glm::tvec4, E0, E1, E2, E3> const & that)
{
*this = that();
}
template <int E0, int E1, int F0, int F1>
- GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, detail::_swizzle<2, T, P, tvec2<T, P>, F0, F1, -1, -2> const & u)
+ GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, detail::_swizzle<2, T, P, glm::tvec2, F0, F1, -1, -2> const & u)
{
*this = tvec4<T, P>(v(), u());
}
template <int E0, int E1>
- GLM_FUNC_DECL tvec4(T const & x, T const & y, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v)
+ GLM_FUNC_DECL tvec4(T const & x, T const & y, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v)
{
*this = tvec4<T, P>(x, y, v());
}
template <int E0, int E1>
- GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & w)
+ GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & w)
{
*this = tvec4<T, P>(x, v(), w);
}
template <int E0, int E1>
- GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> const & v, T const & z, T const & w)
+ GLM_FUNC_DECL tvec4(detail::_swizzle<2, T, P, glm::tvec2, E0, E1, -1, -2> const & v, T const & z, T const & w)
{
*this = tvec4<T, P>(v(), z, w);
}
template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v, T const & w)
+ GLM_FUNC_DECL tvec4(detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & v, T const & w)
{
*this = tvec4<T, P>(v(), w);
}
template <int E0, int E1, int E2>
- GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> const & v)
+ GLM_FUNC_DECL tvec4(T const & x, detail::_swizzle<3, T, P, glm::tvec3, E0, E1, E2, -1> const & v)
{
*this = tvec4<T, P>(x, v());
}
-# endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+# endif// GLM_HAS_UNRESTRICTED_UNIONS && (GLM_SWIZZLE == GLM_SWIZZLE_ENABLED)
// -- Unary arithmetic operators --
@@ -292,9 +211,9 @@ namespace detail
template <typename U>
GLM_FUNC_DECL tvec4<T, P> & operator*=(U scalar);
template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> const & v);
+ GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec1<U, P> const& v);
template <typename U>
- GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const & v);
+ GLM_FUNC_DECL tvec4<T, P> & operator*=(tvec4<U, P> const& v);
template <typename U>
GLM_FUNC_DECL tvec4<T, P> & operator/=(U scalar);
template <typename U>
@@ -519,6 +438,12 @@ namespace detail
template <typename T, precision P>
GLM_FUNC_DECL bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec4<bool, P> operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
+
+ template <precision P>
+ GLM_FUNC_DECL tvec4<bool, P> operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2);
}//namespace glm
#ifndef GLM_EXTERNAL_TEMPLATE
diff --git a/glm/detail/type_vec4.inl b/glm/detail/type_vec4.inl
index 7e33c74..10327b2 100644
--- a/glm/detail/type_vec4.inl
+++ b/glm/detail/type_vec4.inl
@@ -1,42 +1,162 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/detail/type_tvec4.inl
-/// @date 2008-08-23 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-namespace glm
+namespace glm{
+namespace detail
{
+ template <typename T>
+ struct is_int
+ {
+ enum test {value = 0};
+ };
+
+ template <>
+ struct is_int<uint32>
+ {
+ enum test {value = ~0};
+ };
+
+ template <>
+ struct is_int<int32>
+ {
+ enum test {value = ~0};
+ };
+
+ template <>
+ struct is_int<uint64>
+ {
+ enum test {value = ~0};
+ };
+
+ template <>
+ struct is_int<int64>
+ {
+ enum test {value = ~0};
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_vec4_add
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_vec4_sub
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_vec4_mul
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_vec4_div
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w);
+ }
+ };
+
+ template <typename T, precision P, bool Aligned>
+ struct compute_vec4_mod
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x % b.x, a.y % b.y, a.z % b.z, a.w % b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_and
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x & b.x, a.y & b.y, a.z & b.z, a.w & b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_or
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x | b.x, a.y | b.y, a.z | b.z, a.w | b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_xor
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x ^ b.x, a.y ^ b.y, a.z ^ b.z, a.w ^ b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_shift_left
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x << b.x, a.y << b.y, a.z << b.z, a.w << b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_shift_right
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & a, tvec4<T, P> const & b)
+ {
+ return tvec4<T, P>(a.x >> b.x, a.y >> b.y, a.z >> b.z, a.w >> b.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_equal
+ {
+ GLM_FUNC_QUALIFIER static bool call(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ {
+ return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_nequal
+ {
+ GLM_FUNC_QUALIFIER static bool call(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
+ {
+ return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
+ }
+ };
+
+ template <typename T, precision P, int IsInt, std::size_t Size, bool Aligned>
+ struct compute_vec4_bitwise_not
+ {
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & v)
+ {
+ return tvec4<T, P>(~v.x, ~v.y, ~v.z, ~v.w);
+ }
+ };
+}//namespace detail
+
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0), w(0)
# endif
@@ -45,30 +165,30 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<T, P> const & v)
: x(v.x), y(v.y), z(v.z), w(v.w)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec4<T, Q> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<T, Q> const & v)
: x(v.x), y(v.y), z(v.z), w(v.w)
{}
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<T, P>::tvec4(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(T scalar)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<T, P>::tvec4(T scalar)
: x(scalar), y(scalar), z(scalar), w(scalar)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(T a, T b, T c, T d)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<T, P>::tvec4(T a, T b, T c, T d)
: x(a), y(b), z(c), w(d)
{}
@@ -76,7 +196,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, typename D>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(A a, B b, C c, D d) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A a, B b, C c, D d) :
x(static_cast<T>(a)),
y(static_cast<T>(b)),
z(static_cast<T>(c)),
@@ -85,7 +205,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, typename D>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, P> const & a, tvec1<B, P> const & b, tvec1<C, P> const & c, tvec1<D, P> const & d) :
x(static_cast<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(c.x)),
@@ -96,7 +216,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec2<A, Q> const & a, B b, C c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, B b, C c) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b)),
@@ -105,7 +225,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec1<B, Q> const & b, tvec1<C, Q> const & c) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x)),
@@ -114,7 +234,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(A s1, tvec2<B, Q> const & v, C s2) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A s1, tvec2<B, Q> const & v, C s2) :
x(static_cast<T>(s1)),
y(static_cast<T>(v.x)),
z(static_cast<T>(v.y)),
@@ -123,7 +243,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec2<B, Q> const & b, tvec1<C, Q> const & c) :
x(static_cast<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@@ -132,7 +252,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(A s1, B s2, tvec2<C, Q> const & v) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A s1, B s2, tvec2<C, Q> const & v) :
x(static_cast<T>(s1)),
y(static_cast<T>(s2)),
z(static_cast<T>(v.x)),
@@ -141,7 +261,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, typename C, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec1<B, Q> const & b, tvec2<C, Q> const & c) :
x(static_cast<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(c.x)),
@@ -150,7 +270,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec3<A, Q> const & a, B b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec3<A, Q> const & a, B b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(a.z)),
@@ -159,7 +279,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec3<A, Q> const & a, tvec1<B, Q> const & b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(a.z)),
@@ -168,7 +288,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(A a, tvec3<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(A a, tvec3<B, Q> const & b) :
x(static_cast<T>(a)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@@ -177,7 +297,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec1<A, Q> const & a, tvec3<B, Q> const & b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(b.x)),
z(static_cast<T>(b.y)),
@@ -186,7 +306,7 @@ namespace glm
template <typename T, precision P>
template <typename A, typename B, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec2<A, Q> const & a, tvec2<B, Q> const & b) :
x(static_cast<T>(a.x)),
y(static_cast<T>(a.y)),
z(static_cast<T>(b.x)),
@@ -195,7 +315,7 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tvec4<T, P>::tvec4(tvec4<U, Q> const & v) :
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tvec4<T, P>::tvec4(tvec4<U, Q> const & v) :
x(static_cast<T>(v.x)),
y(static_cast<T>(v.y)),
z(static_cast<T>(v.z)),
@@ -204,53 +324,31 @@ namespace glm
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4<T, P>::size_type tvec4<T, P>::size() const
- {
- return 4;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec4<T, P>::operator[](typename tvec4<T, P>::size_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec4<T, P>::operator[](typename tvec4<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4<T, P>::length_type tvec4<T, P>::length() const
- {
- return 4;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tvec4<T, P>::length_type tvec4<T, P>::length() const
+ {
+ return 4;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & tvec4<T, P>::operator[](typename tvec4<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
// -- Unary arithmetic operators --
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator=(tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P>& tvec4<T, P>::operator=(tvec4<T, P> const & v)
{
this->x = v.x;
this->y = v.y;
@@ -262,7 +360,7 @@ namespace glm
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator=(tvec4<U, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P>& tvec4<T, P>::operator=(tvec4<U, P> const & v)
{
this->x = static_cast<T>(v.x);
this->y = static_cast<T>(v.y);
@@ -275,134 +373,84 @@ namespace glm
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(U scalar)
{
- this->x += static_cast<T>(scalar);
- this->y += static_cast<T>(scalar);
- this->z += static_cast<T>(scalar);
- this->w += static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(tvec1<U, P> const & v)
{
- T const scalar = static_cast<T>(v.x);
- this->x += scalar;
- this->y += scalar;
- this->z += scalar;
- this->w += scalar;
- return *this;
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator+=(tvec4<U, P> const & v)
{
- this->x += static_cast<T>(v.x);
- this->y += static_cast<T>(v.y);
- this->z += static_cast<T>(v.z);
- this->w += static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_add<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(U scalar)
{
- this->x -= static_cast<T>(scalar);
- this->y -= static_cast<T>(scalar);
- this->z -= static_cast<T>(scalar);
- this->w -= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(tvec1<U, P> const & v)
{
- T const scalar = static_cast<T>(v.x);
- this->x -= scalar;
- this->y -= scalar;
- this->z -= scalar;
- this->w -= scalar;
- return *this;
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator-=(tvec4<U, P> const & v)
{
- this->x -= static_cast<T>(v.x);
- this->y -= static_cast<T>(v.y);
- this->z -= static_cast<T>(v.z);
- this->w -= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_sub<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(U v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(U scalar)
{
- this->x *= static_cast<T>(v);
- this->y *= static_cast<T>(v);
- this->z *= static_cast<T>(v);
- this->w *= static_cast<T>(v);
- return *this;
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(tvec1<U, P> const & v)
{
- this->x *= static_cast<T>(v.x);
- this->y *= static_cast<T>(v.x);
- this->z *= static_cast<T>(v.x);
- this->w *= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator*=(tvec4<U, P> const & v)
{
- this->x *= static_cast<T>(v.x);
- this->y *= static_cast<T>(v.y);
- this->z *= static_cast<T>(v.z);
- this->w *= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_mul<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(U v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(U scalar)
{
- this->x /= static_cast<T>(v);
- this->y /= static_cast<T>(v);
- this->z /= static_cast<T>(v);
- this->w /= static_cast<T>(v);
- return *this;
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(tvec1<U, P> const & v)
{
- this->x /= static_cast<T>(v.x);
- this->y /= static_cast<T>(v.x);
- this->z /= static_cast<T>(v.x);
- this->w /= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v.x)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator/=(tvec4<U, P> const & v)
{
- this->x /= static_cast<T>(v.x);
- this->y /= static_cast<T>(v.y);
- this->z /= static_cast<T>(v.z);
- this->w /= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_div<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
// -- Increment and decrement operators --
@@ -449,198 +497,126 @@ namespace glm
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(U scalar)
{
- this->x %= static_cast<T>(scalar);
- this->y %= static_cast<T>(scalar);
- this->z %= static_cast<T>(scalar);
- this->w %= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec1<U, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec1<U, P> const& v)
{
- this->x %= static_cast<T>(v.x);
- this->y %= static_cast<T>(v.x);
- this->z %= static_cast<T>(v.x);
- this->w %= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec4<U, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator%=(tvec4<U, P> const& v)
{
- this->x %= static_cast<T>(v.x);
- this->y %= static_cast<T>(v.y);
- this->z %= static_cast<T>(v.z);
- this->w %= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_mod<T, P, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(U scalar)
{
- this->x &= static_cast<T>(scalar);
- this->y &= static_cast<T>(scalar);
- this->z &= static_cast<T>(scalar);
- this->w &= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(tvec1<U, P> const & v)
{
- this->x &= static_cast<T>(v.x);
- this->y &= static_cast<T>(v.x);
- this->z &= static_cast<T>(v.x);
- this->w &= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator&=(tvec4<U, P> const & v)
{
- this->x &= static_cast<T>(v.x);
- this->y &= static_cast<T>(v.y);
- this->z &= static_cast<T>(v.z);
- this->w &= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_and<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(U scalar)
{
- this->x |= static_cast<T>(scalar);
- this->y |= static_cast<T>(scalar);
- this->z |= static_cast<T>(scalar);
- this->w |= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(tvec1<U, P> const & v)
{
- this->x |= static_cast<T>(v.x);
- this->y |= static_cast<T>(v.x);
- this->z |= static_cast<T>(v.x);
- this->w |= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator|=(tvec4<U, P> const & v)
{
- this->x |= static_cast<T>(v.x);
- this->y |= static_cast<T>(v.y);
- this->z |= static_cast<T>(v.z);
- this->w |= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_or<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(U scalar)
{
- this->x ^= static_cast<T>(scalar);
- this->y ^= static_cast<T>(scalar);
- this->z ^= static_cast<T>(scalar);
- this->w ^= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(tvec1<U, P> const & v)
{
- this->x ^= static_cast<T>(v.x);
- this->y ^= static_cast<T>(v.x);
- this->z ^= static_cast<T>(v.x);
- this->w ^= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator^=(tvec4<U, P> const & v)
{
- this->x ^= static_cast<T>(v.x);
- this->y ^= static_cast<T>(v.y);
- this->z ^= static_cast<T>(v.z);
- this->w ^= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_xor<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(U scalar)
{
- this->x <<= static_cast<T>(scalar);
- this->y <<= static_cast<T>(scalar);
- this->z <<= static_cast<T>(scalar);
- this->w <<= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(tvec1<U, P> const & v)
{
- this->x <<= static_cast<T>(v.x);
- this->y <<= static_cast<T>(v.x);
- this->z <<= static_cast<T>(v.x);
- this->w <<= static_cast<T>(v.x);
- return *this;
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator<<=(tvec4<U, P> const & v)
{
- this->x <<= static_cast<T>(v.x);
- this->y <<= static_cast<T>(v.y);
- this->z <<= static_cast<T>(v.z);
- this->w <<= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_shift_left<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(U scalar)
{
- this->x >>= static_cast<T>(scalar);
- this->y >>= static_cast<T>(scalar);
- this->z >>= static_cast<T>(scalar);
- this->w >>= static_cast<T>(scalar);
- return *this;
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(scalar)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(tvec1<U, P> const & v)
{
- this->x >>= static_cast<T>(v.x);
- this->y >>= static_cast<T>(v.y);
- this->z >>= static_cast<T>(v.z);
- this->w >>= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tvec4<T, P> & tvec4<T, P>::operator>>=(tvec4<U, P> const & v)
{
- this->x >>= static_cast<T>(v.x);
- this->y >>= static_cast<T>(v.y);
- this->z >>= static_cast<T>(v.z);
- this->w >>= static_cast<T>(v.w);
- return *this;
+ return (*this = detail::compute_vec4_shift_right<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(*this, tvec4<T, P>(v)));
}
// -- Unary constant operators --
@@ -654,11 +630,7 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- -v.x,
- -v.y,
- -v.z,
- -v.w);
+ return tvec4<T, P>(0) -= v;
}
// -- Binary arithmetic operators --
@@ -666,201 +638,121 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x + scalar,
- v.y + scalar,
- v.z + scalar,
- v.w + scalar);
+ return tvec4<T, P>(v) += scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x + v2.x,
- v1.y + v2.x,
- v1.z + v2.x,
- v1.w + v2.x);
+ return tvec4<T, P>(v1) += v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator+(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar + v.x,
- scalar + v.y,
- scalar + v.z,
- scalar + v.w);
+ return tvec4<T, P>(v) += scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x + v2.x,
- v1.x + v2.y,
- v1.x + v2.z,
- v1.x + v2.w);
+ return tvec4<T, P>(v2) += v1;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator+(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x + v2.x,
- v1.y + v2.y,
- v1.z + v2.z,
- v1.w + v2.w);
+ return tvec4<T, P>(v1) += v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x - scalar,
- v.y - scalar,
- v.z - scalar,
- v.w - scalar);
+ return tvec4<T, P>(v) -= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x - v2.x,
- v1.y - v2.x,
- v1.z - v2.x,
- v1.w - v2.x);
+ return tvec4<T, P>(v1) -= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar - v.x,
- scalar - v.y,
- scalar - v.z,
- scalar - v.w);
+ return tvec4<T, P>(scalar) -= v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x - v2.x,
- v1.x - v2.y,
- v1.x - v2.z,
- v1.x - v2.w);
+ return tvec4<T, P>(v1.x) -= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator-(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x - v2.x,
- v1.y - v2.y,
- v1.z - v2.z,
- v1.w - v2.w);
+ return tvec4<T, P>(v1) -= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x * scalar,
- v.y * scalar,
- v.z * scalar,
- v.w * scalar);
+ return tvec4<T, P>(v) *= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x * v2.x,
- v1.y * v2.x,
- v1.z * v2.x,
- v1.w * v2.x);
+ return tvec4<T, P>(v1) *= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator*(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar * v.x,
- scalar * v.y,
- scalar * v.z,
- scalar * v.w);
+ return tvec4<T, P>(v) *= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x * v2.x,
- v1.x * v2.y,
- v1.x * v2.z,
- v1.x * v2.w);
+ return tvec4<T, P>(v2) *= v1;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x * v2.x,
- v1.y * v2.y,
- v1.z * v2.z,
- v1.w * v2.w);
+ return tvec4<T, P>(v1) *= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x / scalar,
- v.y / scalar,
- v.z / scalar,
- v.w / scalar);
+ return tvec4<T, P>(v) /= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x / v2.x,
- v1.y / v2.x,
- v1.z / v2.x,
- v1.w / v2.x);
+ return tvec4<T, P>(v1) /= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator/(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar / v.x,
- scalar / v.y,
- scalar / v.z,
- scalar / v.w);
+ return tvec4<T, P>(scalar) /= v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x / v2.x,
- v1.x / v2.y,
- v1.x / v2.z,
- v1.x / v2.w);
+ return tvec4<T, P>(v1.x) /= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator/(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x / v2.x,
- v1.y / v2.y,
- v1.z / v2.z,
- v1.w / v2.w);
+ return tvec4<T, P>(v1) /= v2;
}
// -- Binary bit operators --
@@ -868,311 +760,187 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x % scalar,
- v.y % scalar,
- v.z % scalar,
- v.w % scalar);
+ return tvec4<T, P>(v) %= scalar;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v.x % scalar.x,
- v.y % scalar.x,
- v.z % scalar.x,
- v.w % scalar.x);
+ return tvec4<T, P>(v1) %= v2.x;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator%(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar % v.x,
- scalar % v.y,
- scalar % v.z,
- scalar % v.w);
+ return tvec4<T, P>(scalar) %= v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar.x % v.x,
- scalar.x % v.y,
- scalar.x % v.z,
- scalar.x % v.w);
+ return tvec4<T, P>(scalar.x) %= v;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator%(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x % v2.x,
- v1.y % v2.y,
- v1.z % v2.z,
- v1.w % v2.w);
+ return tvec4<T, P>(v1) %= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x & scalar,
- v.y & scalar,
- v.z & scalar,
- v.w & scalar);
+ return tvec4<T, P>(v) &= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
{
- return tvec4<T, P>(
- v.x & scalar.x,
- v.y & scalar.x,
- v.z & scalar.x,
- v.w & scalar.x);
+ return tvec4<T, P>(v) &= scalar;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator&(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar & v.x,
- scalar & v.y,
- scalar & v.z,
- scalar & v.w);
+ return tvec4<T, P>(scalar) &= v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- scalar.x & v.x,
- scalar.x & v.y,
- scalar.x & v.z,
- scalar.x & v.w);
+ return tvec4<T, P>(v1.x) &= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator&(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x & v2.x,
- v1.y & v2.y,
- v1.z & v2.z,
- v1.w & v2.w);
+ return tvec4<T, P>(v1) &= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x | scalar,
- v.y | scalar,
- v.z | scalar,
- v.w | scalar);
+ return tvec4<T, P>(v) |= scalar;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v.x | scalar.x,
- v.y | scalar.x,
- v.z | scalar.x,
- v.w | scalar.x);
+ return tvec4<T, P>(v1) |= v2.x;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator|(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar | v.x,
- scalar | v.y,
- scalar | v.z,
- scalar | v.w);
+ return tvec4<T, P>(scalar) |= v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- scalar.x | v.x,
- scalar.x | v.y,
- scalar.x | v.z,
- scalar.x | v.w);
+ return tvec4<T, P>(v1.x) |= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator|(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x | v2.x,
- v1.y | v2.y,
- v1.z | v2.z,
- v1.w | v2.w);
+ return tvec4<T, P>(v1) |= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x ^ scalar,
- v.y ^ scalar,
- v.z ^ scalar,
- v.w ^ scalar);
+ return tvec4<T, P>(v) ^= scalar;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v.x ^ scalar.x,
- v.y ^ scalar.x,
- v.z ^ scalar.x,
- v.w ^ scalar.x);
+ return tvec4<T, P>(v1) ^= v2.x;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator^(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar ^ v.x,
- scalar ^ v.y,
- scalar ^ v.z,
- scalar ^ v.w);
+ return tvec4<T, P>(scalar) ^= v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- scalar.x ^ v.x,
- scalar.x ^ v.y,
- scalar.x ^ v.z,
- scalar.x ^ v.w);
+ return tvec4<T, P>(v1.x) ^= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator^(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x ^ v2.x,
- v1.y ^ v2.y,
- v1.z ^ v2.z,
- v1.w ^ v2.w);
+ return tvec4<T, P>(v1) ^= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x << scalar,
- v.y << scalar,
- v.z << scalar,
- v.w << scalar);
+ return tvec4<T, P>(v) <<= scalar;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v.x << scalar.x,
- v.y << scalar.x,
- v.z << scalar.x,
- v.w << scalar.x);
+ return tvec4<T, P>(v1) <<= v2.x;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar << v.x,
- scalar << v.y,
- scalar << v.z,
- scalar << v.w);
+ return tvec4<T, P>(scalar) <<= v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- scalar.x << v.x,
- scalar.x << v.y,
- scalar.x << v.z,
- scalar.x << v.w);
+ return tvec4<T, P>(v1.x) <<= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator<<(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x << v2.x,
- v1.y << v2.y,
- v1.z << v2.z,
- v1.w << v2.w);
+ return tvec4<T, P>(v1) <<= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v, T scalar)
{
- return tvec4<T, P>(
- v.x >> scalar,
- v.y >> scalar,
- v.z >> scalar,
- v.w >> scalar);
+ return tvec4<T, P>(v) >>= scalar;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v, tvec1<T, P> const & scalar)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec1<T, P> const & v2)
{
- return tvec4<T, P>(
- v.x >> scalar.x,
- v.y >> scalar.x,
- v.z >> scalar.x,
- v.w >> scalar.x);
+ return tvec4<T, P>(v1) >>= v2.x;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(T scalar, tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- scalar >> v.x,
- scalar >> v.y,
- scalar >> v.z,
- scalar >> v.w);
+ return tvec4<T, P>(scalar) >>= v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec1<T, P> const & scalar, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec1<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- scalar.x >> v.x,
- scalar.x >> v.y,
- scalar.x >> v.z,
- scalar.x >> v.w);
+ return tvec4<T, P>(v1.x) >>= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator>>(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return tvec4<T, P>(
- v1.x >> v2.x,
- v1.y >> v2.y,
- v1.z >> v2.z,
- v1.w >> v2.w);
+ return tvec4<T, P>(v1) >>= v2;
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER tvec4<T, P> operator~(tvec4<T, P> const & v)
{
- return tvec4<T, P>(
- ~v.x,
- ~v.y,
- ~v.z,
- ~v.w);
+ return detail::compute_vec4_bitwise_not<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v);
}
// -- Boolean operators --
@@ -1180,24 +948,28 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_QUALIFIER bool operator==(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z) && (v1.w == v2.w);
+ return detail::compute_vec4_equal<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v1, v2);
}
template <typename T, precision P>
GLM_FUNC_QUALIFIER bool operator!=(tvec4<T, P> const & v1, tvec4<T, P> const & v2)
{
- return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z) || (v1.w != v2.w);
+ return detail::compute_vec4_nequal<T, P, detail::is_int<T>::value, sizeof(T) * 8, detail::is_aligned<P>::value>::call(v1, v2);
+ }
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec4<bool, P> operator&&(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
+ {
+ return tvec4<bool, P>(v1.x && v2.x, v1.y && v2.y, v1.z && v2.z, v1.w && v2.w);
+ }
+
+ template <precision P>
+ GLM_FUNC_QUALIFIER tvec4<bool, P> operator||(tvec4<bool, P> const & v1, tvec4<bool, P> const & v2)
+ {
+ return tvec4<bool, P>(v1.x || v2.x, v1.y || v2.y, v1.z || v2.z, v1.w || v2.w);
}
}//namespace glm
-#if GLM_HAS_ANONYMOUS_UNION && GLM_NOT_BUGGY_VC32BITS
-#if GLM_ARCH & GLM_ARCH_SSE2
-# include "type_vec4_sse2.inl"
-#endif
-#if GLM_ARCH & GLM_ARCH_AVX
-# include "type_vec4_avx.inl"
-#endif
-#if GLM_ARCH & GLM_ARCH_AVX2
-# include "type_vec4_avx2.inl"
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ALIGNED_TYPE
+# include "type_vec4_simd.inl"
#endif
-#endif//
diff --git a/glm/detail/type_vec4_avx.inl b/glm/detail/type_vec4_avx.inl
deleted file mode 100644
index 4784301..0000000
--- a/glm/detail/type_vec4_avx.inl
+++ /dev/null
@@ -1,41 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/type_tvec4_avx.inl
-/// @date 2014-12-01 / 2014-12-01
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail
-{
-
-}//namespace detail
-
-
-
-}//namespace glm
diff --git a/glm/detail/type_vec4_avx2.inl b/glm/detail/type_vec4_avx2.inl
deleted file mode 100644
index f6151d7..0000000
--- a/glm/detail/type_vec4_avx2.inl
+++ /dev/null
@@ -1,41 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/type_tvec4_avx2.inl
-/// @date 2014-12-01 / 2014-12-01
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail
-{
-
-}//namespace detail
-
-
-
-}//namespace glm
diff --git a/glm/detail/type_vec4_simd.inl b/glm/detail/type_vec4_simd.inl
new file mode 100644
index 0000000..b7dc6c7
--- /dev/null
+++ b/glm/detail/type_vec4_simd.inl
@@ -0,0 +1,482 @@
+/// @ref core
+/// @file glm/detail/type_tvec4_simd.inl
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+namespace glm{
+namespace detail
+{
+# if GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+ template <precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, float, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<float, 4>
+ {
+ GLM_FUNC_QUALIFIER tvec4<float, P> operator ()() const
+ {
+ __m128 data = *reinterpret_cast<__m128 const*>(&this->_buffer);
+
+ tvec4<float, P> Result(uninitialize);
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ Result.data = _mm_permute_ps(data, _MM_SHUFFLE(E3, E2, E1, E0));
+# else
+ Result.data = _mm_shuffle_ps(data, data, _MM_SHUFFLE(E3, E2, E1, E0));
+# endif
+ return Result;
+ }
+ };
+
+ template <precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, int32, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<int32, 4>
+ {
+ GLM_FUNC_QUALIFIER tvec4<int32, P> operator ()() const
+ {
+ __m128i data = *reinterpret_cast<__m128i const*>(&this->_buffer);
+
+ tvec4<int32, P> Result(uninitialize);
+ Result.data = _mm_shuffle_epi32(data, _MM_SHUFFLE(E3, E2, E1, E0));
+ return Result;
+ }
+ };
+
+ template <precision P, int E0, int E1, int E2, int E3>
+ struct _swizzle_base1<4, uint32, P, glm::tvec4, E0,E1,E2,E3, true> : public _swizzle_base0<uint32, 4>
+ {
+ GLM_FUNC_QUALIFIER tvec4<uint32, P> operator ()() const
+ {
+ __m128i data = *reinterpret_cast<__m128i const*>(&this->_buffer);
+
+ tvec4<uint32, P> Result(uninitialize);
+ Result.data = _mm_shuffle_epi32(data, _MM_SHUFFLE(E3, E2, E1, E0));
+ return Result;
+ }
+ };
+# endif// GLM_SWIZZLE == GLM_SWIZZLE_ENABLED
+
+ template <precision P>
+ struct compute_vec4_add<float, P, true>
+ {
+ static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_add_ps(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_vec4_add<double, P, true>
+ {
+ static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ {
+ tvec4<double, P> Result(uninitialize);
+ Result.data = _mm256_add_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_vec4_sub<float, P, true>
+ {
+ static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_sub_ps(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_vec4_sub<double, P, true>
+ {
+ static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ {
+ tvec4<double, P> Result(uninitialize);
+ Result.data = _mm256_sub_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_vec4_mul<float, P, true>
+ {
+ static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_mul_ps(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_vec4_mul<double, P, true>
+ {
+ static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ {
+ tvec4<double, P> Result(uninitialize);
+ Result.data = _mm256_mul_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_vec4_div<float, P, true>
+ {
+ static tvec4<float, P> call(tvec4<float, P> const & a, tvec4<float, P> const & b)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_div_ps(a.data, b.data);
+ return Result;
+ }
+ };
+
+ # if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_vec4_div<double, P, true>
+ {
+ static tvec4<double, P> call(tvec4<double, P> const & a, tvec4<double, P> const & b)
+ {
+ tvec4<double, P> Result(uninitialize);
+ Result.data = _mm256_div_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <>
+ struct compute_vec4_div<float, aligned_lowp, true>
+ {
+ static tvec4<float, aligned_lowp> call(tvec4<float, aligned_lowp> const & a, tvec4<float, aligned_lowp> const & b)
+ {
+ tvec4<float, aligned_lowp> Result(uninitialize);
+ Result.data = _mm_mul_ps(a.data, _mm_rcp_ps(b.data));
+ return Result;
+ }
+ };
+
+ template <typename T, precision P>
+ struct compute_vec4_and<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_and_si128(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_and<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_and_si256(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <typename T, precision P>
+ struct compute_vec4_or<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_or_si128(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_or<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_or_si256(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <typename T, precision P>
+ struct compute_vec4_xor<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_xor_si128(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_xor<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_xor_si256(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <typename T, precision P>
+ struct compute_vec4_shift_left<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_sll_epi32(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_shift_left<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_sll_epi64(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <typename T, precision P>
+ struct compute_vec4_shift_right<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_srl_epi32(a.data, b.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_shift_right<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const& a, tvec4<T, P> const& b)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_srl_epi64(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <typename T, precision P>
+ struct compute_vec4_bitwise_not<T, P, true, 32, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const & v)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm_xor_si128(v.data, _mm_set1_epi32(-1));
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <typename T, precision P>
+ struct compute_vec4_bitwise_not<T, P, true, 64, true>
+ {
+ static tvec4<T, P> call(tvec4<T, P> const & v)
+ {
+ tvec4<T, P> Result(uninitialize);
+ Result.data = _mm256_xor_si256(v.data, _mm_set1_epi32(-1));
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_vec4_equal<float, P, false, 32, true>
+ {
+ static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ {
+ return _mm_movemask_ps(_mm_cmpeq_ps(v1.data, v2.data)) != 0;
+ }
+ };
+
+ template <precision P>
+ struct compute_vec4_equal<int32, P, true, 32, true>
+ {
+ static bool call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ {
+ return _mm_movemask_epi8(_mm_cmpeq_epi32(v1.data, v2.data)) != 0;
+ }
+ };
+
+ template <precision P>
+ struct compute_vec4_nequal<float, P, false, 32, true>
+ {
+ static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+ {
+ return _mm_movemask_ps(_mm_cmpneq_ps(v1.data, v2.data)) != 0;
+ }
+ };
+
+ template <precision P>
+ struct compute_vec4_nequal<int32, P, true, 32, true>
+ {
+ static bool call(tvec4<int32, P> const & v1, tvec4<int32, P> const & v2)
+ {
+ return _mm_movemask_epi8(_mm_cmpneq_epi32(v1.data, v2.data)) != 0;
+ }
+ };
+}//namespace detail
+
+# if !GLM_HAS_DEFAULTED_FUNCTIONS
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_lowp>::tvec4()
+# ifndef GLM_FORCE_NO_CTOR_INIT
+ : data(_mm_setzero_ps())
+# endif
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_mediump>::tvec4()
+# ifndef GLM_FORCE_NO_CTOR_INIT
+ : data(_mm_setzero_ps())
+# endif
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tvec4<float, aligned_highp>::tvec4()
+# ifndef GLM_FORCE_NO_CTOR_INIT
+ : data(_mm_setzero_ps())
+# endif
+ {}
+# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(float s) :
+ data(_mm_set1_ps(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(float s) :
+ data(_mm_set1_ps(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(float s) :
+ data(_mm_set1_ps(s))
+ {}
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_lowp>::tvec4(double s) :
+ data(_mm256_set1_pd(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_mediump>::tvec4(double s) :
+ data(_mm256_set1_pd(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<double, aligned_highp>::tvec4(double s) :
+ data(_mm256_set1_pd(s))
+ {}
+# endif
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_lowp>::tvec4(int32 s) :
+ data(_mm_set1_epi32(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_mediump>::tvec4(int32 s) :
+ data(_mm_set1_epi32(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_highp>::tvec4(int32 s) :
+ data(_mm_set1_epi32(s))
+ {}
+
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_lowp>::tvec4(int64 s) :
+ data(_mm256_set1_epi64x(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_mediump>::tvec4(int64 s) :
+ data(_mm256_set1_epi64x(s))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int64, aligned_highp>::tvec4(int64 s) :
+ data(_mm256_set1_epi64x(s))
+ {}
+# endif
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(float a, float b, float c, float d) :
+ data(_mm_set_ps(d, c, b, a))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(float a, float b, float c, float d) :
+ data(_mm_set_ps(d, c, b, a))
+ {}
+
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(float a, float b, float c, float d) :
+ data(_mm_set_ps(d, c, b, a))
+ {}
+
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_lowp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_set_epi32(d, c, b, a))
+ {}
+
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_mediump>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_set_epi32(d, c, b, a))
+ {}
+
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<int32, aligned_highp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_set_epi32(d, c, b, a))
+ {}
+/*
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_lowp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+ {}
+
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_mediump>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+ {}
+
+ template <>
+ template <>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_SIMD tvec4<float, aligned_highp>::tvec4(int32 a, int32 b, int32 c, int32 d) :
+ data(_mm_castsi128_ps(_mm_set_epi32(d, c, b, a)))
+ {}
+*/
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/type_vec4_sse2.inl b/glm/detail/type_vec4_sse2.inl
deleted file mode 100644
index 45e9782..0000000
--- a/glm/detail/type_vec4_sse2.inl
+++ /dev/null
@@ -1,77 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/type_tvec4_sse2.inl
-/// @date 2014-12-01 / 2014-12-01
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-
-# if !GLM_HAS_DEFAULTED_FUNCTIONS
- template <>
- GLM_FUNC_QUALIFIER tvec4<float, simd>::tvec4()
-# ifndef GLM_FORCE_NO_CTOR_INIT
- : data(_mm_setzero_ps())
-# endif
- {}
-# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
-
- template <>
- GLM_FUNC_QUALIFIER tvec4<float, simd>::tvec4(float s) :
- data(_mm_set1_ps(s))
- {}
-
- template <>
- GLM_FUNC_QUALIFIER tvec4<float, simd>::tvec4(float a, float b, float c, float d) :
- data(_mm_set_ps(d, c, b, a))
- {}
-
- template <>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<float, simd> & tvec4<float, simd>::operator+=(U scalar)
- {
- this->data = _mm_add_ps(this->data, _mm_set_ps1(static_cast<float>(scalar)));
- return *this;
- }
-
- template <>
- template <>
- GLM_FUNC_QUALIFIER tvec4<float, simd> & tvec4<float, simd>::operator+=<float>(float scalar)
- {
- this->data = _mm_add_ps(this->data, _mm_set_ps1(scalar));
- return *this;
- }
-
- template <>
- template <typename U>
- GLM_FUNC_QUALIFIER tvec4<float, simd> & tvec4<float, simd>::operator+=(tvec1<U, simd> const & v)
- {
- this->data = _mm_add_ps(this->data, _mm_set_ps1(static_cast<float>(v.x)));
- return *this;
- }
-}//namespace glm
diff --git a/glm/exponential.hpp b/glm/exponential.hpp
index 1912e35..4cf179b 100644
--- a/glm/exponential.hpp
+++ b/glm/exponential.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/exponential.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/ext.hpp b/glm/ext.hpp
index bd353a2..976d95c 100644
--- a/glm/ext.hpp
+++ b/glm/ext.hpp
@@ -1,32 +1,4 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file glm/glm.hpp
-/// @date 2009-05-01 / 2011-05-16
-/// @author Christophe Riccio
+/// @file glm/ext.hpp
///
/// @ref core (Dependence)
///
@@ -52,18 +24,21 @@
/// Even if it's highly unrecommended, it's possible to include all the extensions
/// at once by including <glm/ext.hpp>. Otherwise, each extension needs to be
/// included a specific file.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
-#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
+#include "glm.hpp"
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)
# define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
# pragma message("GLM: All extensions included (not recommanded)")
#endif//GLM_MESSAGES
#include "./gtc/bitfield.hpp"
+#include "./gtc/color_space.hpp"
#include "./gtc/constants.hpp"
#include "./gtc/epsilon.hpp"
+#include "./gtc/functions.hpp"
#include "./gtc/integer.hpp"
#include "./gtc/matrix_access.hpp"
#include "./gtc/matrix_integer.hpp"
@@ -75,10 +50,14 @@
#include "./gtc/random.hpp"
#include "./gtc/reciprocal.hpp"
#include "./gtc/round.hpp"
+//#include "./gtc/type_aligned.hpp"
#include "./gtc/type_precision.hpp"
#include "./gtc/type_ptr.hpp"
#include "./gtc/ulp.hpp"
#include "./gtc/vec1.hpp"
+#if GLM_HAS_ALIGNED_TYPE
+# include "./gtc/type_aligned.hpp"
+#endif
#include "./gtx/associated_min_max.hpp"
#include "./gtx/bit.hpp"
@@ -90,7 +69,7 @@
#include "./gtx/dual_quaternion.hpp"
#include "./gtx/euler_angles.hpp"
#include "./gtx/extend.hpp"
-#include "./gtx/extented_min_max.hpp"
+#include "./gtx/extended_min_max.hpp"
#include "./gtx/fast_exponential.hpp"
#include "./gtx/fast_square_root.hpp"
#include "./gtx/fast_trigonometry.hpp"
@@ -124,7 +103,6 @@
#endif
#include "./gtx/transform.hpp"
#include "./gtx/transform2.hpp"
-#include "./gtx/type_aligned.hpp"
#include "./gtx/vector_angle.hpp"
#include "./gtx/vector_query.hpp"
#include "./gtx/wrap.hpp"
@@ -136,8 +114,3 @@
#if GLM_HAS_RANGE_FOR
# include "./gtx/range.hpp"
#endif
-
-#if GLM_ARCH & GLM_ARCH_SSE2
-# include "./gtx/simd_vec4.hpp"
-# include "./gtx/simd_mat4.hpp"
-#endif
diff --git a/glm/fwd.hpp b/glm/fwd.hpp
index e4693bd..ddc5091 100644
--- a/glm/fwd.hpp
+++ b/glm/fwd.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/fwd.hpp
-/// @date 2013-03-30 / 2013-03-31
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/geometric.hpp b/glm/geometric.hpp
index 8f6fca9..f74f1ad 100644
--- a/glm/geometric.hpp
+++ b/glm/geometric.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/geometric.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/glm.hpp b/glm/glm.hpp
index cefdd76..524d641 100644
--- a/glm/glm.hpp
+++ b/glm/glm.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/glm.hpp
-/// @date 2005-01-14 / 2011-10-24
-/// @author Christophe Riccio
///
/// @defgroup core GLM Core
///
@@ -37,46 +9,45 @@
/// C++ functions that mirror the GLSL functions. It also includes
/// @ref core_precision "a set of precision-based types" that can be used in the appropriate
/// functions. The C++ types are all based on a basic set of @ref core_template "template types".
-///
+///
/// The best documentation for GLM Core is the current GLSL specification,
/// <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.clean.pdf">version 4.2
/// (pdf file)</a>.
-///
+///
/// GLM core functionnalities require <glm/glm.hpp> to be included to be used.
-///
+///
/// @defgroup core_types Types
-///
+///
/// @brief The standard types defined by the specification.
-///
-/// These types are all typedefs of more generalized, template types. To see the definiton
+///
+/// These types are all typedefs of more generalized, template types. To see the definition
/// of these template types, go to @ref core_template.
-///
+///
/// @ingroup core
-///
+///
/// @defgroup core_precision Precision types
-///
+///
/// @brief Non-GLSL types that are used to define precision-based types.
-///
+///
/// The GLSL language allows the user to define the precision of a particular variable.
/// In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility
/// with OpenGL ES's precision qualifiers, where they @em do have an effect.
-///
+///
/// C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing:
/// a number of typedefs of the @ref core_template that use a particular precision.
-///
+///
/// None of these types make any guarantees about the actual precision used.
-///
+///
/// @ingroup core
-///
+///
/// @defgroup core_template Template types
-///
+///
/// @brief The generic template types used as the basis for the core types.
-///
+///
/// These types are all templates used to define the actual @ref core_types.
/// These templetes are implementation details of GLM types and should not be used explicitly.
-///
+///
/// @ingroup core
-///////////////////////////////////////////////////////////////////////////////////
#include "detail/_fixes.hpp"
@@ -89,10 +60,10 @@
#include <cassert>
#include "fwd.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED)
# define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
# pragma message("GLM: Core library included")
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
#include "vec2.hpp"
#include "vec3.hpp"
diff --git a/glm/gtc/bitfield.hpp b/glm/gtc/bitfield.hpp
index 24695df..8525d56 100644
--- a/glm/gtc/bitfield.hpp
+++ b/glm/gtc/bitfield.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_bitfield
/// @file glm/gtc/bitfield.hpp
-/// @date 2014-10-25 / 2014-10-25
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_bitfield (dependence)
@@ -38,7 +10,6 @@
/// @brief Allow to perform bit operations on integer values
///
/// <glm/gtc/bitfield.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,7 +20,7 @@
#include "../detail/_vectorize.hpp"
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_bitfield extension included")
#endif
diff --git a/glm/gtc/bitfield.inl b/glm/gtc/bitfield.inl
index 035e9b5..31a2aae 100644
--- a/glm/gtc/bitfield.inl
+++ b/glm/gtc/bitfield.inl
@@ -1,34 +1,7 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_bitfield
/// @file glm/gtc/bitfield.inl
-/// @date 2011-10-14 / 2012-01-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
+
+#include "../simd/integer.h"
namespace glm{
namespace detail
@@ -87,20 +60,20 @@ namespace detail
glm::uint64 REG1(x);
glm::uint64 REG2(y);
- REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFF);
- REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFF);
+ REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFFull);
+ REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFFull);
- REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FF);
- REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FF);
+ REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FFull);
+ REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FFull);
- REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0F);
- REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0F);
+ REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0Full);
+ REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0Full);
- REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333);
- REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333);
+ REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333ull);
+ REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333ull);
- REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555);
- REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555);
+ REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555ull);
+ REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555ull);
return REG1 | (REG2 << 1);
}
@@ -258,7 +231,7 @@ namespace detail
}
template <typename T, precision P, template <typename, precision> class vecIUType>
- GLM_FUNC_QUALIFIER vecIUType<T, P> mask(vecIUType<T, P> const & v)
+ GLM_FUNC_QUALIFIER vecIUType<T, P> mask(vecIUType<T, P> const& v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'mask' accepts only integer values");
@@ -293,7 +266,7 @@ namespace detail
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldRotateLeft(vecType<T, P> const & In, int Shift)
+ GLM_FUNC_QUALIFIER vecType<T, P> bitfieldRotateLeft(vecType<T, P> const& In, int Shift)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_integer, "'bitfieldRotateLeft' accepts only integer values");
@@ -308,7 +281,7 @@ namespace detail
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillOne(vecType<T, P> const & Value, int FirstBit, int BitCount)
+ GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillOne(vecType<T, P> const& Value, int FirstBit, int BitCount)
{
return Value | static_cast<T>(mask(BitCount) << FirstBit);
}
@@ -320,7 +293,7 @@ namespace detail
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillZero(vecType<T, P> const & Value, int FirstBit, int BitCount)
+ GLM_FUNC_QUALIFIER vecType<T, P> bitfieldFillZero(vecType<T, P> const& Value, int FirstBit, int BitCount)
{
return Value & static_cast<T>(~(mask(BitCount) << FirstBit));
}
diff --git a/glm/gtc/color_encoding.inl b/glm/gtc/color_encoding.inl
new file mode 100644
index 0000000..33ce18d
--- /dev/null
+++ b/glm/gtc/color_encoding.inl
@@ -0,0 +1,65 @@
+/// @ref gtc_color_encoding
+/// @file glm/gtc/color_encoding.inl
+
+namespace glm
+{
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertLinearSRGBToD65XYZ(tvec3<T, P> const& ColorLinearSRGB)
+ {
+ tvec3<T, P> const M(0.490f, 0.17697f, 0.2f);
+ tvec3<T, P> const N(0.31f, 0.8124f, 0.01063f);
+ tvec3<T, P> const O(0.490f, 0.01f, 0.99f);
+
+ return (M * ColorLinearSRGB + N * ColorLinearSRGB + O * ColorLinearSRGB) * static_cast<T>(5.650675255693055f);
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertD65XYZToLinearSRGB(tvec3<T, P> const& ColorD65XYZ)
+ {
+ tvec3<T, P> const M(0.41847f, -0.091169f, 0.0009209f);
+ tvec3<T, P> const N(-0.15866f, 0.25243f, 0.015708f);
+ tvec3<T, P> const O(0.0009209f, -0.0025498f, 0.1786f);
+
+ return M * ColorD65XYZ + N * ColorD65XYZ + O * ColorD65XYZ;
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertLinearSRGBToD50XYZ(tvec3<T, P> const& ColorLinearSRGB)
+ {
+ tvec3<T, P> const M(0.436030342570117f, 0.222438466210245f, 0.013897440074263f);
+ tvec3<T, P> const N(0.385101860087134f, 0.716942745571917f, 0.097076381494207f);
+ tvec3<T, P> const O(0.143067806654203f, 0.060618777416563f, 0.713926257896652f);
+
+ return M * ColorLinearSRGB + N * ColorLinearSRGB + O * ColorLinearSRGB;
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertD50XYZToLinearSRGB(tvec3<T, P> const& ColorD50XYZ)
+ {
+ tvec3<T, P> const M();
+ tvec3<T, P> const N();
+ tvec3<T, P> const O();
+
+ return M * ColorD65XYZ + N * ColorD65XYZ + O * ColorD65XYZ;
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertD65XYZToD50XYZ(tvec3<T, P> const& ColorD65XYZ)
+ {
+ tvec3<T, P> const M(+1.047844353856414f, +0.029549007606644f, -0.009250984365223f);
+ tvec3<T, P> const N(+0.022898981050086f, +0.990508028941971f, +0.015072338237051f);
+ tvec3<T, P> const O(-0.050206647741605f, -0.017074711360960f, +0.751717835079977f);
+
+ return M * ColorD65XYZ + N * ColorD65XYZ + O * ColorD65XYZ;
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec3<T, P> convertD50XYZToD65XYZ(tvec3<T, P> const& ColorD50XYZ)
+ {
+ tvec3<T, P> const M();
+ tvec3<T, P> const N();
+ tvec3<T, P> const O();
+
+ return M * ColorD50XYZ + N * ColorD50XYZ + O * ColorD50XYZ;
+ }
+}//namespace glm
diff --git a/glm/gtc/color_space.hpp b/glm/gtc/color_space.hpp
index 507b262..6e37887 100644
--- a/glm/gtc/color_space.hpp
+++ b/glm/gtc/color_space.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_color_space
/// @file glm/gtc/color_space.hpp
-/// @date 2015-02-10 / 2015-08-02
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_color_space (dependence)
///
/// @defgroup gtc_color_space GLM_GTC_color_space
/// @ingroup gtc
-///
+///
/// @brief Allow to perform bit operations on integer values
-///
+///
/// <glm/gtc/color.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +21,7 @@
#include "../vec4.hpp"
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_color_space extension included")
#endif
@@ -59,19 +30,23 @@ namespace glm
/// @addtogroup gtc_color_space
/// @{
- /// Convert a linear color to sRGB color using a standard gamma correction
+ /// Convert a linear color to sRGB color using a standard gamma correction.
+ /// IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear);
- /// Convert a linear color to sRGB color using a custom gamma correction
+ /// Convert a linear color to sRGB color using a custom gamma correction.
+ /// IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear, T Gamma);
- /// Convert a sRGB color to linear color using a standard gamma correction
+ /// Convert a sRGB color to linear color using a standard gamma correction.
+ /// IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB);
- /// Convert a sRGB color to linear color using a custom gamma correction
+ /// Convert a sRGB color to linear color using a custom gamma correction.
+ // IEC 61966-2-1:1999 specification https://www.w3.org/Graphics/Color/srgb
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB, T Gamma);
diff --git a/glm/gtc/color_space.inl b/glm/gtc/color_space.inl
index 14ef5d1..4b8365f 100644
--- a/glm/gtc/color_space.inl
+++ b/glm/gtc/color_space.inl
@@ -1,34 +1,5 @@
-/////////////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_color_space
/// @file glm/gtc/color_space.inl
-/// @date 2015-02-10 / 2015-08-02
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail
@@ -36,7 +7,7 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
struct compute_rgbToSrgb
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & ColorRGB, T GammaCorrection)
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const& ColorRGB, T GammaCorrection)
{
vecType<T, P> const ClampedColor(clamp(ColorRGB, static_cast<T>(0), static_cast<T>(1)));
@@ -50,7 +21,7 @@ namespace detail
template <typename T, precision P>
struct compute_rgbToSrgb<T, P, tvec4>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & ColorRGB, T GammaCorrection)
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorRGB, T GammaCorrection)
{
return tvec4<T, P>(compute_rgbToSrgb<T, P, tvec3>::call(tvec3<T, P>(ColorRGB), GammaCorrection), ColorRGB.a);
}
@@ -59,7 +30,7 @@ namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
struct compute_srgbToRgb
{
- GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & ColorSRGB, T Gamma)
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const& ColorSRGB, T Gamma)
{
return mix(
pow((ColorSRGB + static_cast<T>(0.055)) * static_cast<T>(0.94786729857819905213270142180095), vecType<T, P>(Gamma)),
@@ -71,7 +42,7 @@ namespace detail
template <typename T, precision P>
struct compute_srgbToRgb<T, P, tvec4>
{
- GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const & ColorSRGB, T Gamma)
+ GLM_FUNC_QUALIFIER static tvec4<T, P> call(tvec4<T, P> const& ColorSRGB, T Gamma)
{
return tvec4<T, P>(compute_srgbToRgb<T, P, tvec3>::call(tvec3<T, P>(ColorSRGB), Gamma), ColorSRGB.a);
}
@@ -79,25 +50,25 @@ namespace detail
}//namespace detail
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear)
+ GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const& ColorLinear)
{
return detail::compute_rgbToSrgb<T, P, vecType>::call(ColorLinear, static_cast<T>(0.41666));
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const & ColorLinear, T Gamma)
+ GLM_FUNC_QUALIFIER vecType<T, P> convertLinearToSRGB(vecType<T, P> const& ColorLinear, T Gamma)
{
return detail::compute_rgbToSrgb<T, P, vecType>::call(ColorLinear, static_cast<T>(1) / Gamma);
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB)
+ GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const& ColorSRGB)
{
return detail::compute_srgbToRgb<T, P, vecType>::call(ColorSRGB, static_cast<T>(2.4));
}
template <typename T, precision P, template <typename, precision> class vecType>
- GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const & ColorSRGB, T Gamma)
+ GLM_FUNC_QUALIFIER vecType<T, P> convertSRGBToLinear(vecType<T, P> const& ColorSRGB, T Gamma)
{
return detail::compute_srgbToRgb<T, P, vecType>::call(ColorSRGB, Gamma);
}
diff --git a/glm/gtc/constants.hpp b/glm/gtc/constants.hpp
index 31b3c53..059dceb 100644
--- a/glm/gtc/constants.hpp
+++ b/glm/gtc/constants.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_constants
/// @file glm/gtc/constants.hpp
-/// @date 2011-09-30 / 2012-01-25
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -38,14 +10,13 @@
/// @brief Provide a list of constants and precomputed useful values.
///
/// <glm/gtc/constants.hpp> need to be included to use these features.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependencies
#include "../detail/setup.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_constants extension included")
#endif
diff --git a/glm/gtc/constants.inl b/glm/gtc/constants.inl
index 8130d79..4dfb3ca 100644
--- a/glm/gtc/constants.inl
+++ b/glm/gtc/constants.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_constants
/// @file glm/gtc/constants.inl
-/// @date 2011-10-14 / 2014-10-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <limits>
diff --git a/glm/gtc/epsilon.hpp b/glm/gtc/epsilon.hpp
index 4baa64d..a898152 100644
--- a/glm/gtc/epsilon.hpp
+++ b/glm/gtc/epsilon.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_epsilon
/// @file glm/gtc/epsilon.hpp
-/// @date 2012-04-07 / 2012-04-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -39,7 +11,6 @@
/// @brief Comparison functions for a user defined epsilon values.
///
/// <glm/gtc/epsilon.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../detail/setup.hpp"
#include "../detail/precision.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_epsilon extension included")
#endif
diff --git a/glm/gtc/epsilon.inl b/glm/gtc/epsilon.inl
index e02c287..f52cf43 100644
--- a/glm/gtc/epsilon.inl
+++ b/glm/gtc/epsilon.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_epsilon
/// @file glm/gtc/epsilon.inl
-/// @date 2012-04-07 / 2012-04-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
// Dependency:
#include "quaternion.hpp"
diff --git a/glm/gtc/functions.hpp b/glm/gtc/functions.hpp
new file mode 100644
index 0000000..5ec7073
--- /dev/null
+++ b/glm/gtc/functions.hpp
@@ -0,0 +1,53 @@
+/// @ref gtc_functions
+/// @file glm/gtc/functions.hpp
+///
+/// @see core (dependence)
+/// @see gtc_half_float (dependence)
+/// @see gtc_quaternion (dependence)
+///
+/// @defgroup gtc_functions GLM_GTC_functions
+/// @ingroup gtc
+///
+/// @brief List of useful common functions.
+///
+/// <glm/gtc/functions.hpp> need to be included to use these functionalities.
+
+#pragma once
+
+// Dependencies
+#include "../detail/setup.hpp"
+#include "../detail/precision.hpp"
+#include "../detail/type_vec2.hpp"
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
+# pragma message("GLM: GLM_GTC_functions extension included")
+#endif
+
+namespace glm
+{
+ /// @addtogroup gtc_functions
+ /// @{
+
+ /// 1D gauss function
+ ///
+ /// @see gtc_epsilon
+ template <typename T>
+ GLM_FUNC_DECL T gauss(
+ T x,
+ T ExpectedValue,
+ T StandardDeviation);
+
+ /// 2D gauss function
+ ///
+ /// @see gtc_epsilon
+ template <typename T, precision P>
+ GLM_FUNC_DECL T gauss(
+ tvec2<T, P> const& Coord,
+ tvec2<T, P> const& ExpectedValue,
+ tvec2<T, P> const& StandardDeviation);
+
+ /// @}
+}//namespace glm
+
+#include "functions.inl"
+
diff --git a/glm/gtc/functions.inl b/glm/gtc/functions.inl
new file mode 100644
index 0000000..5320a49
--- /dev/null
+++ b/glm/gtc/functions.inl
@@ -0,0 +1,31 @@
+/// @ref gtc_functions
+/// @file glm/gtc/functions.inl
+
+#include "../detail/func_exponential.hpp"
+
+namespace glm
+{
+ template <typename T>
+ GLM_FUNC_QUALIFIER T gauss
+ (
+ T x,
+ T ExpectedValue,
+ T StandardDeviation
+ )
+ {
+ return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast<T>(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast<T>(6.28318530717958647692528676655900576)));
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T gauss
+ (
+ tvec2<T, P> const& Coord,
+ tvec2<T, P> const& ExpectedValue,
+ tvec2<T, P> const& StandardDeviation
+ )
+ {
+ tvec2<T, P> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast<T>(2) * StandardDeviation * StandardDeviation);
+ return exp(-(Squared.x + Squared.y));
+ }
+}//namespace glm
+
diff --git a/glm/gtc/integer.hpp b/glm/gtc/integer.hpp
index 0dddb90..34521fc 100644
--- a/glm/gtc/integer.hpp
+++ b/glm/gtc/integer.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_integer
/// @file glm/gtc/integer.hpp
-/// @date 2014-11-17 / 2014-11-17
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_integer (dependence)
///
/// @defgroup gtc_integer GLM_GTC_integer
/// @ingroup gtc
-///
+///
/// @brief Allow to perform bit operations on integer values
-///
+///
/// <glm/gtc/integer.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +21,7 @@
#include "../detail/func_exponential.hpp"
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_integer extension included")
#endif
@@ -99,6 +70,32 @@ namespace glm
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> mod(vecType<T, P> const & x, vecType<T, P> const & y);
+ /// Returns a value equal to the nearest integer to x.
+ /// The fraction 0.5 will round in a direction chosen by the
+ /// implementation, presumably the direction that is fastest.
+ ///
+ /// @param x The values of the argument must be greater or equal to zero.
+ /// @tparam T floating point scalar types.
+ /// @tparam vecType vector types.
+ ///
+ /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
+ /// @see gtc_integer
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<int, P> iround(vecType<T, P> const & x);
+
+ /// Returns a value equal to the nearest integer to x.
+ /// The fraction 0.5 will round in a direction chosen by the
+ /// implementation, presumably the direction that is fastest.
+ ///
+ /// @param x The values of the argument must be greater or equal to zero.
+ /// @tparam T floating point scalar types.
+ /// @tparam vecType vector types.
+ ///
+ /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/round.xml">GLSL round man page</a>
+ /// @see gtc_integer
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<uint, P> uround(vecType<T, P> const & x);
+
/// @}
} //namespace glm
diff --git a/glm/gtc/integer.inl b/glm/gtc/integer.inl
index 28e407f..03b471d 100644
--- a/glm/gtc/integer.inl
+++ b/glm/gtc/integer.inl
@@ -1,40 +1,11 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_integer
/// @file glm/gtc/integer.inl
-/// @date 2014-11-17 / 2014-11-17
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail
{
- template <typename T, precision P, template <class, precision> class vecType>
- struct compute_log2<T, P, vecType, false>
+ template <typename T, precision P, template <typename, precision> class vecType, bool Aligned>
+ struct compute_log2<T, P, vecType, false, Aligned>
{
GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<T, P> const & vec)
{
@@ -45,8 +16,8 @@ namespace detail
};
# if GLM_HAS_BITSCAN_WINDOWS
- template <precision P>
- struct compute_log2<int, P, tvec4, false>
+ template <precision P, bool Aligned>
+ struct compute_log2<int, P, tvec4, false, Aligned>
{
GLM_FUNC_QUALIFIER static tvec4<int, P> call(tvec4<int, P> const & vec)
{
@@ -62,4 +33,39 @@ namespace detail
};
# endif//GLM_HAS_BITSCAN_WINDOWS
}//namespace detail
+ template <typename genType>
+ GLM_FUNC_QUALIFIER int iround(genType x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'iround' only accept floating-point inputs");
+ assert(static_cast<genType>(0.0) <= x);
+
+ return static_cast<int>(x + static_cast<genType>(0.5));
+ }
+
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<int, P> iround(vecType<T, P> const& x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'iround' only accept floating-point inputs");
+ assert(all(lessThanEqual(vecType<T, P>(0), x)));
+
+ return vecType<int, P>(x + static_cast<T>(0.5));
+ }
+
+ template <typename genType>
+ GLM_FUNC_QUALIFIER uint uround(genType x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'uround' only accept floating-point inputs");
+ assert(static_cast<genType>(0.0) <= x);
+
+ return static_cast<uint>(x + static_cast<genType>(0.5));
+ }
+
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<uint, P> uround(vecType<T, P> const& x)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'uround' only accept floating-point inputs");
+ assert(all(lessThanEqual(vecType<T, P>(0), x)));
+
+ return vecType<uint, P>(x + static_cast<T>(0.5));
+ }
}//namespace glm
diff --git a/glm/gtc/matrix_access.hpp b/glm/gtc/matrix_access.hpp
index df645ef..eeb16d5 100644
--- a/glm/gtc/matrix_access.hpp
+++ b/glm/gtc/matrix_access.hpp
@@ -1,49 +1,20 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_access
/// @file glm/gtc/matrix_access.hpp
-/// @date 2005-12-27 / 2011-05-16
-/// @author Christophe Riccio
-///
+///
/// @see core (dependence)
-///
+///
/// @defgroup gtc_matrix_access GLM_GTC_matrix_access
/// @ingroup gtc
///
/// Defines functions to access rows or columns of a matrix easily.
/// <glm/gtc/matrix_access.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../detail/setup.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_matrix_access extension included")
#endif
diff --git a/glm/gtc/matrix_access.inl b/glm/gtc/matrix_access.inl
index aba94ba..a0effff 100644
--- a/glm/gtc/matrix_access.inl
+++ b/glm/gtc/matrix_access.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_access
/// @file glm/gtc/matrix_access.inl
-/// @date 2005-12-27 / 2011-06-05
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -40,10 +11,10 @@ namespace glm
typename genType::row_type const & x
)
{
- assert(index >= 0 && static_cast<detail::component_count_t>(index) < detail::component_count(m[0]));
+ assert(index >= 0 && index < m[0].length());
genType Result = m;
- for(detail::component_count_t i = 0; i < detail::component_count(m); ++i)
+ for(length_t i = 0; i < m.length(); ++i)
Result[i][index] = x[i];
return Result;
}
@@ -55,10 +26,10 @@ namespace glm
length_t index
)
{
- assert(index >= 0 && static_cast<detail::component_count_t>(index) < detail::component_count(m[0]));
+ assert(index >= 0 && index < m[0].length());
typename genType::row_type Result;
- for(detail::component_count_t i = 0; i < detail::component_count(m); ++i)
+ for(length_t i = 0; i < m.length(); ++i)
Result[i] = m[i][index];
return Result;
}
@@ -71,7 +42,7 @@ namespace glm
typename genType::col_type const & x
)
{
- assert(index >= 0 && static_cast<detail::component_count_t>(index) < detail::component_count(m));
+ assert(index >= 0 && index < m.length());
genType Result = m;
Result[index] = x;
@@ -85,7 +56,7 @@ namespace glm
length_t index
)
{
- assert(index >= 0 && static_cast<detail::component_count_t>(index) < detail::component_count(m));
+ assert(index >= 0 && index < m.length());
return m[index];
}
diff --git a/glm/gtc/matrix_integer.hpp b/glm/gtc/matrix_integer.hpp
index 89f4412..5dbc35a 100644
--- a/glm/gtc/matrix_integer.hpp
+++ b/glm/gtc/matrix_integer.hpp
@@ -1,42 +1,13 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_integer
/// @file glm/gtc/matrix_integer.hpp
-/// @date 2011-01-20 / 2011-06-05
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_matrix_integer GLM_GTC_matrix_integer
/// @ingroup gtc
-///
+///
/// Defines a number of matrices with integer types.
/// <glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -51,7 +22,7 @@
#include "../mat4x3.hpp"
#include "../mat4x4.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_matrix_integer extension included")
#endif
diff --git a/glm/gtc/matrix_inverse.hpp b/glm/gtc/matrix_inverse.hpp
index 3a2b8d0..51d27fc 100644
--- a/glm/gtc/matrix_inverse.hpp
+++ b/glm/gtc/matrix_inverse.hpp
@@ -1,42 +1,13 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_inverse
/// @file glm/gtc/matrix_inverse.hpp
-/// @date 2005-12-21 / 2011-06-05
-/// @author Christophe Riccio
///
/// @see core (dependence)
-///
+///
/// @defgroup gtc_matrix_inverse GLM_GTC_matrix_inverse
/// @ingroup gtc
-///
+///
/// Defines additional matrix inverting functions.
/// <glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../mat3x3.hpp"
#include "../mat4x4.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_matrix_inverse extension included")
#endif
diff --git a/glm/gtc/matrix_inverse.inl b/glm/gtc/matrix_inverse.inl
index 673baec..a5d1a1f 100644
--- a/glm/gtc/matrix_inverse.inl
+++ b/glm/gtc/matrix_inverse.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_inverse
/// @file glm/gtc/matrix_inverse.inl
-/// @date 2005-12-21 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtc/matrix_transform.hpp b/glm/gtc/matrix_transform.hpp
index c814262..4d7e72c 100644
--- a/glm/gtc/matrix_transform.hpp
+++ b/glm/gtc/matrix_transform.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_transform
/// @file glm/gtc/matrix_transform.hpp
-/// @date 2009-04-29 / 2011-05-16
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_transform
@@ -35,17 +7,16 @@
///
/// @defgroup gtc_matrix_transform GLM_GTC_matrix_transform
/// @ingroup gtc
-///
+///
/// @brief Defines functions that generate common transformation matrices.
-///
+///
/// The matrices generated by this extension use standard OpenGL fixed-function
/// conventions. For example, the lookAt function generates a transform from world
/// space into the specific eye space that the projective matrix functions
/// (perspective, ortho, etc) are designed to expect. The OpenGL compatibility
/// specifications defines the particular layout of this eye space.
-///
+///
/// <glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -56,7 +27,7 @@
#include "../vec4.hpp"
#include "../gtc/constants.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_matrix_transform extension included")
#endif
@@ -116,14 +87,14 @@ namespace glm
tmat4x4<T, P> const & m,
tvec3<T, P> const & v);
- /// Creates a matrix for an orthographic parallel viewing volume.
- ///
- /// @param left
- /// @param right
- /// @param bottom
- /// @param top
- /// @param zNear
- /// @param zFar
+ /// Creates a matrix for an orthographic parallel viewing volume, using the default handedness.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param zNear
+ /// @param zFar
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
@@ -136,12 +107,52 @@ namespace glm
T zNear,
T zFar);
+ /// Creates a matrix for an orthographic parallel viewing volume, using left-handedness.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param zNear
+ /// @param zFar
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ /// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> orthoLH(
+ T left,
+ T right,
+ T bottom,
+ T top,
+ T zNear,
+ T zFar);
+
+ /// Creates a matrix for an orthographic parallel viewing volume, using right-handedness.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param zNear
+ /// @param zFar
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ /// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top)
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> orthoRH(
+ T left,
+ T right,
+ T bottom,
+ T top,
+ T zNear,
+ T zFar);
+
/// Creates a matrix for projecting two-dimensional coordinates onto the screen.
- ///
- /// @param left
- /// @param right
- /// @param bottom
- /// @param top
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
/// @see - glm::ortho(T const & left, T const & right, T const & bottom, T const & top, T const & zNear, T const & zFar)
@@ -152,14 +163,14 @@ namespace glm
T bottom,
T top);
- /// Creates a frustum matrix.
- ///
- /// @param left
- /// @param right
- /// @param bottom
- /// @param top
- /// @param near
- /// @param far
+ /// Creates a frustum matrix with default handedness.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param near
+ /// @param far
/// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
/// @see gtc_matrix_transform
template <typename T>
@@ -171,6 +182,44 @@ namespace glm
T near,
T far);
+ /// Creates a left handed frustum matrix.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param near
+ /// @param far
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> frustumLH(
+ T left,
+ T right,
+ T bottom,
+ T top,
+ T near,
+ T far);
+
+ /// Creates a right handed frustum matrix.
+ ///
+ /// @param left
+ /// @param right
+ /// @param bottom
+ /// @param top
+ /// @param near
+ /// @param far
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> frustumRH(
+ T left,
+ T right,
+ T bottom,
+ T top,
+ T near,
+ T far);
+
/// Creates a matrix for a symetric perspective-view frustum based on the default handedness.
///
/// @param fovy Specifies the field of view angle in the y direction. Expressed in radians.
@@ -267,8 +316,8 @@ namespace glm
T near,
T far);
- /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
- ///
+ /// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.
+ ///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
/// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
/// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
@@ -278,6 +327,28 @@ namespace glm
GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspective(
T fovy, T aspect, T near);
+ /// Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite.
+ ///
+ /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
+ /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
+ /// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveLH(
+ T fovy, T aspect, T near);
+
+ /// Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite.
+ ///
+ /// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
+ /// @param aspect Specifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
+ /// @param near Specifies the distance from the viewer to the near clipping plane (always positive).
+ /// @tparam T Value type used to build the matrix. Currently supported: half (not recommanded), float or double.
+ /// @see gtc_matrix_transform
+ template <typename T>
+ GLM_FUNC_DECL tmat4x4<T, defaultp> infinitePerspectiveRH(
+ T fovy, T aspect, T near);
+
/// Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
diff --git a/glm/gtc/matrix_transform.inl b/glm/gtc/matrix_transform.inl
index 0b39623..3527375 100644
--- a/glm/gtc/matrix_transform.inl
+++ b/glm/gtc/matrix_transform.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_matrix_transform
/// @file glm/gtc/matrix_transform.inl
-/// @date 2009-04-29 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../geometric.hpp"
#include "../trigonometric.hpp"
@@ -37,11 +8,7 @@
namespace glm
{
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> translate
- (
- tmat4x4<T, P> const & m,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> translate(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
{
tmat4x4<T, P> Result(m);
Result[3] = m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3];
@@ -49,12 +16,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate
- (
- tmat4x4<T, P> const & m,
- T angle,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate(tmat4x4<T, P> const & m, T angle, tvec3<T, P> const & v)
{
T const a = angle;
T const c = cos(a);
@@ -65,15 +27,15 @@ namespace glm
tmat4x4<T, P> Rotate(uninitialize);
Rotate[0][0] = c + temp[0] * axis[0];
- Rotate[0][1] = 0 + temp[0] * axis[1] + s * axis[2];
- Rotate[0][2] = 0 + temp[0] * axis[2] - s * axis[1];
+ Rotate[0][1] = temp[0] * axis[1] + s * axis[2];
+ Rotate[0][2] = temp[0] * axis[2] - s * axis[1];
- Rotate[1][0] = 0 + temp[1] * axis[0] - s * axis[2];
+ Rotate[1][0] = temp[1] * axis[0] - s * axis[2];
Rotate[1][1] = c + temp[1] * axis[1];
- Rotate[1][2] = 0 + temp[1] * axis[2] + s * axis[0];
+ Rotate[1][2] = temp[1] * axis[2] + s * axis[0];
- Rotate[2][0] = 0 + temp[2] * axis[0] + s * axis[1];
- Rotate[2][1] = 0 + temp[2] * axis[1] - s * axis[0];
+ Rotate[2][0] = temp[2] * axis[0] + s * axis[1];
+ Rotate[2][1] = temp[2] * axis[1] - s * axis[0];
Rotate[2][2] = c + temp[2] * axis[2];
tmat4x4<T, P> Result(uninitialize);
@@ -85,12 +47,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate_slow
- (
- tmat4x4<T, P> const & m,
- T angle,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate_slow(tmat4x4<T, P> const & m, T angle, tvec3<T, P> const & v)
{
T const a = angle;
T const c = cos(a);
@@ -99,31 +56,27 @@ namespace glm
tvec3<T, P> axis = normalize(v);
- Result[0][0] = c + (1 - c) * axis.x * axis.x;
- Result[0][1] = (1 - c) * axis.x * axis.y + s * axis.z;
- Result[0][2] = (1 - c) * axis.x * axis.z - s * axis.y;
- Result[0][3] = 0;
+ Result[0][0] = c + (static_cast<T>(1) - c) * axis.x * axis.x;
+ Result[0][1] = (static_cast<T>(1) - c) * axis.x * axis.y + s * axis.z;
+ Result[0][2] = (static_cast<T>(1) - c) * axis.x * axis.z - s * axis.y;
+ Result[0][3] = static_cast<T>(0);
- Result[1][0] = (1 - c) * axis.y * axis.x - s * axis.z;
- Result[1][1] = c + (1 - c) * axis.y * axis.y;
- Result[1][2] = (1 - c) * axis.y * axis.z + s * axis.x;
- Result[1][3] = 0;
+ Result[1][0] = (static_cast<T>(1) - c) * axis.y * axis.x - s * axis.z;
+ Result[1][1] = c + (static_cast<T>(1) - c) * axis.y * axis.y;
+ Result[1][2] = (static_cast<T>(1) - c) * axis.y * axis.z + s * axis.x;
+ Result[1][3] = static_cast<T>(0);
- Result[2][0] = (1 - c) * axis.z * axis.x + s * axis.y;
- Result[2][1] = (1 - c) * axis.z * axis.y - s * axis.x;
- Result[2][2] = c + (1 - c) * axis.z * axis.z;
- Result[2][3] = 0;
+ Result[2][0] = (static_cast<T>(1) - c) * axis.z * axis.x + s * axis.y;
+ Result[2][1] = (static_cast<T>(1) - c) * axis.z * axis.y - s * axis.x;
+ Result[2][2] = c + (static_cast<T>(1) - c) * axis.z * axis.z;
+ Result[2][3] = static_cast<T>(0);
Result[3] = tvec4<T, P>(0, 0, 0, 1);
return m * Result;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale
- (
- tmat4x4<T, P> const & m,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> scale(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
{
tmat4x4<T, P> Result(uninitialize);
Result[0] = m[0] * v[0];
@@ -134,11 +87,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale_slow
- (
- tmat4x4<T, P> const & m,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> scale_slow(tmat4x4<T, P> const & m, tvec3<T, P> const & v)
{
tmat4x4<T, P> Result(T(1));
Result[0][0] = v.x;
@@ -150,31 +99,73 @@ namespace glm
template <typename T>
GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> ortho
(
- T left,
- T right,
- T bottom,
- T top,
- T zNear,
- T zFar
+ T left, T right,
+ T bottom, T top,
+ T zNear, T zFar
+ )
+ {
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
+ return orthoLH(left, right, bottom, top, zNear, zFar);
+# else
+ return orthoRH(left, right, bottom, top, zNear, zFar);
+# endif
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> orthoLH
+ (
+ T left, T right,
+ T bottom, T top,
+ T zNear, T zFar
)
{
tmat4x4<T, defaultp> Result(1);
Result[0][0] = static_cast<T>(2) / (right - left);
Result[1][1] = static_cast<T>(2) / (top - bottom);
- Result[2][2] = - static_cast<T>(2) / (zFar - zNear);
Result[3][0] = - (right + left) / (right - left);
Result[3][1] = - (top + bottom) / (top - bottom);
- Result[3][2] = - (zFar + zNear) / (zFar - zNear);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = static_cast<T>(1) / (zFar - zNear);
+ Result[3][2] = - zNear / (zFar - zNear);
+# else
+ Result[2][2] = static_cast<T>(2) / (zFar - zNear);
+ Result[3][2] = - (zFar + zNear) / (zFar - zNear);
+# endif
+
+ return Result;
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> orthoRH
+ (
+ T left, T right,
+ T bottom, T top,
+ T zNear, T zFar
+ )
+ {
+ tmat4x4<T, defaultp> Result(1);
+ Result[0][0] = static_cast<T>(2) / (right - left);
+ Result[1][1] = static_cast<T>(2) / (top - bottom);
+ Result[3][0] = - (right + left) / (right - left);
+ Result[3][1] = - (top + bottom) / (top - bottom);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = - static_cast<T>(1) / (zFar - zNear);
+ Result[3][2] = - zNear / (zFar - zNear);
+# else
+ Result[2][2] = - static_cast<T>(2) / (zFar - zNear);
+ Result[3][2] = - (zFar + zNear) / (zFar - zNear);
+# endif
+
return Result;
}
template <typename T>
GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> ortho
(
- T left,
- T right,
- T bottom,
- T top
+ T left, T right,
+ T bottom, T top
)
{
tmat4x4<T, defaultp> Result(1);
@@ -189,12 +180,24 @@ namespace glm
template <typename T>
GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustum
(
- T left,
- T right,
- T bottom,
- T top,
- T nearVal,
- T farVal
+ T left, T right,
+ T bottom, T top,
+ T nearVal, T farVal
+ )
+ {
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
+ return frustumLH(left, right, bottom, top, nearVal, farVal);
+# else
+ return frustumRH(left, right, bottom, top, nearVal, farVal);
+# endif
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustumLH
+ (
+ T left, T right,
+ T bottom, T top,
+ T nearVal, T farVal
)
{
tmat4x4<T, defaultp> Result(0);
@@ -202,36 +205,57 @@ namespace glm
Result[1][1] = (static_cast<T>(2) * nearVal) / (top - bottom);
Result[2][0] = (right + left) / (right - left);
Result[2][1] = (top + bottom) / (top - bottom);
- Result[2][2] = -(farVal + nearVal) / (farVal - nearVal);
- Result[2][3] = static_cast<T>(-1);
- Result[3][2] = -(static_cast<T>(2) * farVal * nearVal) / (farVal - nearVal);
+ Result[2][3] = static_cast<T>(1);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = farVal / (farVal - nearVal);
+ Result[3][2] = -(farVal * nearVal) / (farVal - nearVal);
+# else
+ Result[2][2] = (farVal + nearVal) / (farVal - nearVal);
+ Result[3][2] = - (static_cast<T>(2) * farVal * nearVal) / (farVal - nearVal);
+# endif
+
return Result;
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspective
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> frustumRH
(
- T fovy,
- T aspect,
- T zNear,
- T zFar
+ T left, T right,
+ T bottom, T top,
+ T nearVal, T farVal
)
{
- #ifdef GLM_LEFT_HANDED
+ tmat4x4<T, defaultp> Result(0);
+ Result[0][0] = (static_cast<T>(2) * nearVal) / (right - left);
+ Result[1][1] = (static_cast<T>(2) * nearVal) / (top - bottom);
+ Result[2][0] = (right + left) / (right - left);
+ Result[2][1] = (top + bottom) / (top - bottom);
+ Result[2][3] = static_cast<T>(-1);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = farVal / (nearVal - farVal);
+ Result[3][2] = -(farVal * nearVal) / (farVal - nearVal);
+# else
+ Result[2][2] = - (farVal + nearVal) / (farVal - nearVal);
+ Result[3][2] = - (static_cast<T>(2) * farVal * nearVal) / (farVal - nearVal);
+# endif
+
+ return Result;
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspective(T fovy, T aspect, T zNear, T zFar)
+ {
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return perspectiveLH(fovy, aspect, zNear, zFar);
- #else
+# else
return perspectiveRH(fovy, aspect, zNear, zFar);
- #endif
+# endif
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveRH
- (
- T fovy,
- T aspect,
- T zNear,
- T zFar
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveRH(T fovy, T aspect, T zNear, T zFar)
{
assert(abs(aspect - std::numeric_limits<T>::epsilon()) > static_cast<T>(0));
@@ -240,20 +264,21 @@ namespace glm
tmat4x4<T, defaultp> Result(static_cast<T>(0));
Result[0][0] = static_cast<T>(1) / (aspect * tanHalfFovy);
Result[1][1] = static_cast<T>(1) / (tanHalfFovy);
- Result[2][2] = - (zFar + zNear) / (zFar - zNear);
Result[2][3] = - static_cast<T>(1);
- Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = zFar / (zNear - zFar);
+ Result[3][2] = -(zFar * zNear) / (zFar - zNear);
+# else
+ Result[2][2] = - (zFar + zNear) / (zFar - zNear);
+ Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+# endif
+
return Result;
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveLH
- (
- T fovy,
- T aspect,
- T zNear,
- T zFar
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveLH(T fovy, T aspect, T zNear, T zFar)
{
assert(abs(aspect - std::numeric_limits<T>::epsilon()) > static_cast<T>(0));
@@ -262,38 +287,31 @@ namespace glm
tmat4x4<T, defaultp> Result(static_cast<T>(0));
Result[0][0] = static_cast<T>(1) / (aspect * tanHalfFovy);
Result[1][1] = static_cast<T>(1) / (tanHalfFovy);
- Result[2][2] = (zFar + zNear) / (zFar - zNear);
Result[2][3] = static_cast<T>(1);
- Result[3][2] = -(static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = zFar / (zFar - zNear);
+ Result[3][2] = -(zFar * zNear) / (zFar - zNear);
+# else
+ Result[2][2] = (zFar + zNear) / (zFar - zNear);
+ Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+# endif
+
return Result;
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFov
- (
- T fov,
- T width,
- T height,
- T zNear,
- T zFar
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFov(T fov, T width, T height, T zNear, T zFar)
{
- #ifdef GLM_LEFT_HANDED
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return perspectiveFovLH(fov, width, height, zNear, zFar);
- #else
+# else
return perspectiveFovRH(fov, width, height, zNear, zFar);
- #endif
+# endif
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovRH
- (
- T fov,
- T width,
- T height,
- T zNear,
- T zFar
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovRH(T fov, T width, T height, T zNear, T zFar)
{
assert(width > static_cast<T>(0));
assert(height > static_cast<T>(0));
@@ -306,21 +324,21 @@ namespace glm
tmat4x4<T, defaultp> Result(static_cast<T>(0));
Result[0][0] = w;
Result[1][1] = h;
- Result[2][2] = - (zFar + zNear) / (zFar - zNear);
Result[2][3] = - static_cast<T>(1);
- Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = zFar / (zNear - zFar);
+ Result[3][2] = -(zFar * zNear) / (zFar - zNear);
+# else
+ Result[2][2] = - (zFar + zNear) / (zFar - zNear);
+ Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+# endif
+
return Result;
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovLH
- (
- T fov,
- T width,
- T height,
- T zNear,
- T zFar
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> perspectiveFovLH(T fov, T width, T height, T zNear, T zFar)
{
assert(width > static_cast<T>(0));
assert(height > static_cast<T>(0));
@@ -333,52 +351,76 @@ namespace glm
tmat4x4<T, defaultp> Result(static_cast<T>(0));
Result[0][0] = w;
Result[1][1] = h;
- Result[2][2] = (zFar + zNear) / (zFar - zNear);
Result[2][3] = static_cast<T>(1);
- Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ Result[2][2] = zFar / (zFar - zNear);
+ Result[3][2] = -(zFar * zNear) / (zFar - zNear);
+# else
+ Result[2][2] = (zFar + zNear) / (zFar - zNear);
+ Result[3][2] = - (static_cast<T>(2) * zFar * zNear) / (zFar - zNear);
+# endif
+
return Result;
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspective
- (
- T fovy,
- T aspect,
- T zNear
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspective(T fovy, T aspect, T zNear)
+ {
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
+ return infinitePerspectiveLH(fovy, aspect, zNear);
+# else
+ return infinitePerspectiveRH(fovy, aspect, zNear);
+# endif
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspectiveRH(T fovy, T aspect, T zNear)
+ {
+ T const range = tan(fovy / static_cast<T>(2)) * zNear;
+ T const left = -range * aspect;
+ T const right = range * aspect;
+ T const bottom = -range;
+ T const top = range;
+
+ tmat4x4<T, defaultp> Result(static_cast<T>(0));
+ Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
+ Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
+ Result[2][2] = - static_cast<T>(1);
+ Result[2][3] = - static_cast<T>(1);
+ Result[3][2] = - static_cast<T>(2) * zNear;
+ return Result;
+ }
+
+ template <typename T>
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> infinitePerspectiveLH(T fovy, T aspect, T zNear)
{
- T const range = tan(fovy / T(2)) * zNear;
+ T const range = tan(fovy / static_cast<T>(2)) * zNear;
T const left = -range * aspect;
T const right = range * aspect;
T const bottom = -range;
T const top = range;
tmat4x4<T, defaultp> Result(T(0));
- Result[0][0] = (T(2) * zNear) / (right - left);
- Result[1][1] = (T(2) * zNear) / (top - bottom);
- Result[2][2] = - T(1);
- Result[2][3] = - T(1);
- Result[3][2] = - T(2) * zNear;
+ Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
+ Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
+ Result[2][2] = static_cast<T>(1);
+ Result[2][3] = static_cast<T>(1);
+ Result[3][2] = - static_cast<T>(2) * zNear;
return Result;
}
// Infinite projection matrix: http://www.terathon.com/gdc07_lengyel.pdf
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective
- (
- T fovy,
- T aspect,
- T zNear,
- T ep
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear, T ep)
{
- T const range = tan(fovy / T(2)) * zNear;
+ T const range = tan(fovy / static_cast<T>(2)) * zNear;
T const left = -range * aspect;
T const right = range * aspect;
T const bottom = -range;
T const top = range;
- tmat4x4<T, defaultp> Result(T(0));
+ tmat4x4<T, defaultp> Result(static_cast<T>(0));
Result[0][0] = (static_cast<T>(2) * zNear) / (right - left);
Result[1][1] = (static_cast<T>(2) * zNear) / (top - bottom);
Result[2][2] = ep - static_cast<T>(1);
@@ -388,12 +430,7 @@ namespace glm
}
template <typename T>
- GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective
- (
- T fovy,
- T aspect,
- T zNear
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, defaultp> tweakedInfinitePerspective(T fovy, T aspect, T zNear)
{
return tweakedInfinitePerspective(fovy, aspect, zNear, epsilon<T>());
}
@@ -407,12 +444,17 @@ namespace glm
tvec4<U, P> const & viewport
)
{
- tvec4<T, P> tmp = tvec4<T, P>(obj, T(1));
+ tvec4<T, P> tmp = tvec4<T, P>(obj, static_cast<T>(1));
tmp = model * tmp;
tmp = proj * tmp;
tmp /= tmp.w;
- tmp = tmp * T(0.5) + T(0.5);
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ tmp.x = tmp.x * static_cast<T>(0.5) + static_cast<T>(0.5);
+ tmp.y = tmp.y * static_cast<T>(0.5) + static_cast<T>(0.5);
+# else
+ tmp = tmp * static_cast<T>(0.5) + static_cast<T>(0.5);
+# endif
tmp[0] = tmp[0] * T(viewport[2]) + T(viewport[0]);
tmp[1] = tmp[1] * T(viewport[3]) + T(viewport[1]);
@@ -433,7 +475,12 @@ namespace glm
tvec4<T, P> tmp = tvec4<T, P>(win, T(1));
tmp.x = (tmp.x - T(viewport[0])) / T(viewport[2]);
tmp.y = (tmp.y - T(viewport[1])) / T(viewport[3]);
- tmp = tmp * T(2) - T(1);
+# if GLM_DEPTH_CLIP_SPACE == GLM_DEPTH_ZERO_TO_ONE
+ tmp.x = tmp.x * static_cast<T>(2) - static_cast<T>(1);
+ tmp.y = tmp.y * static_cast<T>(2) - static_cast<T>(1);
+# else
+ tmp = tmp * static_cast<T>(2) - static_cast<T>(1);
+# endif
tvec4<T, P> obj = Inverse * tmp;
obj /= obj.w;
@@ -442,42 +489,32 @@ namespace glm
}
template <typename T, precision P, typename U>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> pickMatrix
- (
- tvec2<T, P> const & center,
- tvec2<T, P> const & delta,
- tvec4<U, P> const & viewport
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> pickMatrix(tvec2<T, P> const & center, tvec2<T, P> const & delta, tvec4<U, P> const & viewport)
{
- assert(delta.x > T(0) && delta.y > T(0));
- tmat4x4<T, P> Result(1.0f);
+ assert(delta.x > static_cast<T>(0) && delta.y > static_cast<T>(0));
+ tmat4x4<T, P> Result(static_cast<T>(1));
- if(!(delta.x > T(0) && delta.y > T(0)))
+ if(!(delta.x > static_cast<T>(0) && delta.y > static_cast<T>(0)))
return Result; // Error
tvec3<T, P> Temp(
- (T(viewport[2]) - T(2) * (center.x - T(viewport[0]))) / delta.x,
- (T(viewport[3]) - T(2) * (center.y - T(viewport[1]))) / delta.y,
- T(0));
+ (static_cast<T>(viewport[2]) - static_cast<T>(2) * (center.x - static_cast<T>(viewport[0]))) / delta.x,
+ (static_cast<T>(viewport[3]) - static_cast<T>(2) * (center.y - static_cast<T>(viewport[1]))) / delta.y,
+ static_cast<T>(0));
// Translate and scale the picked region to the entire window
Result = translate(Result, Temp);
- return scale(Result, tvec3<T, P>(T(viewport[2]) / delta.x, T(viewport[3]) / delta.y, T(1)));
+ return scale(Result, tvec3<T, P>(static_cast<T>(viewport[2]) / delta.x, static_cast<T>(viewport[3]) / delta.y, static_cast<T>(1)));
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> lookAt
- (
- tvec3<T, P> const & eye,
- tvec3<T, P> const & center,
- tvec3<T, P> const & up
- )
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> lookAt(tvec3<T, P> const & eye, tvec3<T, P> const & center, tvec3<T, P> const & up)
{
- #ifdef GLM_LEFT_HANDED
+# if GLM_COORDINATE_SYSTEM == GLM_LEFT_HANDED
return lookAtLH(eye, center, up);
- #else
+# else
return lookAtRH(eye, center, up);
- #endif
+# endif
}
template <typename T, precision P>
diff --git a/glm/gtc/noise.hpp b/glm/gtc/noise.hpp
index 79f2dda..abd329a 100644
--- a/glm/gtc/noise.hpp
+++ b/glm/gtc/noise.hpp
@@ -1,46 +1,17 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_noise
/// @file glm/gtc/noise.hpp
-/// @date 2011-04-21 / 2011-09-27
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_noise GLM_GTC_noise
/// @ingroup gtc
-///
+///
/// Defines 2D, 3D and 4D procedural noise functions
/// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise":
/// https://github.com/ashima/webgl-noise
/// Following Stefan Gustavson's paper "Simplex noise demystified":
/// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
/// <glm/gtc/noise.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -55,7 +26,7 @@
#include "../vec3.hpp"
#include "../vec4.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_noise extension included")
#endif
diff --git a/glm/gtc/noise.inl b/glm/gtc/noise.inl
index 00ff073..7f59561 100644
--- a/glm/gtc/noise.inl
+++ b/glm/gtc/noise.inl
@@ -1,39 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_noise
/// @file glm/gtc/noise.inl
-/// @date 2011-04-21 / 2012-04-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
+///
// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise":
// https://github.com/ashima/webgl-noise
// Following Stefan Gustavson's paper "Simplex noise demystified":
// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
-///////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace gtc
diff --git a/glm/gtc/packing.hpp b/glm/gtc/packing.hpp
index 49b529a..afae845 100644
--- a/glm/gtc/packing.hpp
+++ b/glm/gtc/packing.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_packing
/// @file glm/gtc/packing.hpp
-/// @date 2013-08-08 / 2013-08-08
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_packing GLM_GTC_packing
/// @ingroup gtc
-///
+///
/// @brief This extension provides a set of function to convert vertors to packed
/// formats.
-///
+///
/// <glm/gtc/packing.hpp> need to be included to use these features.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "type_precision.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_packing extension included")
#endif
@@ -472,6 +443,136 @@ namespace glm
/// @see uint32 packF2x11_1x10(vec3 const & v)
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p);
+
+ /// First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.
+ /// Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value.
+ /// Then, the results are packed into the returned 32-bit unsigned integer.
+ ///
+ /// The first vector component specifies the 11 least-significant bits of the result;
+ /// the last component specifies the 10 most-significant bits.
+ ///
+ /// @see gtc_packing
+ /// @see vec3 unpackF3x9_E1x5(uint32 const & p)
+ GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const & v);
+
+ /// First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .
+ /// Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.
+ ///
+ /// The first component of the returned vector will be extracted from the least significant bits of the input;
+ /// the last component will be extracted from the most significant bits.
+ ///
+ /// @see gtc_packing
+ /// @see uint32 packF3x9_E1x5(vec3 const & v)
+ GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p);
+
+ /// Returns an unsigned integer vector obtained by converting the components of a floating-point vector
+ /// to the 16-bit floating-point representation found in the OpenGL Specification.
+ /// The first vector component specifies the 16 least-significant bits of the result;
+ /// the forth component specifies the 16 most-significant bits.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<float, P> unpackHalf(vecType<uint16, P> const & p)
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<uint16, P> packHalf(vecType<float, P> const & v);
+
+ /// Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.
+ /// The first component of the vector is obtained from the 16 least-significant bits of v;
+ /// the forth component is obtained from the 16 most-significant bits of v.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<uint16, P> packHalf(vecType<float, P> const & v)
+ /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions</a>
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<float, P> unpackHalf(vecType<uint16, P> const & p);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<floatType, P> unpackUnorm(vecType<intType, P> const & p);
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<uintType, P> packUnorm(vecType<floatType, P> const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<intType, P> packUnorm(vecType<floatType, P> const & v)
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<floatType, P> unpackUnorm(vecType<uintType, P> const & v);
+
+ /// Convert each component of the normalized floating-point vector into signed integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<floatType, P> unpackSnorm(vecType<intType, P> const & p);
+ template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<intType, P> packSnorm(vecType<floatType, P> const & v);
+
+ /// Convert each signed integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see vecType<intType, P> packSnorm(vecType<floatType, P> const & v)
+ template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<floatType, P> unpackSnorm(vecType<intType, P> const & v);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vec2 unpackUnorm2x4(uint8 p)
+ GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see uint8 packUnorm2x4(vec2 const & v)
+ GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vec4 unpackUnorm4x4(uint16 p)
+ GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see uint16 packUnorm4x4(vec4 const & v)
+ GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
+ GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see uint16 packUnorm1x5_1x6_1x5(vec3 const & v)
+ GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vec4 unpackUnorm3x5_1x1(uint16 p)
+ GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see uint16 packUnorm3x5_1x1(vec4 const & v)
+ GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p);
+
+ /// Convert each component of the normalized floating-point vector into unsigned integer values.
+ ///
+ /// @see gtc_packing
+ /// @see vec3 unpackUnorm2x3_1x2(uint8 p)
+ GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const & v);
+
+ /// Convert each unsigned integer components of a vector to normalized floating-point values.
+ ///
+ /// @see gtc_packing
+ /// @see uint8 packUnorm2x3_1x2(vec3 const & v)
+ GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p);
/// @}
}// namespace glm
diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl
index 529fdbc..1ffc327 100644
--- a/glm/gtc/packing.inl
+++ b/glm/gtc/packing.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_packing
/// @file glm/gtc/packing.inl
-/// @date 2013-08-08 / 2013-08-08
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../common.hpp"
#include "../vec2.hpp"
@@ -36,6 +7,7 @@
#include "../vec4.hpp"
#include "../detail/type_half.hpp"
#include <cstring>
+#include <limits>
namespace glm{
namespace detail
@@ -150,13 +122,8 @@ namespace detail
else if(glm::isinf(x))
return 0x1Fu << 6u;
-# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
- uint Pack = 0u;
- memcpy(&Pack, &x, sizeof(Pack));
-# else
- uint Pack = reinterpret_cast<uint&>(x);
-# endif
-
+ uint Pack = 0u;
+ memcpy(&Pack, &x, sizeof(Pack));
return float2packed11(Pack);
}
@@ -171,13 +138,9 @@ namespace detail
uint Result = packed11ToFloat(x);
-# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
- float Temp = 0;
- memcpy(&Temp, &Result, sizeof(Temp));
- return Temp;
-# else
- return reinterpret_cast<float&>(Result);
-# endif
+ float Temp = 0;
+ memcpy(&Temp, &Result, sizeof(Temp));
+ return Temp;
}
GLM_FUNC_QUALIFIER glm::uint floatTo10bit(float x)
@@ -189,13 +152,8 @@ namespace detail
else if(glm::isinf(x))
return 0x1Fu << 5u;
-# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
- uint Pack = 0;
- memcpy(&Pack, &x, sizeof(Pack));
-# else
- uint Pack = reinterpret_cast<uint&>(x);
-# endif
-
+ uint Pack = 0;
+ memcpy(&Pack, &x, sizeof(Pack));
return float2packed10(Pack);
}
@@ -210,13 +168,9 @@ namespace detail
uint Result = packed10ToFloat(x);
-# if(GLM_COMPILER & GLM_COMPILER_GCC || GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
- float Temp = 0;
- memcpy(&Temp, &Result, sizeof(Temp));
- return Temp;
-# else
- return reinterpret_cast<float&>(Result);
-# endif
+ float Temp = 0;
+ memcpy(&Temp, &Result, sizeof(Temp));
+ return Temp;
}
// GLM_FUNC_QUALIFIER glm::uint f11_f11_f10(float x, float y, float z)
@@ -224,6 +178,62 @@ namespace detail
// return ((floatTo11bit(x) & ((1 << 11) - 1)) << 0) | ((floatTo11bit(y) & ((1 << 11) - 1)) << 11) | ((floatTo10bit(z) & ((1 << 10) - 1)) << 22);
// }
+ union u3u3u2
+ {
+ struct
+ {
+ uint x : 3;
+ uint y : 3;
+ uint z : 2;
+ } data;
+ uint8 pack;
+ };
+
+ union u4u4
+ {
+ struct
+ {
+ uint x : 4;
+ uint y : 4;
+ } data;
+ uint8 pack;
+ };
+
+ union u4u4u4u4
+ {
+ struct
+ {
+ uint x : 4;
+ uint y : 4;
+ uint z : 4;
+ uint w : 4;
+ } data;
+ uint16 pack;
+ };
+
+ union u5u6u5
+ {
+ struct
+ {
+ uint x : 5;
+ uint y : 6;
+ uint z : 5;
+ } data;
+ uint16 pack;
+ };
+
+ union u5u5u5u1
+ {
+ struct
+ {
+ uint x : 5;
+ uint y : 5;
+ uint z : 5;
+ uint w : 1;
+ } data;
+ uint16 pack;
+ };
+
union u10u10u10u2
{
struct
@@ -248,6 +258,97 @@ namespace detail
uint32 pack;
};
+ union u9u9u9e5
+ {
+ struct
+ {
+ uint x : 9;
+ uint y : 9;
+ uint z : 9;
+ uint w : 5;
+ } data;
+ uint32 pack;
+ };
+
+ template <precision P, template <typename, precision> class vecType>
+ struct compute_half
+ {};
+
+ template <precision P>
+ struct compute_half<P, tvec1>
+ {
+ GLM_FUNC_QUALIFIER static tvec1<uint16, P> pack(tvec1<float, P> const & v)
+ {
+ int16 const Unpack(detail::toFloat16(v.x));
+ u16vec1 Packed(uninitialize);
+ memcpy(&Packed, &Unpack, sizeof(Packed));
+ return Packed;
+ }
+
+ GLM_FUNC_QUALIFIER static tvec1<float, P> unpack(tvec1<uint16, P> const & v)
+ {
+ i16vec1 Unpack(uninitialize);
+ memcpy(&Unpack, &v, sizeof(Unpack));
+ return tvec1<float, P>(detail::toFloat32(v.x));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec2>
+ {
+ GLM_FUNC_QUALIFIER static tvec2<uint16, P> pack(tvec2<float, P> const & v)
+ {
+ tvec2<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y));
+ u16vec2 Packed(uninitialize);
+ memcpy(&Packed, &Unpack, sizeof(Packed));
+ return Packed;
+ }
+
+ GLM_FUNC_QUALIFIER static tvec2<float, P> unpack(tvec2<uint16, P> const & v)
+ {
+ i16vec2 Unpack(uninitialize);
+ memcpy(&Unpack, &v, sizeof(Unpack));
+ return tvec2<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec3>
+ {
+ GLM_FUNC_QUALIFIER static tvec3<uint16, P> pack(tvec3<float, P> const & v)
+ {
+ tvec3<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z));
+ u16vec3 Packed(uninitialize);
+ memcpy(&Packed, &Unpack, sizeof(Packed));
+ return Packed;
+ }
+
+ GLM_FUNC_QUALIFIER static tvec3<float, P> unpack(tvec3<uint16, P> const & v)
+ {
+ i16vec3 Unpack(uninitialize);
+ memcpy(&Unpack, &v, sizeof(Unpack));
+ return tvec3<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z));
+ }
+ };
+
+ template <precision P>
+ struct compute_half<P, tvec4>
+ {
+ GLM_FUNC_QUALIFIER static tvec4<uint16, P> pack(tvec4<float, P> const & v)
+ {
+ tvec4<int16, P> const Unpack(detail::toFloat16(v.x), detail::toFloat16(v.y), detail::toFloat16(v.z), detail::toFloat16(v.w));
+ u16vec4 Packed(uninitialize);
+ memcpy(&Packed, &Unpack, sizeof(Packed));
+ return Packed;
+ }
+
+ GLM_FUNC_QUALIFIER static tvec4<float, P> unpack(tvec4<uint16, P> const & v)
+ {
+ i16vec4 Unpack(uninitialize);
+ memcpy(&Unpack, &v, sizeof(Unpack));
+ return tvec4<float, P>(detail::toFloat32(v.x), detail::toFloat32(v.y), detail::toFloat32(v.z), detail::toFloat32(v.w));
+ }
+ };
}//namespace detail
GLM_FUNC_QUALIFIER uint8 packUnorm1x8(float v)
@@ -264,43 +365,53 @@ namespace detail
GLM_FUNC_QUALIFIER uint16 packUnorm2x8(vec2 const & v)
{
u8vec2 const Topack(round(clamp(v, 0.0f, 1.0f) * 255.0f));
- return reinterpret_cast<uint16 const &>(Topack);
+
+ uint16 Unpack = 0;
+ memcpy(&Unpack, &Topack, sizeof(Unpack));
+ return Unpack;
}
GLM_FUNC_QUALIFIER vec2 unpackUnorm2x8(uint16 p)
{
- vec2 const Unpack(reinterpret_cast<u8vec2 const &>(p));
- return Unpack * float(0.0039215686274509803921568627451); // 1 / 255
+ u8vec2 Unpack(uninitialize);
+ memcpy(&Unpack, &p, sizeof(Unpack));
+ return vec2(Unpack) * float(0.0039215686274509803921568627451); // 1 / 255
}
GLM_FUNC_QUALIFIER uint8 packSnorm1x8(float v)
{
int8 const Topack(static_cast<int8>(round(clamp(v ,-1.0f, 1.0f) * 127.0f)));
- return reinterpret_cast<uint8 const &>(Topack);
+ uint8 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER float unpackSnorm1x8(uint8 p)
{
- float const Unpack(reinterpret_cast<int8 const &>(p));
+ int8 Unpack = 0;
+ memcpy(&Unpack, &p, sizeof(Unpack));
return clamp(
- Unpack * 0.00787401574803149606299212598425f, // 1.0f / 127.0f
+ static_cast<float>(Unpack) * 0.00787401574803149606299212598425f, // 1.0f / 127.0f
-1.0f, 1.0f);
}
GLM_FUNC_QUALIFIER uint16 packSnorm2x8(vec2 const & v)
{
i8vec2 const Topack(round(clamp(v, -1.0f, 1.0f) * 127.0f));
- return reinterpret_cast<uint16 const &>(Topack);
+ uint16 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER vec2 unpackSnorm2x8(uint16 p)
{
- vec2 const Unpack(reinterpret_cast<i8vec2 const &>(p));
+ i8vec2 Unpack(uninitialize);
+ memcpy(&Unpack, &p, sizeof(Unpack));
return clamp(
- Unpack * 0.00787401574803149606299212598425f, // 1.0f / 127.0f
+ vec2(Unpack) * 0.00787401574803149606299212598425f, // 1.0f / 127.0f
-1.0f, 1.0f);
}
-
+
GLM_FUNC_QUALIFIER uint16 packUnorm1x16(float s)
{
return static_cast<uint16>(round(clamp(s, 0.0f, 1.0f) * 65535.0f));
@@ -315,69 +426,83 @@ namespace detail
GLM_FUNC_QUALIFIER uint64 packUnorm4x16(vec4 const & v)
{
u16vec4 const Topack(round(clamp(v , 0.0f, 1.0f) * 65535.0f));
- return reinterpret_cast<uint64 const &>(Topack);
+ uint64 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER vec4 unpackUnorm4x16(uint64 p)
{
- vec4 const Unpack(reinterpret_cast<u16vec4 const &>(p));
- return Unpack * 1.5259021896696421759365224689097e-5f; // 1.0 / 65535.0
+ u16vec4 Unpack(uninitialize);
+ memcpy(&Unpack, &p, sizeof(Unpack));
+ return vec4(Unpack) * 1.5259021896696421759365224689097e-5f; // 1.0 / 65535.0
}
GLM_FUNC_QUALIFIER uint16 packSnorm1x16(float v)
{
int16 const Topack = static_cast<int16>(round(clamp(v ,-1.0f, 1.0f) * 32767.0f));
- return reinterpret_cast<uint16 const &>(Topack);
+ uint16 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER float unpackSnorm1x16(uint16 p)
{
- float const Unpack(reinterpret_cast<int16 const &>(p));
+ int16 Unpack = 0;
+ memcpy(&Unpack, &p, sizeof(Unpack));
return clamp(
- Unpack * 3.0518509475997192297128208258309e-5f, //1.0f / 32767.0f,
+ static_cast<float>(Unpack) * 3.0518509475997192297128208258309e-5f, //1.0f / 32767.0f,
-1.0f, 1.0f);
}
GLM_FUNC_QUALIFIER uint64 packSnorm4x16(vec4 const & v)
{
i16vec4 const Topack(round(clamp(v ,-1.0f, 1.0f) * 32767.0f));
- return reinterpret_cast<uint64 const &>(Topack);
+ uint64 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER vec4 unpackSnorm4x16(uint64 p)
{
- vec4 const Unpack(reinterpret_cast<i16vec4 const &>(p));
+ i16vec4 Unpack(uninitialize);
+ memcpy(&Unpack, &p, sizeof(Unpack));
return clamp(
- Unpack * 3.0518509475997192297128208258309e-5f, //1.0f / 32767.0f,
+ vec4(Unpack) * 3.0518509475997192297128208258309e-5f, //1.0f / 32767.0f,
-1.0f, 1.0f);
}
GLM_FUNC_QUALIFIER uint16 packHalf1x16(float v)
{
int16 const Topack(detail::toFloat16(v));
- return reinterpret_cast<uint16 const &>(Topack);
+ uint16 Packed = 0;
+ memcpy(&Packed, &Topack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER float unpackHalf1x16(uint16 v)
{
- return detail::toFloat32(reinterpret_cast<int16 const &>(v));
+ int16 Unpack = 0;
+ memcpy(&Unpack, &v, sizeof(Unpack));
+ return detail::toFloat32(Unpack);
}
GLM_FUNC_QUALIFIER uint64 packHalf4x16(glm::vec4 const & v)
{
- i16vec4 Unpack(
+ i16vec4 const Unpack(
detail::toFloat16(v.x),
detail::toFloat16(v.y),
detail::toFloat16(v.z),
detail::toFloat16(v.w));
-
- return reinterpret_cast<uint64 const &>(Unpack);
+ uint64 Packed = 0;
+ memcpy(&Packed, &Unpack, sizeof(Packed));
+ return Packed;
}
GLM_FUNC_QUALIFIER glm::vec4 unpackHalf4x16(uint64 v)
{
- i16vec4 Unpack(reinterpret_cast<i16vec4 const &>(v));
-
+ i16vec4 Unpack(uninitialize);
+ memcpy(&Unpack, &v, sizeof(Unpack));
return vec4(
detail::toFloat32(Unpack.x),
detail::toFloat32(Unpack.y),
@@ -486,4 +611,171 @@ namespace detail
detail::packed10bitToFloat(v >> 22));
}
+ GLM_FUNC_QUALIFIER uint32 packF3x9_E1x5(vec3 const & v)
+ {
+ float const SharedExpMax = (pow(2.0f, 9.0f - 1.0f) / pow(2.0f, 9.0f)) * pow(2.0f, 31.f - 15.f);
+ vec3 const Color = clamp(v, 0.0f, SharedExpMax);
+ float const MaxColor = max(Color.x, max(Color.y, Color.z));
+
+ float const ExpSharedP = max(-15.f - 1.f, floor(log2(MaxColor))) + 1.0f + 15.f;
+ float const MaxShared = floor(MaxColor / pow(2.0f, (ExpSharedP - 16.f - 9.f)) + 0.5f);
+ float const ExpShared = MaxShared == pow(2.0f, 9.0f) ? ExpSharedP + 1.0f : ExpSharedP;
+
+ uvec3 const ColorComp(floor(Color / pow(2.f, (ExpShared - 15.f - 9.f)) + 0.5f));
+
+ detail::u9u9u9e5 Unpack;
+ Unpack.data.x = ColorComp.x;
+ Unpack.data.y = ColorComp.y;
+ Unpack.data.z = ColorComp.z;
+ Unpack.data.w = uint(ExpShared);
+ return Unpack.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackF3x9_E1x5(uint32 v)
+ {
+ detail::u9u9u9e5 Unpack;
+ Unpack.pack = v;
+
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * pow(2.0f, Unpack.data.w - 15.f - 9.f);
+ }
+
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<uint16, P> packHalf(vecType<float, P> const & v)
+ {
+ return detail::compute_half<P, vecType>::pack(v);
+ }
+
+ template <precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<float, P> unpackHalf(vecType<uint16, P> const & v)
+ {
+ return detail::compute_half<P, vecType>::unpack(v);
+ }
+
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<uintType, P> packUnorm(vecType<floatType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return vecType<uintType, P>(round(clamp(v, static_cast<floatType>(0), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<uintType>::max())));
+ }
+
+ template <typename uintType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<floatType, P> unpackUnorm(vecType<uintType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<uintType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return vecType<float, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<uintType>::max()));
+ }
+
+ template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<intType, P> packSnorm(vecType<floatType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return vecType<intType, P>(round(clamp(v , static_cast<floatType>(-1), static_cast<floatType>(1)) * static_cast<floatType>(std::numeric_limits<intType>::max())));
+ }
+
+ template <typename intType, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<floatType, P> unpackSnorm(vecType<intType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<intType>::is_integer, "uintType must be an integer type");
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "floatType must be a floating point type");
+
+ return clamp(vecType<floatType, P>(v) * (static_cast<floatType>(1) / static_cast<floatType>(std::numeric_limits<intType>::max())), static_cast<floatType>(-1), static_cast<floatType>(1));
+ }
+
+ GLM_FUNC_QUALIFIER uint8 packUnorm2x4(vec2 const & v)
+ {
+ u32vec2 const Unpack(round(clamp(v, 0.0f, 1.0f) * 15.0f));
+ detail::u4u4 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec2 unpackUnorm2x4(uint8 v)
+ {
+ float const ScaleFactor(1.f / 15.f);
+ detail::u4u4 Unpack;
+ Unpack.pack = v;
+ return vec2(Unpack.data.x, Unpack.data.y) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm4x4(vec4 const & v)
+ {
+ u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * 15.0f));
+ detail::u4u4u4u4 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ Result.data.w = Unpack.w;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec4 unpackUnorm4x4(uint16 v)
+ {
+ float const ScaleFactor(1.f / 15.f);
+ detail::u4u4u4u4 Unpack;
+ Unpack.pack = v;
+ return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm1x5_1x6_1x5(vec3 const & v)
+ {
+ u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(15.f, 31.f, 15.f)));
+ detail::u5u6u5 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackUnorm1x5_1x6_1x5(uint16 v)
+ {
+ vec3 const ScaleFactor(1.f / 15.f, 1.f / 31.f, 1.f / 15.f);
+ detail::u5u6u5 Unpack;
+ Unpack.pack = v;
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint16 packUnorm3x5_1x1(vec4 const & v)
+ {
+ u32vec4 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec4(15.f, 15.f, 15.f, 1.f)));
+ detail::u5u5u5u1 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ Result.data.w = Unpack.w;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec4 unpackUnorm3x5_1x1(uint16 v)
+ {
+ vec4 const ScaleFactor(1.f / 15.f, 1.f / 15.f, 1.f / 15.f, 1.f);
+ detail::u5u5u5u1 Unpack;
+ Unpack.pack = v;
+ return vec4(Unpack.data.x, Unpack.data.y, Unpack.data.z, Unpack.data.w) * ScaleFactor;
+ }
+
+ GLM_FUNC_QUALIFIER uint8 packUnorm2x3_1x2(vec3 const & v)
+ {
+ u32vec3 const Unpack(round(clamp(v, 0.0f, 1.0f) * vec3(7.f, 7.f, 3.f)));
+ detail::u3u3u2 Result;
+ Result.data.x = Unpack.x;
+ Result.data.y = Unpack.y;
+ Result.data.z = Unpack.z;
+ return Result.pack;
+ }
+
+ GLM_FUNC_QUALIFIER vec3 unpackUnorm2x3_1x2(uint8 v)
+ {
+ vec3 const ScaleFactor(1.f / 7.f, 1.f / 7.f, 1.f / 3.f);
+ detail::u3u3u2 Unpack;
+ Unpack.pack = v;
+ return vec3(Unpack.data.x, Unpack.data.y, Unpack.data.z) * ScaleFactor;
+ }
}//namespace glm
+
diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp
index 2152895..7ca6af4 100644
--- a/glm/gtc/quaternion.hpp
+++ b/glm/gtc/quaternion.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_quaternion
/// @file glm/gtc/quaternion.hpp
-/// @date 2009-05-21 / 2012-12-20
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -35,11 +7,10 @@
///
/// @defgroup gtc_quaternion GLM_GTC_quaternion
/// @ingroup gtc
-///
+///
/// @brief Defines a templated quaternion type and several quaternion operations.
-///
+///
/// <glm/gtc/quaternion.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +21,7 @@
#include "../vec4.hpp"
#include "../gtc/constants.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_quaternion extension included")
#endif
@@ -67,50 +38,61 @@ namespace glm
typedef tquat<T, P> type;
typedef T value_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
// -- Data --
- T x, y, z, w;
+# if GLM_HAS_ALIGNED_TYPE
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-pedantic"
+# endif
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+# pragma clang diagnostic ignored "-Wnested-anon-types"
+# endif
+
+ union
+ {
+ struct { T x, y, z, w;};
+ typename detail::storage<T, sizeof(T) * 4, detail::is_aligned<P>::value>::type data;
+ };
+
+# if GLM_COMPILER & GLM_COMPILER_CLANG
+# pragma clang diagnostic pop
+# endif
+# if GLM_COMPILER & GLM_COMPILER_GCC
+# pragma GCC diagnostic pop
+# endif
+# else
+ T x, y, z, w;
+# endif
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- /// Return the count of components of a quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
-
- GLM_FUNC_DECL T & operator[](size_type i);
- GLM_FUNC_DECL T const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- /// Return the count of components of a quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ /// Return the count of components of a quaternion
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL T & operator[](length_type i);
- GLM_FUNC_DECL T const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL T & operator[](length_type i);
+ GLM_FUNC_DECL T const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tquat() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tquat(tquat<T, P> const & q) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, P> const & q) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tquat(tquat<T, Q> const & q);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(tquat<T, Q> const & q);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tquat(ctor);
- GLM_FUNC_DECL explicit tquat(T const & s, tvec3<T, P> const & v);
- GLM_FUNC_DECL tquat(T const & w, T const & x, T const & y, T const & z);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tquat(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & s, tvec3<T, P> const & v);
+ GLM_FUNC_DECL GLM_CONSTEXPR tquat(T const & w, T const & x, T const & y, T const & z);
// -- Conversion constructors --
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tquat(tquat<U, Q> const & q);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tquat(tquat<U, Q> const & q);
/// Explicit conversion operators
# if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
@@ -124,12 +106,12 @@ namespace glm
/// @param v A second normalized axis
/// @see gtc_quaternion
/// @see http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors
- GLM_FUNC_DECL explicit tquat(tvec3<T, P> const & u, tvec3<T, P> const & v);
+ GLM_FUNC_DECL tquat(tvec3<T, P> const & u, tvec3<T, P> const & v);
/// Build a quaternion from euler angles (pitch, yaw, roll), in radians.
- GLM_FUNC_DECL explicit tquat(tvec3<T, P> const & eulerAngles);
- GLM_FUNC_DECL explicit tquat(tmat3x3<T, P> const & m);
- GLM_FUNC_DECL explicit tquat(tmat4x4<T, P> const & m);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(tvec3<T, P> const & eulerAngles);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat3x3<T, P> const & m);
+ GLM_FUNC_DECL GLM_EXPLICIT tquat(tmat4x4<T, P> const & m);
// -- Unary arithmetic operators --
@@ -140,6 +122,8 @@ namespace glm
template <typename U>
GLM_FUNC_DECL tquat<T, P> & operator+=(tquat<U, P> const & q);
template <typename U>
+ GLM_FUNC_DECL tquat<T, P> & operator-=(tquat<U, P> const & q);
+ template <typename U>
GLM_FUNC_DECL tquat<T, P> & operator*=(tquat<U, P> const & q);
template <typename U>
GLM_FUNC_DECL tquat<T, P> & operator*=(U s);
@@ -267,7 +251,7 @@ namespace glm
template <typename T, precision P>
GLM_FUNC_DECL tquat<T, P> rotate(tquat<T, P> const & q, T const & angle, tvec3<T, P> const & axis);
- /// Returns euler angles, yitch as x, yaw as y, roll as z.
+ /// Returns euler angles, pitch as x, yaw as y, roll as z.
/// The result is expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise.
///
/// @see gtc_quaternion
@@ -384,6 +368,29 @@ namespace glm
/// @see gtc_quaternion
template <typename T, precision P>
GLM_FUNC_DECL tvec4<bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y);
+
+ /// Returns true if x holds a NaN (not a number)
+ /// representation in the underlying implementation's set of
+ /// floating point representations. Returns false otherwise,
+ /// including for implementations with no NaN
+ /// representations.
+ ///
+ /// /!\ When using compiler fast math, this function may fail.
+ ///
+ /// @tparam genType Floating-point scalar or vector types.
+ template <typename T, precision P>
+ GLM_FUNC_DECL tvec4<bool, P> isnan(tquat<T, P> const & x);
+
+ /// Returns true if x holds a positive infinity or negative
+ /// infinity representation in the underlying implementation's
+ /// set of floating point representations. Returns false
+ /// otherwise, including for implementations with no infinity
+ /// representations.
+ ///
+ /// @tparam genType Floating-point scalar or vector types.
+ template <typename T, precision P>
+ GLM_FUNC_DECL tvec4<bool, P> isinf(tquat<T, P> const & x);
+
/// @}
} //namespace glm
diff --git a/glm/gtc/quaternion.inl b/glm/gtc/quaternion.inl
index 83f25ff..04fbbcb 100644
--- a/glm/gtc/quaternion.inl
+++ b/glm/gtc/quaternion.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_quaternion
/// @file glm/gtc/quaternion.inl
-/// @date 2009-05-21 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../trigonometric.hpp"
#include "../geometric.hpp"
@@ -38,66 +9,89 @@
namespace glm{
namespace detail
{
- template <typename T, precision P>
- struct compute_dot<tquat, T, P>
+ template <typename T, precision P, bool Aligned>
+ struct compute_dot<tquat, T, P, Aligned>
{
- static GLM_FUNC_QUALIFIER T call(tquat<T, P> const & x, tquat<T, P> const & y)
+ static GLM_FUNC_QUALIFIER T call(tquat<T, P> const& x, tquat<T, P> const& y)
{
tvec4<T, P> tmp(x.x * y.x, x.y * y.y, x.z * y.z, x.w * y.w);
return (tmp.x + tmp.y) + (tmp.z + tmp.w);
}
};
-}//namespace detail
-
- // -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat<T, P>::size_type tquat<T, P>::size() const
+ template <typename T, precision P, bool Aligned>
+ struct compute_quat_add
+ {
+ static tquat<T, P> call(tquat<T, P> const& q, tquat<T, P> const& p)
{
- return 4;
+ return tquat<T, P>(q.w + p.w, q.x + p.x, q.y + p.y, q.z + p.z);
}
+ };
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tquat<T, P>::operator[](typename tquat<T, P>::size_type i)
+ template <typename T, precision P, bool Aligned>
+ struct compute_quat_sub
+ {
+ static tquat<T, P> call(tquat<T, P> const& q, tquat<T, P> const& p)
{
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
+ return tquat<T, P>(q.w - p.w, q.x - p.x, q.y - p.y, q.z - p.z);
}
+ };
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tquat<T, P>::operator[](typename tquat<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat<T, P>::length_type tquat<T, P>::length() const
+ template <typename T, precision P, bool Aligned>
+ struct compute_quat_mul_scalar
+ {
+ static tquat<T, P> call(tquat<T, P> const& q, T s)
{
- return 4;
+ return tquat<T, P>(q.w * s, q.x * s, q.y * s, q.z * s);
}
+ };
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T & tquat<T, P>::operator[](typename tquat<T, P>::length_type i)
+ template <typename T, precision P, bool Aligned>
+ struct compute_quat_div_scalar
+ {
+ static tquat<T, P> call(tquat<T, P> const& q, T s)
{
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
+ return tquat<T, P>(q.w / s, q.x / s, q.y / s, q.z / s);
}
+ };
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER T const & tquat<T, P>::operator[](typename tquat<T, P>::length_type i) const
+ template <typename T, precision P, bool Aligned>
+ struct compute_quat_mul_vec4
+ {
+ static tvec4<T, P> call(tquat<T, P> const & q, tvec4<T, P> const & v)
{
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&x)[i];
+ return tvec4<T, P>(q * tvec3<T, P>(v), v.w);
}
-# endif//GLM_FORCE_SIZE_FUNC
+ };
+}//namespace detail
+
+ // -- Component accesses --
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tquat<T, P>::length_type tquat<T, P>::length() const
+ {
+ return 4;
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T & tquat<T, P>::operator[](typename tquat<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER T const & tquat<T, P>::operator[](typename tquat<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&x)[i];
+ }
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat()
# ifndef GLM_FORCE_NO_CTOR_INIT
: x(0), y(0), z(0), w(1)
# endif
@@ -106,30 +100,30 @@ namespace detail
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tquat<T, P> const & q)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<T, P> const & q)
: x(q.x), y(q.y), z(q.z), w(q.w)
{}
# endif//!GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tquat<T, Q> const & q)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<T, Q> const & q)
: x(q.x), y(q.y), z(q.z), w(q.w)
{}
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tquat<T, P>::tquat(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(T const & s, tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T const & s, tvec3<T, P> const & v)
: x(v.x), y(v.y), z(v.z), w(s)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(T const & w, T const & x, T const & y, T const & z)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(T const & w, T const & x, T const & y, T const & z)
: x(x), y(y), z(z), w(w)
{}
@@ -137,7 +131,7 @@ namespace detail
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tquat<U, Q> const & q)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tquat<T, P>::tquat(tquat<U, Q> const & q)
: x(static_cast<T>(q.x))
, y(static_cast<T>(q.y))
, z(static_cast<T>(q.z))
@@ -166,7 +160,7 @@ namespace detail
GLM_FUNC_QUALIFIER tquat<T, P>::tquat(tvec3<T, P> const & u, tvec3<T, P> const & v)
{
tvec3<T, P> const LocalW(cross(u, v));
- T Dot = detail::compute_dot<tvec3, T, P>::call(u, v);
+ T Dot = detail::compute_dot<tvec3, T, P, detail::is_aligned<P>::value>::call(u, v);
tquat<T, P> q(T(1) + Dot, LocalW.x, LocalW.y, LocalW.z);
*this = normalize(q);
@@ -249,13 +243,16 @@ namespace detail
template <typename T, precision P>
template <typename U>
- GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator+=(tquat<U, P> const & q)
+ GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator+=(tquat<U, P> const& q)
{
- this->w += static_cast<T>(q.w);
- this->x += static_cast<T>(q.x);
- this->y += static_cast<T>(q.y);
- this->z += static_cast<T>(q.z);
- return *this;
+ return (*this = detail::compute_quat_add<T, P, detail::is_aligned<P>::value>::call(*this, tquat<T, P>(q)));
+ }
+
+ template <typename T, precision P>
+ template <typename U>
+ GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator-=(tquat<U, P> const& q)
+ {
+ return (*this = detail::compute_quat_sub<T, P, detail::is_aligned<P>::value>::call(*this, tquat<T, P>(q)));
}
template <typename T, precision P>
@@ -276,22 +273,14 @@ namespace detail
template <typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator*=(U s)
{
- this->w *= static_cast<U>(s);
- this->x *= static_cast<U>(s);
- this->y *= static_cast<U>(s);
- this->z *= static_cast<U>(s);
- return *this;
+ return (*this = detail::compute_quat_mul_scalar<T, P, detail::is_aligned<P>::value>::call(*this, static_cast<U>(s)));
}
template <typename T, precision P>
template <typename U>
GLM_FUNC_QUALIFIER tquat<T, P> & tquat<T, P>::operator/=(U s)
{
- this->w /= static_cast<U>(s);
- this->x /= static_cast<U>(s);
- this->y /= static_cast<U>(s);
- this->z /= static_cast<U>(s);
- return *this;
+ return (*this = detail::compute_quat_div_scalar<T, P, detail::is_aligned<P>::value>::call(*this, static_cast<U>(s)));
}
// -- Unary bit operators --
@@ -339,9 +328,9 @@ namespace detail
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tquat<T, P> const & q, tvec4<T, P> const & v)
+ GLM_FUNC_QUALIFIER tvec4<T, P> operator*(tquat<T, P> const& q, tvec4<T, P> const& v)
{
- return tvec4<T, P>(q * tvec3<T, P>(v), v.w);
+ return detail::compute_quat_mul_vec4<T, P, detail::is_aligned<P>::value>::call(q, v);
}
template <typename T, precision P>
@@ -614,17 +603,17 @@ namespace detail
T qwy(q.w * q.y);
T qwz(q.w * q.z);
- Result[0][0] = 1 - 2 * (qyy + qzz);
- Result[0][1] = 2 * (qxy + qwz);
- Result[0][2] = 2 * (qxz - qwy);
+ Result[0][0] = T(1) - T(2) * (qyy + qzz);
+ Result[0][1] = T(2) * (qxy + qwz);
+ Result[0][2] = T(2) * (qxz - qwy);
- Result[1][0] = 2 * (qxy - qwz);
- Result[1][1] = 1 - 2 * (qxx + qzz);
- Result[1][2] = 2 * (qyz + qwx);
+ Result[1][0] = T(2) * (qxy - qwz);
+ Result[1][1] = T(1) - T(2) * (qxx + qzz);
+ Result[1][2] = T(2) * (qyz + qwx);
- Result[2][0] = 2 * (qxz + qwy);
- Result[2][1] = 2 * (qyz - qwx);
- Result[2][2] = 1 - 2 * (qxx + qyy);
+ Result[2][0] = T(2) * (qxz + qwy);
+ Result[2][1] = T(2) * (qyz - qwx);
+ Result[2][2] = T(1) - T(2) * (qxx + qyy);
return Result;
}
@@ -739,7 +728,7 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> lessThan(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] < y[i];
return Result;
}
@@ -748,7 +737,7 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> lessThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] <= y[i];
return Result;
}
@@ -757,7 +746,7 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> greaterThan(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] > y[i];
return Result;
}
@@ -766,7 +755,7 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> greaterThanEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] >= y[i];
return Result;
}
@@ -775,7 +764,7 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> equal(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] == y[i];
return Result;
}
@@ -784,8 +773,29 @@ namespace detail
GLM_FUNC_QUALIFIER tvec4<bool, P> notEqual(tquat<T, P> const & x, tquat<T, P> const & y)
{
tvec4<bool, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0; i < x.length(); ++i)
Result[i] = x[i] != y[i];
return Result;
}
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec4<bool, P> isnan(tquat<T, P> const& q)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isnan' only accept floating-point inputs");
+
+ return tvec4<bool, P>(isnan(q.x), isnan(q.y), isnan(q.z), isnan(q.w));
+ }
+
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER tvec4<bool, P> isinf(tquat<T, P> const& q)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'isinf' only accept floating-point inputs");
+
+ return tvec4<bool, P>(isinf(q.x), isinf(q.y), isinf(q.z), isinf(q.w));
+ }
}//namespace glm
+
+#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ALIGNED_TYPE
+# include "quaternion_simd.inl"
+#endif
+
diff --git a/glm/gtc/quaternion_simd.inl b/glm/gtc/quaternion_simd.inl
new file mode 100644
index 0000000..dba05b2
--- /dev/null
+++ b/glm/gtc/quaternion_simd.inl
@@ -0,0 +1,198 @@
+/// @ref core
+/// @file glm/gtc/quaternion_simd.inl
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+namespace glm{
+namespace detail
+{
+/*
+ template <precision P>
+ struct compute_quat_mul<float, P, true>
+ {
+ static tquat<float, P> call(tquat<float, P> const& q1, tquat<float, P> const& q2)
+ {
+ // SSE2 STATS: 11 shuffle, 8 mul, 8 add
+ // SSE4 STATS: 3 shuffle, 4 mul, 4 dpps
+
+ __m128 const mul0 = _mm_mul_ps(q1.Data, _mm_shuffle_ps(q2.Data, q2.Data, _MM_SHUFFLE(0, 1, 2, 3)));
+ __m128 const mul1 = _mm_mul_ps(q1.Data, _mm_shuffle_ps(q2.Data, q2.Data, _MM_SHUFFLE(1, 0, 3, 2)));
+ __m128 const mul2 = _mm_mul_ps(q1.Data, _mm_shuffle_ps(q2.Data, q2.Data, _MM_SHUFFLE(2, 3, 0, 1)));
+ __m128 const mul3 = _mm_mul_ps(q1.Data, q2.Data);
+
+# if GLM_ARCH & GLM_ARCH_SSE41_BIT
+ __m128 const add0 = _mm_dp_ps(mul0, _mm_set_ps(1.0f, -1.0f, 1.0f, 1.0f), 0xff);
+ __m128 const add1 = _mm_dp_ps(mul1, _mm_set_ps(1.0f, 1.0f, 1.0f, -1.0f), 0xff);
+ __m128 const add2 = _mm_dp_ps(mul2, _mm_set_ps(1.0f, 1.0f, -1.0f, 1.0f), 0xff);
+ __m128 const add3 = _mm_dp_ps(mul3, _mm_set_ps(1.0f, -1.0f, -1.0f, -1.0f), 0xff);
+# else
+ __m128 const mul4 = _mm_mul_ps(mul0, _mm_set_ps(1.0f, -1.0f, 1.0f, 1.0f));
+ __m128 const add0 = _mm_add_ps(mul0, _mm_movehl_ps(mul4, mul4));
+ __m128 const add4 = _mm_add_ss(add0, _mm_shuffle_ps(add0, add0, 1));
+
+ __m128 const mul5 = _mm_mul_ps(mul1, _mm_set_ps(1.0f, 1.0f, 1.0f, -1.0f));
+ __m128 const add1 = _mm_add_ps(mul1, _mm_movehl_ps(mul5, mul5));
+ __m128 const add5 = _mm_add_ss(add1, _mm_shuffle_ps(add1, add1, 1));
+
+ __m128 const mul6 = _mm_mul_ps(mul2, _mm_set_ps(1.0f, 1.0f, -1.0f, 1.0f));
+ __m128 const add2 = _mm_add_ps(mul6, _mm_movehl_ps(mul6, mul6));
+ __m128 const add6 = _mm_add_ss(add2, _mm_shuffle_ps(add2, add2, 1));
+
+ __m128 const mul7 = _mm_mul_ps(mul3, _mm_set_ps(1.0f, -1.0f, -1.0f, -1.0f));
+ __m128 const add3 = _mm_add_ps(mul3, _mm_movehl_ps(mul7, mul7));
+ __m128 const add7 = _mm_add_ss(add3, _mm_shuffle_ps(add3, add3, 1));
+ #endif
+
+ // This SIMD code is a politically correct way of doing this, but in every test I've tried it has been slower than
+ // the final code below. I'll keep this here for reference - maybe somebody else can do something better...
+ //
+ //__m128 xxyy = _mm_shuffle_ps(add4, add5, _MM_SHUFFLE(0, 0, 0, 0));
+ //__m128 zzww = _mm_shuffle_ps(add6, add7, _MM_SHUFFLE(0, 0, 0, 0));
+ //
+ //return _mm_shuffle_ps(xxyy, zzww, _MM_SHUFFLE(2, 0, 2, 0));
+
+ tquat<float, P> Result(uninitialize);
+ _mm_store_ss(&Result.x, add4);
+ _mm_store_ss(&Result.y, add5);
+ _mm_store_ss(&Result.z, add6);
+ _mm_store_ss(&Result.w, add7);
+ return Result;
+ }
+ };
+*/
+
+ template <precision P>
+ struct compute_dot<tquat, float, P, true>
+ {
+ static GLM_FUNC_QUALIFIER float call(tquat<float, P> const& x, tquat<float, P> const& y)
+ {
+ return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data));
+ }
+ };
+
+ template <precision P>
+ struct compute_quat_add<float, P, true>
+ {
+ static tquat<float, P> call(tquat<float, P> const& q, tquat<float, P> const& p)
+ {
+ tquat<float, P> Result(uninitialize);
+ Result.data = _mm_add_ps(q.data, p.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_quat_add<double, P, true>
+ {
+ static tquat<double, P> call(tquat<double, P> const & a, tquat<double, P> const & b)
+ {
+ tquat<double, P> Result(uninitialize);
+ Result.data = _mm256_add_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_quat_sub<float, P, true>
+ {
+ static tquat<float, P> call(tquat<float, P> const& q, tquat<float, P> const& p)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_sub_ps(q.data, p.data);
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_quat_sub<double, P, true>
+ {
+ static tquat<double, P> call(tquat<double, P> const & a, tquat<double, P> const & b)
+ {
+ tquat<double, P> Result(uninitialize);
+ Result.data = _mm256_sub_pd(a.data, b.data);
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_quat_mul_scalar<float, P, true>
+ {
+ static tquat<float, P> call(tquat<float, P> const& q, float s)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_mul_ps(q.data, _mm_set_ps1(s));
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_quat_mul_scalar<double, P, true>
+ {
+ static tquat<double, P> call(tquat<double, P> const& q, double s)
+ {
+ tquat<double, P> Result(uninitialize);
+ Result.data = _mm256_mul_pd(q.data, _mm_set_ps1(s));
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_quat_div_scalar<float, P, true>
+ {
+ static tquat<float, P> call(tquat<float, P> const& q, float s)
+ {
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_div_ps(q.data, _mm_set_ps1(s));
+ return Result;
+ }
+ };
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ template <precision P>
+ struct compute_quat_div_scalar<double, P, true>
+ {
+ static tquat<double, P> call(tquat<double, P> const& q, double s)
+ {
+ tquat<double, P> Result(uninitialize);
+ Result.data = _mm256_div_pd(q.data, _mm_set_ps1(s));
+ return Result;
+ }
+ };
+# endif
+
+ template <precision P>
+ struct compute_quat_mul_vec4<float, P, true>
+ {
+ static tvec4<float, P> call(tquat<float, P> const& q, tvec4<float, P> const& v)
+ {
+ __m128 const q_wwww = _mm_shuffle_ps(q.data, q.data, _MM_SHUFFLE(3, 3, 3, 3));
+ __m128 const q_swp0 = _mm_shuffle_ps(q.data, q.data, _MM_SHUFFLE(3, 0, 2, 1));
+ __m128 const q_swp1 = _mm_shuffle_ps(q.data, q.data, _MM_SHUFFLE(3, 1, 0, 2));
+ __m128 const v_swp0 = _mm_shuffle_ps(v.data, v.data, _MM_SHUFFLE(3, 0, 2, 1));
+ __m128 const v_swp1 = _mm_shuffle_ps(v.data, v.data, _MM_SHUFFLE(3, 1, 0, 2));
+
+ __m128 uv = _mm_sub_ps(_mm_mul_ps(q_swp0, v_swp1), _mm_mul_ps(q_swp1, v_swp0));
+ __m128 uv_swp0 = _mm_shuffle_ps(uv, uv, _MM_SHUFFLE(3, 0, 2, 1));
+ __m128 uv_swp1 = _mm_shuffle_ps(uv, uv, _MM_SHUFFLE(3, 1, 0, 2));
+ __m128 uuv = _mm_sub_ps(_mm_mul_ps(q_swp0, uv_swp1), _mm_mul_ps(q_swp1, uv_swp0));
+
+ __m128 const two = _mm_set1_ps(2.0f);
+ uv = _mm_mul_ps(uv, _mm_mul_ps(q_wwww, two));
+ uuv = _mm_mul_ps(uuv, two);
+
+ tvec4<float, P> Result(uninitialize);
+ Result.data = _mm_add_ps(v.Data, _mm_add_ps(uv, uuv));
+ return Result;
+ }
+ };
+}//namespace detail
+}//namespace glm
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
+
diff --git a/glm/gtc/random.hpp b/glm/gtc/random.hpp
index bcff193..21987ea 100644
--- a/glm/gtc/random.hpp
+++ b/glm/gtc/random.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_random
/// @file glm/gtc/random.hpp
-/// @date 2011-09-18 / 2011-09-18
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -35,11 +7,10 @@
///
/// @defgroup gtc_random GLM_GTC_random
/// @ingroup gtc
-///
+///
/// @brief Generate random number from various distribution methods.
-///
+///
/// <glm/gtc/random.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../vec2.hpp"
#include "../vec3.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_random extension included")
#endif
@@ -60,13 +31,20 @@ namespace glm
///
/// @param Min
/// @param Max
- /// @tparam genType Value type. Currently supported: half (not recommanded), float or double scalars and vectors.
+ /// @tparam genType Value type. Currently supported: float or double scalars.
/// @see gtc_random
template <typename genTYpe>
GLM_FUNC_DECL genTYpe linearRand(
genTYpe Min,
genTYpe Max);
+ /// Generate random numbers in the interval [Min, Max], according a linear distribution
+ ///
+ /// @param Min
+ /// @param Max
+ /// @tparam T Value type. Currently supported: float or double.
+ /// @tparam vecType A vertor type: tvec1, tvec2, tvec3, tvec4 or compatible
+ /// @see gtc_random
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_DECL vecType<T, P> linearRand(
vecType<T, P> const & Min,
diff --git a/glm/gtc/random.inl b/glm/gtc/random.inl
index 96c96af..39afd1e 100644
--- a/glm/gtc/random.inl
+++ b/glm/gtc/random.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_random
/// @file glm/gtc/random.inl
-/// @date 2011-09-19 / 2012-04-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../geometric.hpp"
#include "../exponential.hpp"
diff --git a/glm/gtc/reciprocal.hpp b/glm/gtc/reciprocal.hpp
index 96b750d..d154df9 100644
--- a/glm/gtc/reciprocal.hpp
+++ b/glm/gtc/reciprocal.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_reciprocal
/// @file glm/gtc/reciprocal.hpp
-/// @date 2008-10-09 / 2012-01-25
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_reciprocal GLM_GTC_reciprocal
/// @ingroup gtc
-///
+///
/// @brief Define secant, cosecant and cotangent functions.
-///
+///
/// <glm/gtc/reciprocal.hpp> need to be included to use these features.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependencies
#include "../detail/setup.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_reciprocal extension included")
#endif
@@ -56,6 +27,8 @@ namespace glm
/// Secant function.
/// hypotenuse / adjacent or 1 / cos(x)
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType sec(genType angle);
@@ -63,6 +36,8 @@ namespace glm
/// Cosecant function.
/// hypotenuse / opposite or 1 / sin(x)
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType csc(genType angle);
@@ -70,60 +45,86 @@ namespace glm
/// Cotangent function.
/// adjacent / opposite or 1 / tan(x)
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType cot(genType angle);
/// Inverse secant function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType asec(genType x);
/// Inverse cosecant function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType acsc(genType x);
/// Inverse cotangent function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType acot(genType x);
/// Secant hyperbolic function.
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType sech(genType angle);
/// Cosecant hyperbolic function.
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType csch(genType angle);
/// Cotangent hyperbolic function.
///
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType coth(genType angle);
/// Inverse secant hyperbolic function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType asech(genType x);
/// Inverse cosecant hyperbolic function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType acsch(genType x);
/// Inverse cotangent hyperbolic function.
///
+ /// @return Return an angle expressed in radians.
+ /// @tparam genType Floating-point scalar or vector types.
+ ///
/// @see gtc_reciprocal
template <typename genType>
GLM_FUNC_DECL genType acoth(genType x);
diff --git a/glm/gtc/reciprocal.inl b/glm/gtc/reciprocal.inl
index 9e20c2c..ba7d8bc 100644
--- a/glm/gtc/reciprocal.inl
+++ b/glm/gtc/reciprocal.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_reciprocal
/// @file glm/gtc/reciprocal.inl
-/// @date 2008-10-09 / 2012-04-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../trigonometric.hpp"
#include <limits>
diff --git a/glm/gtc/round.hpp b/glm/gtc/round.hpp
index 56bd038..6ad84b8 100644
--- a/glm/gtc/round.hpp
+++ b/glm/gtc/round.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_round
/// @file glm/gtc/round.hpp
-/// @date 2014-11-03 / 2014-11-03
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_round (dependence)
///
/// @defgroup gtc_round GLM_GTC_round
/// @ingroup gtc
-///
+///
/// @brief rounding value to specific boundings
-///
+///
/// <glm/gtc/round.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +21,7 @@
#include "../common.hpp"
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_integer extension included")
#endif
diff --git a/glm/gtc/round.inl b/glm/gtc/round.inl
index 90e5222..0b8429d 100644
--- a/glm/gtc/round.inl
+++ b/glm/gtc/round.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_round
/// @file glm/gtc/round.inl
-/// @date 2014-11-03 / 2014-11-03
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include "../detail/func_integer.hpp"
diff --git a/glm/gtc/type_aligned.hpp b/glm/gtc/type_aligned.hpp
new file mode 100644
index 0000000..b34dd0d
--- /dev/null
+++ b/glm/gtc/type_aligned.hpp
@@ -0,0 +1,362 @@
+/// @ref gtc_type_aligned
+/// @file glm/gtc/type_aligned.hpp
+///
+/// @see core (dependence)
+///
+/// @defgroup gtc_type_aligned GLM_GTC_type_aligned
+/// @ingroup gtc
+///
+/// @brief Aligned types.
+/// <glm/gtc/type_aligned.hpp> need to be included to use these features.
+
+#pragma once
+
+#if !GLM_HAS_ALIGNED_TYPE
+# error "GLM: Aligned types are not supported on this platform"
+#endif
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
+# pragma message("GLM: GLM_GTC_type_aligned extension included")
+#endif
+
+#include "../vec2.hpp"
+#include "../vec3.hpp"
+#include "../vec4.hpp"
+#include "../gtc/vec1.hpp"
+
+namespace glm
+{
+ template <typename T, precision P> struct tvec1;
+ template <typename T, precision P> struct tvec2;
+ template <typename T, precision P> struct tvec3;
+ template <typename T, precision P> struct tvec4;
+ /// @addtogroup gtc_type_aligned
+ /// @{
+
+ // -- *vec1 --
+
+ typedef tvec1<float, aligned_highp> aligned_highp_vec1;
+ typedef tvec1<float, aligned_mediump> aligned_mediump_vec1;
+ typedef tvec1<float, aligned_lowp> aligned_lowp_vec1;
+ typedef tvec1<double, aligned_highp> aligned_highp_dvec1;
+ typedef tvec1<double, aligned_mediump> aligned_mediump_dvec1;
+ typedef tvec1<double, aligned_lowp> aligned_lowp_dvec1;
+ typedef tvec1<int, aligned_highp> aligned_highp_ivec1;
+ typedef tvec1<int, aligned_mediump> aligned_mediump_ivec1;
+ typedef tvec1<int, aligned_lowp> aligned_lowp_ivec1;
+ typedef tvec1<uint, aligned_highp> aligned_highp_uvec1;
+ typedef tvec1<uint, aligned_mediump> aligned_mediump_uvec1;
+ typedef tvec1<uint, aligned_lowp> aligned_lowp_uvec1;
+ typedef tvec1<bool, aligned_highp> aligned_highp_bvec1;
+ typedef tvec1<bool, aligned_mediump> aligned_mediump_bvec1;
+ typedef tvec1<bool, aligned_lowp> aligned_lowp_bvec1;
+
+ typedef tvec1<float, packed_highp> packed_highp_vec1;
+ typedef tvec1<float, packed_mediump> packed_mediump_vec1;
+ typedef tvec1<float, packed_lowp> packed_lowp_vec1;
+ typedef tvec1<double, packed_highp> packed_highp_dvec1;
+ typedef tvec1<double, packed_mediump> packed_mediump_dvec1;
+ typedef tvec1<double, packed_lowp> packed_lowp_dvec1;
+ typedef tvec1<int, packed_highp> packed_highp_ivec1;
+ typedef tvec1<int, packed_mediump> packed_mediump_ivec1;
+ typedef tvec1<int, packed_lowp> packed_lowp_ivec1;
+ typedef tvec1<uint, packed_highp> packed_highp_uvec1;
+ typedef tvec1<uint, packed_mediump> packed_mediump_uvec1;
+ typedef tvec1<uint, packed_lowp> packed_lowp_uvec1;
+ typedef tvec1<bool, packed_highp> packed_highp_bvec1;
+ typedef tvec1<bool, packed_mediump> packed_mediump_bvec1;
+ typedef tvec1<bool, packed_lowp> packed_lowp_bvec1;
+
+ // -- *vec2 --
+
+ /// 2 components vector of high single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<float, aligned_highp> aligned_highp_vec2;
+
+ /// 2 components vector of medium single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<float, aligned_mediump> aligned_mediump_vec2;
+
+ /// 2 components vector of low single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<float, aligned_lowp> aligned_lowp_vec2;
+
+ /// 2 components vector of high double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<double, aligned_highp> aligned_highp_dvec2;
+
+ /// 2 components vector of medium double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<double, aligned_mediump> aligned_mediump_dvec2;
+
+ /// 2 components vector of low double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<double, aligned_lowp> aligned_lowp_dvec2;
+
+ /// 2 components vector of high precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<int, aligned_highp> aligned_highp_ivec2;
+
+ /// 2 components vector of medium precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<int, aligned_mediump> aligned_mediump_ivec2;
+
+ /// 2 components vector of low precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<int, aligned_lowp> aligned_lowp_ivec2;
+
+ /// 2 components vector of high precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<uint, aligned_highp> aligned_highp_uvec2;
+
+ /// 2 components vector of medium precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<uint, aligned_mediump> aligned_mediump_uvec2;
+
+ /// 2 components vector of low precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<uint, aligned_lowp> aligned_lowp_uvec2;
+
+ /// 2 components vector of high precision bool numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<bool, aligned_highp> aligned_highp_bvec2;
+
+ /// 2 components vector of medium precision bool numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<bool, aligned_mediump> aligned_mediump_bvec2;
+
+ /// 2 components vector of low precision bool numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec2<bool, aligned_lowp> aligned_lowp_bvec2;
+
+ // -- *vec3 --
+
+ /// 3 components vector of high single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<float, aligned_highp> aligned_highp_vec3;
+
+ /// 3 components vector of medium single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<float, aligned_mediump> aligned_mediump_vec3;
+
+ /// 3 components vector of low single-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<float, aligned_lowp> aligned_lowp_vec3;
+
+ /// 3 components vector of high double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<double, aligned_highp> aligned_highp_dvec3;
+
+ /// 3 components vector of medium double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<double, aligned_mediump> aligned_mediump_dvec3;
+
+ /// 3 components vector of low double-precision floating-point numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<double, aligned_lowp> aligned_lowp_dvec3;
+
+ /// 3 components vector of high precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<int, aligned_highp> aligned_highp_ivec3;
+
+ /// 3 components vector of medium precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<int, aligned_mediump> aligned_mediump_ivec3;
+
+ /// 3 components vector of low precision signed integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<int, aligned_lowp> aligned_lowp_ivec3;
+
+ /// 3 components vector of high precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<uint, aligned_highp> aligned_highp_uvec3;
+
+ /// 3 components vector of medium precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<uint, aligned_mediump> aligned_mediump_uvec3;
+
+ /// 3 components vector of low precision unsigned integer numbers.
+ /// There is no guarantee on the actual precision.
+ typedef tvec3<uint, aligned_lowp> aligned_lowp_uvec3;
+
+ /// 3 components vector of high precision bool numbers.
+ typedef tvec3<bool, aligned_highp> aligned_highp_bvec3;
+
+ /// 3 components vector of medium precision bool numbers.
+ typedef tvec3<bool, aligned_mediump> aligned_mediump_bvec3;
+
+ /// 3 components vector of low precision bool numbers.
+ typedef tvec3<bool, aligned_lowp> aligned_lowp_bvec3;
+
+ // -- *vec4 --
+
+ /// 4 components vector of high single-precision floating-point numbers.
+ typedef tvec4<float, aligned_highp> aligned_highp_vec4;
+
+ /// 4 components vector of medium single-precision floating-point numbers.
+ typedef tvec4<float, aligned_mediump> aligned_mediump_vec4;
+
+ /// 4 components vector of low single-precision floating-point numbers.
+ typedef tvec4<float, aligned_lowp> aligned_lowp_vec4;
+
+ /// 4 components vector of high double-precision floating-point numbers.
+ typedef tvec4<double, aligned_highp> aligned_highp_dvec4;
+
+ /// 4 components vector of medium double-precision floating-point numbers.
+ typedef tvec4<double, aligned_mediump> aligned_mediump_dvec4;
+
+ /// 4 components vector of low double-precision floating-point numbers.
+ typedef tvec4<double, aligned_lowp> aligned_lowp_dvec4;
+
+ /// 4 components vector of high precision signed integer numbers.
+ typedef tvec4<int, aligned_highp> aligned_highp_ivec4;
+
+ /// 4 components vector of medium precision signed integer numbers.
+ typedef tvec4<int, aligned_mediump> aligned_mediump_ivec4;
+
+ /// 4 components vector of low precision signed integer numbers.
+ typedef tvec4<int, aligned_lowp> aligned_lowp_ivec4;
+
+ /// 4 components vector of high precision unsigned integer numbers.
+ typedef tvec4<uint, aligned_highp> aligned_highp_uvec4;
+
+ /// 4 components vector of medium precision unsigned integer numbers.
+ typedef tvec4<uint, aligned_mediump> aligned_mediump_uvec4;
+
+ /// 4 components vector of low precision unsigned integer numbers.
+ typedef tvec4<uint, aligned_lowp> aligned_lowp_uvec4;
+
+ /// 4 components vector of high precision bool numbers.
+ typedef tvec4<bool, aligned_highp> aligned_highp_bvec4;
+
+ /// 4 components vector of medium precision bool numbers.
+ typedef tvec4<bool, aligned_mediump> aligned_mediump_bvec4;
+
+ /// 4 components vector of low precision bool numbers.
+ typedef tvec4<bool, aligned_lowp> aligned_lowp_bvec4;
+
+ // -- default --
+
+#if(defined(GLM_PRECISION_LOWP_FLOAT))
+ typedef aligned_lowp_vec1 aligned_vec1;
+ typedef aligned_lowp_vec2 aligned_vec2;
+ typedef aligned_lowp_vec3 aligned_vec3;
+ typedef aligned_lowp_vec4 aligned_vec4;
+#elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+ typedef aligned_mediump_vec1 aligned_vec1;
+ typedef aligned_mediump_vec2 aligned_vec2;
+ typedef aligned_mediump_vec3 aligned_vec3;
+ typedef aligned_mediump_vec4 aligned_vec4;
+#else //defined(GLM_PRECISION_HIGHP_FLOAT)
+ /// 1 component vector of floating-point numbers.
+ typedef aligned_highp_vec1 aligned_vec1;
+
+ /// 2 components vector of floating-point numbers.
+ typedef aligned_highp_vec2 aligned_vec2;
+
+ /// 3 components vector of floating-point numbers.
+ typedef aligned_highp_vec3 aligned_vec3;
+
+ /// 4 components vector of floating-point numbers.
+ typedef aligned_highp_vec4 aligned_vec4;
+#endif//GLM_PRECISION
+
+#if(defined(GLM_PRECISION_LOWP_DOUBLE))
+ typedef aligned_lowp_dvec1 aligned_dvec1;
+ typedef aligned_lowp_dvec2 aligned_dvec2;
+ typedef aligned_lowp_dvec3 aligned_dvec3;
+ typedef aligned_lowp_dvec4 aligned_dvec4;
+#elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+ typedef aligned_mediump_dvec1 aligned_dvec1;
+ typedef aligned_mediump_dvec2 aligned_dvec2;
+ typedef aligned_mediump_dvec3 aligned_dvec3;
+ typedef aligned_mediump_dvec4 aligned_dvec4;
+#else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+ /// 1 component vector of double-precision floating-point numbers.
+ typedef aligned_highp_dvec1 aligned_dvec1;
+
+ /// 2 components vector of double-precision floating-point numbers.
+ typedef aligned_highp_dvec2 aligned_dvec2;
+
+ /// 3 components vector of double-precision floating-point numbers.
+ typedef aligned_highp_dvec3 aligned_dvec3;
+
+ /// 4 components vector of double-precision floating-point numbers.
+ typedef aligned_highp_dvec4 aligned_dvec4;
+#endif//GLM_PRECISION
+
+#if(defined(GLM_PRECISION_LOWP_INT))
+ typedef aligned_lowp_ivec1 aligned_ivec1;
+ typedef aligned_lowp_ivec2 aligned_ivec2;
+ typedef aligned_lowp_ivec3 aligned_ivec3;
+ typedef aligned_lowp_ivec4 aligned_ivec4;
+#elif(defined(GLM_PRECISION_MEDIUMP_INT))
+ typedef aligned_mediump_ivec1 aligned_ivec1;
+ typedef aligned_mediump_ivec2 aligned_ivec2;
+ typedef aligned_mediump_ivec3 aligned_ivec3;
+ typedef aligned_mediump_ivec4 aligned_ivec4;
+#else //defined(GLM_PRECISION_HIGHP_INT)
+ /// 1 component vector of signed integer numbers.
+ typedef aligned_highp_ivec1 aligned_ivec1;
+
+ /// 2 components vector of signed integer numbers.
+ typedef aligned_highp_ivec2 aligned_ivec2;
+
+ /// 3 components vector of signed integer numbers.
+ typedef aligned_highp_ivec3 aligned_ivec3;
+
+ /// 4 components vector of signed integer numbers.
+ typedef aligned_highp_ivec4 aligned_ivec4;
+#endif//GLM_PRECISION
+
+ // -- Unsigned integer definition --
+
+#if(defined(GLM_PRECISION_LOWP_UINT))
+ typedef aligned_lowp_uvec1 aligned_uvec1;
+ typedef aligned_lowp_uvec2 aligned_uvec2;
+ typedef aligned_lowp_uvec3 aligned_uvec3;
+ typedef aligned_lowp_uvec4 aligned_uvec4;
+#elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+ typedef aligned_mediump_uvec1 aligned_uvec1;
+ typedef aligned_mediump_uvec2 aligned_uvec2;
+ typedef aligned_mediump_uvec3 aligned_uvec3;
+ typedef aligned_mediump_uvec4 aligned_uvec4;
+#else //defined(GLM_PRECISION_HIGHP_UINT)
+ /// 1 component vector of unsigned integer numbers.
+ typedef aligned_highp_uvec1 aligned_uvec1;
+
+ /// 2 components vector of unsigned integer numbers.
+ typedef aligned_highp_uvec2 aligned_uvec2;
+
+ /// 3 components vector of unsigned integer numbers.
+ typedef aligned_highp_uvec3 aligned_uvec3;
+
+ /// 4 components vector of unsigned integer numbers.
+ typedef aligned_highp_uvec4 aligned_uvec4;
+#endif//GLM_PRECISION
+
+#if(defined(GLM_PRECISION_LOWP_BOOL))
+ typedef aligned_lowp_bvec1 aligned_bvec1;
+ typedef aligned_lowp_bvec2 aligned_bvec2;
+ typedef aligned_lowp_bvec3 aligned_bvec3;
+ typedef aligned_lowp_bvec4 aligned_bvec4;
+#elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
+ typedef aligned_mediump_bvec1 aligned_bvec1;
+ typedef aligned_mediump_bvec2 aligned_bvec2;
+ typedef aligned_mediump_bvec3 aligned_bvec3;
+ typedef aligned_mediump_bvec4 aligned_bvec4;
+#else //defined(GLM_PRECISION_HIGHP_BOOL)
+ /// 1 component vector of boolean.
+ typedef aligned_highp_bvec1 aligned_bvec1;
+
+ /// 2 components vector of boolean.
+ typedef aligned_highp_bvec2 aligned_bvec2;
+
+ /// 3 components vector of boolean.
+ typedef aligned_highp_bvec3 aligned_bvec3;
+
+ /// 4 components vector of boolean.
+ typedef aligned_highp_bvec4 aligned_bvec4;
+#endif//GLM_PRECISION
+
+ /// @}
+}//namespace glm
diff --git a/glm/gtc/type_precision.hpp b/glm/gtc/type_precision.hpp
index 744eb06..8748ded 100644
--- a/glm/gtc/type_precision.hpp
+++ b/glm/gtc/type_precision.hpp
@@ -1,48 +1,19 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_type_precision
/// @file glm/gtc/type_precision.hpp
-/// @date 2009-06-04 / 2011-12-07
-/// @author Christophe Riccio
-///
+///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
/// @see gtc_quaternion (dependence)
-///
+///
/// @defgroup gtc_type_precision GLM_GTC_type_precision
/// @ingroup gtc
-///
+///
/// @brief Defines specific C++-based precision types.
///
/// @ref core_precision defines types based on GLSL's precision qualifiers. This
/// extension defines types based on explicitly-sized C++ data types.
-///
+///
/// <glm/gtc/type_precision.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -62,7 +33,7 @@
#include "../mat4x3.hpp"
#include "../mat4x4.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_type_precision extension included")
#endif
diff --git a/glm/gtc/type_precision.inl b/glm/gtc/type_precision.inl
index 8a81782..320ca5f 100644
--- a/glm/gtc/type_precision.inl
+++ b/glm/gtc/type_precision.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_swizzle
/// @file glm/gtc/swizzle.inl
-/// @date 2009-06-14 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtc/type_ptr.hpp b/glm/gtc/type_ptr.hpp
index edb2bf3..d03ffd7 100644
--- a/glm/gtc/type_ptr.hpp
+++ b/glm/gtc/type_ptr.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_type_ptr
/// @file glm/gtc/type_ptr.hpp
-/// @date 2009-05-06 / 2011-06-05
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -37,7 +9,7 @@
/// @ingroup gtc
///
/// @brief Handles the interaction between pointers and vector, matrix types.
-///
+///
/// This extension defines an overloaded function, glm::value_ptr, which
/// takes any of the \ref core_template "core template types". It returns
/// a pointer to the memory layout of the object. Matrix types store their values
@@ -49,16 +21,15 @@
/// @code
/// #include <glm/glm.hpp>
/// #include <glm/gtc/type_ptr.hpp>
-///
+///
/// glm::vec3 aVector(3);
/// glm::mat4 someMatrix(1.0);
-///
+///
/// glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
/// glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
/// @endcode
-///
+///
/// <glm/gtc/type_ptr.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -78,7 +49,7 @@
#include "../mat4x4.hpp"
#include <cstring>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_type_ptr extension included")
#endif
diff --git a/glm/gtc/type_ptr.inl b/glm/gtc/type_ptr.inl
index a08ec54..ac52879 100644
--- a/glm/gtc/type_ptr.inl
+++ b/glm/gtc/type_ptr.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_type_ptr
/// @file glm/gtc/type_ptr.inl
-/// @date 2011-06-15 / 2011-12-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <cstring>
diff --git a/glm/gtc/ulp.hpp b/glm/gtc/ulp.hpp
index 7228825..4c906d8 100644
--- a/glm/gtc/ulp.hpp
+++ b/glm/gtc/ulp.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_ulp
/// @file glm/gtc/ulp.hpp
-/// @date 2011-02-21 / 2011-12-12
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_ulp GLM_GTC_ulp
/// @ingroup gtc
-///
+///
/// @brief Allow the measurement of the accuracy of a function against a reference
/// implementation. This extension works on floating-point data and provide results
/// in ULP.
/// <glm/gtc/ulp.hpp> need to be included to use these features.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../detail/precision.hpp"
#include "../detail/type_int.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_ulp extension included")
#endif
diff --git a/glm/gtc/ulp.inl b/glm/gtc/ulp.inl
index e91fee6..3b679b9 100644
--- a/glm/gtc/ulp.inl
+++ b/glm/gtc/ulp.inl
@@ -1,41 +1,12 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_ulp
/// @file glm/gtc/ulp.inl
-/// @date 2011-03-07 / 2012-04-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
+///
/// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
///
/// Developed at SunPro, a Sun Microsystems, Inc. business.
/// Permission to use, copy, modify, and distribute this
/// software is freely granted, provided that this notice
/// is preserved.
-///////////////////////////////////////////////////////////////////////////////////
#include "../detail/type_int.hpp"
#include <cmath>
@@ -232,7 +203,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<T, P> next_float(vecType<T, P> const & x)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = next_float(x[i]);
return Result;
}
@@ -267,7 +238,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<T, P> prev_float(vecType<T, P> const & x)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = prev_float(x[i]);
return Result;
}
@@ -285,7 +256,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<T, P> next_float(vecType<T, P> const & x, vecType<uint, P> const & ulps)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = next_float(x[i], ulps[i]);
return Result;
}
@@ -303,7 +274,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<T, P> prev_float(vecType<T, P> const & x, vecType<uint, P> const & ulps)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = prev_float(x[i], ulps[i]);
return Result;
}
@@ -343,7 +314,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<uint, P> float_distance(vecType<T, P> const & x, vecType<T, P> const & y)
{
vecType<uint, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = float_distance(x[i], y[i]);
return Result;
}
diff --git a/glm/gtc/vec1.hpp b/glm/gtc/vec1.hpp
index d893ad2..5b311f9 100644
--- a/glm/gtc/vec1.hpp
+++ b/glm/gtc/vec1.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_vec1
/// @file glm/gtc/vec1.hpp
-/// @date 2010-02-08 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -36,7 +8,6 @@
///
/// @brief Add vec1, ivec1, uvec1 and bvec1 types.
/// <glm/gtc/vec1.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -44,7 +15,7 @@
#include "../glm.hpp"
#include "../detail/type_vec1.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTC_vec1 extension included")
#endif
diff --git a/glm/gtc/vec1.inl b/glm/gtc/vec1.inl
index 06b614a..d7be9e8 100644
--- a/glm/gtc/vec1.inl
+++ b/glm/gtc/vec1.inl
@@ -1,31 +1,2 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_vec1
/// @file glm/gtc/vec1.inl
-/// @date 2013-03-16 / 2013-03-16
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp
index a0f0f69..f02e5ef 100644
--- a/glm/gtx/associated_min_max.hpp
+++ b/glm/gtx/associated_min_max.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_associated_min_max
/// @file glm/gtx/associated_min_max.hpp
-/// @date 2008-03-10 / 2014-10-11
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
@@ -37,14 +9,13 @@
///
/// @brief Min and max functions that return associated values not the compared onces.
/// <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_associated_min_max extension included")
#endif
diff --git a/glm/gtx/associated_min_max.inl b/glm/gtx/associated_min_max.inl
index 0773a21..0c0b516 100644
--- a/glm/gtx/associated_min_max.inl
+++ b/glm/gtx/associated_min_max.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_associated_min_max
/// @file glm/gtx/associated_min_max.inl
-/// @date 2008-03-10 / 2014-10-11
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm{
@@ -47,7 +18,7 @@ GLM_FUNC_QUALIFIER tvec2<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? a[i] : b[i];
return Result;
}
@@ -60,7 +31,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x < y ? a[i] : b[i];
return Result;
}
@@ -73,7 +44,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? a : b;
return Result;
}
@@ -100,7 +71,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] < y[i] ? (x[i] < z[i] ? a[i] : c[i]) : (y[i] < z[i] ? b[i] : c[i]);
return Result;
}
@@ -134,7 +105,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = min(x[i], y[i]);
T Test2 = min(z[i], w[i]);
@@ -159,7 +130,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
T Test2 = min(z, w);
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
U Result1 = x < y ? a[i] : b[i];
U Result2 = z < w ? c[i] : d[i];
@@ -179,7 +150,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMin
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = min(x[i], y[i]);
T Test2 = min(z[i], w[i]);;
@@ -206,7 +177,7 @@ GLM_FUNC_QUALIFIER tvec2<U, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? a[i] : b[i];
return Result;
}
@@ -220,7 +191,7 @@ GLM_FUNC_QUALIFIER vecType<T, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x > y ? a[i] : b[i];
return Result;
}
@@ -234,7 +205,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? a : b;
return Result;
}
@@ -262,7 +233,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a[i] : c[i]) : (y[i] > z[i] ? b[i] : c[i]);
return Result;
}
@@ -277,7 +248,7 @@ GLM_FUNC_QUALIFIER vecType<T, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x > y ? (x > z ? a[i] : c[i]) : (y > z ? b[i] : c[i]);
return Result;
}
@@ -292,7 +263,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
Result[i] = x[i] > y[i] ? (x[i] > z[i] ? a : c) : (y[i] > z[i] ? b : c);
return Result;
}
@@ -326,7 +297,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = max(x[i], y[i]);
T Test2 = max(z[i], w[i]);
@@ -351,7 +322,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
T Test2 = max(z, w);
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
U Result1 = x > y ? a[i] : b[i];
U Result2 = z > w ? c[i] : d[i];
@@ -371,7 +342,7 @@ GLM_FUNC_QUALIFIER vecType<U, P> associatedMax
)
{
vecType<U, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(Result); ++i)
+ for(length_t i = 0, n = Result.length(); i < n; ++i)
{
T Test1 = max(x[i], y[i]);
T Test2 = max(z[i], w[i]);;
diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp
index fa77cb8..c2bb4d2 100644
--- a/glm/gtx/bit.hpp
+++ b/glm/gtx/bit.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_bit
/// @file glm/gtx/bit.hpp
-/// @date 2007-03-14 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -38,14 +10,13 @@
/// @brief Allow to perform bit operations on integer values
///
/// <glm/gtx/bit.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependencies
#include "../gtc/bitfield.hpp"
-#if(defined(GLM_MESSAGES))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_bit extension is deprecated, include GLM_GTC_bitfield and GLM_GTC_integer instead")
#endif
@@ -58,6 +29,10 @@ namespace glm
template <typename genIUType>
GLM_FUNC_DECL genIUType highestBitValue(genIUType Value);
+ /// @see gtx_bit
+ template <typename genIUType>
+ GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value);
+
/// Find the highest bit set to 1 in a integer variable and return its value.
///
/// @see gtx_bit
diff --git a/glm/gtx/bit.inl b/glm/gtx/bit.inl
index 1bfc96d..d0d3889 100644
--- a/glm/gtx/bit.inl
+++ b/glm/gtx/bit.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_bit
/// @file glm/gtx/bit.inl
-/// @date 2014-11-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -55,6 +26,21 @@ namespace glm
}
///////////////////
+ // lowestBitValue
+
+ template <typename genIUType>
+ GLM_FUNC_QUALIFIER genIUType lowestBitValue(genIUType Value)
+ {
+ return (Value & (~Value + 1));
+ }
+
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> lowestBitValue(vecType<T, P> const & v)
+ {
+ return detail::functor1<T, T, P, vecType>::call(lowestBitValue, v);
+ }
+
+ ///////////////////
// powerOfTwoAbove
template <typename genType>
diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp
index 6cb0fdd..e30d639 100644
--- a/glm/gtx/closest_point.hpp
+++ b/glm/gtx/closest_point.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_closest_point
/// @file glm/gtx/closest_point.hpp
-/// @date 2005-12-30 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -35,16 +7,15 @@
/// @ingroup gtx
///
/// @brief Find the point on a straight line which is the closet of a point.
-///
+///
/// <glm/gtx/closest_point.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_closest_point extension included")
#endif
diff --git a/glm/gtx/closest_point.inl b/glm/gtx/closest_point.inl
index 358b202..c42b665 100644
--- a/glm/gtx/closest_point.inl
+++ b/glm/gtx/closest_point.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_closest_point
/// @file glm/gtx/closest_point.inl
-/// @date 2005-12-30 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp
index 4ad610e..f77fe38 100644
--- a/glm/gtx/color_space.hpp
+++ b/glm/gtx/color_space.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_color_space
/// @file glm/gtx/color_space.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_color_space GLM_GTX_color_space
/// @ingroup gtx
-///
+///
/// @brief Related to RGB to HSV conversions and operations.
-///
+///
/// <glm/gtx/color_space.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_color_space extension included")
#endif
diff --git a/glm/gtx/color_space.inl b/glm/gtx/color_space.inl
index 0dd2a14..778fc76 100644
--- a/glm/gtx/color_space.inl
+++ b/glm/gtx/color_space.inl
@@ -1,34 +1,5 @@
-/////////////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_color_space
/// @file glm/gtx/color_space.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp
index 4e33bcf..78784f4 100644
--- a/glm/gtx/color_space_YCoCg.hpp
+++ b/glm/gtx/color_space_YCoCg.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_color_space_YCoCg
/// @file glm/gtx/color_space_YCoCg.hpp
-/// @date 2008-10-28 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -35,16 +7,15 @@
/// @ingroup gtx
///
/// @brief RGB to YCoCg conversions and operations
-///
+///
/// <glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
#endif
diff --git a/glm/gtx/color_space_YCoCg.inl b/glm/gtx/color_space_YCoCg.inl
index d26f6ab..a4d49e8 100644
--- a/glm/gtx/color_space_YCoCg.inl
+++ b/glm/gtx/color_space_YCoCg.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_color_space_YCoCg
/// @file glm/gtx/color_space_YCoCg.inl
-/// @date 2008-10-28 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp
index dabe164..1ed9041 100644
--- a/glm/gtx/common.hpp
+++ b/glm/gtx/common.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_common
/// @file glm/gtx/common.hpp
-/// @date 2014-09-08 / 2014-09-08
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_common GLM_GTX_common
/// @ingroup gtx
-///
+///
/// @brief Provide functions to increase the compatibility with Cg and HLSL languages
-///
+///
/// <glm/gtx/common.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,7 +19,7 @@
#include "../vec4.hpp"
#include "../gtc/vec1.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_common extension included")
#endif
@@ -68,7 +39,7 @@ namespace glm
template <typename genType>
GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const & x);
- /// Similiar to 'mod' but with a different rounding and integer support.
+ /// Similar to 'mod' but with a different rounding and integer support.
/// Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'
///
/// @see <a href="http://stackoverflow.com/questions/7610631/glsl-mod-vs-hlsl-fmod">GLSL mod vs HLSL fmod</a>
diff --git a/glm/gtx/common.inl b/glm/gtx/common.inl
index c40c704..31fa7b9 100644
--- a/glm/gtx/common.inl
+++ b/glm/gtx/common.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_common
/// @file glm/gtx/common.inl
-/// @date 2014-09-08 / 2014-09-08
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <cmath>
diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp
index 846c586..f2a7f44 100644
--- a/glm/gtx/compatibility.hpp
+++ b/glm/gtx/compatibility.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_compatibility
/// @file glm/gtx/compatibility.hpp
-/// @date 2007-01-24 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_compatibility GLM_GTX_compatibility
/// @ingroup gtx
-///
+///
/// @brief Provide functions to increase the compatibility with Cg and HLSL languages
-///
+///
/// <glm/gtx/compatibility.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,13 +17,13 @@
#include "../glm.hpp"
#include "../gtc/quaternion.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_compatibility extension included")
#endif
-#if(GLM_COMPILER & GLM_COMPILER_VC)
+#if GLM_COMPILER & GLM_COMPILER_VC
# include <cfloat>
-#elif(GLM_COMPILER & GLM_COMPILER_GCC)
+#elif GLM_COMPILER & GLM_COMPILER_GCC
# include <cmath>
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
# undef isfinite
diff --git a/glm/gtx/compatibility.inl b/glm/gtx/compatibility.inl
index 8e15e8e..befacfd 100644
--- a/glm/gtx/compatibility.inl
+++ b/glm/gtx/compatibility.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_compatibility
/// @file glm/gtx/compatibility.inl
-/// @date 2007-01-24 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
#include <limits>
diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp
index 760a304..0f570fa 100644
--- a/glm/gtx/component_wise.hpp
+++ b/glm/gtx/component_wise.hpp
@@ -1,29 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_component_wise
/// @file glm/gtx/component_wise.hpp
/// @date 2007-05-21 / 2011-06-07
@@ -33,11 +7,10 @@
///
/// @defgroup gtx_component_wise GLM_GTX_component_wise
/// @ingroup gtx
-///
+///
/// @brief Operations between components of a type
-///
+///
/// <glm/gtx/component_wise.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +18,7 @@
#include "../detail/setup.hpp"
#include "../detail/precision.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_component_wise extension included")
#endif
@@ -54,29 +27,37 @@ namespace glm
/// @addtogroup gtx_component_wise
/// @{
+ /// Convert an integer vector to a normalized float vector.
+ /// If the parameter value type is already a floating precision type, the value is passed through.
+ /// @see gtx_component_wise
+ template <typename floatType, typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<floatType, P> compNormalize(vecType<T, P> const & v);
+
+ /// Convert a normalized float vector to an integer vector.
+ /// If the parameter value type is already a floating precision type, the value is passed through.
+ /// @see gtx_component_wise
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_DECL vecType<T, P> compScale(vecType<floatType, P> const & v);
+
/// Add all vector components together.
/// @see gtx_component_wise
template <typename genType>
- GLM_FUNC_DECL typename genType::value_type compAdd(
- genType const & v);
+ GLM_FUNC_DECL typename genType::value_type compAdd(genType const & v);
/// Multiply all vector components together.
/// @see gtx_component_wise
template <typename genType>
- GLM_FUNC_DECL typename genType::value_type compMul(
- genType const & v);
+ GLM_FUNC_DECL typename genType::value_type compMul(genType const & v);
/// Find the minimum value between single vector components.
/// @see gtx_component_wise
template <typename genType>
- GLM_FUNC_DECL typename genType::value_type compMin(
- genType const & v);
+ GLM_FUNC_DECL typename genType::value_type compMin(genType const & v);
/// Find the maximum value between single vector components.
/// @see gtx_component_wise
template <typename genType>
- GLM_FUNC_DECL typename genType::value_type compMax(
- genType const & v);
+ GLM_FUNC_DECL typename genType::value_type compMax(genType const & v);
/// @}
}//namespace glm
diff --git a/glm/gtx/component_wise.inl b/glm/gtx/component_wise.inl
index 32569d4..d9fc697 100644
--- a/glm/gtx/component_wise.inl
+++ b/glm/gtx/component_wise.inl
@@ -1,70 +1,128 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_component_wise
/// @file glm/gtx/component_wise.inl
-/// @date 2007-05-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
-namespace glm
+#include <limits>
+
+namespace glm{
+namespace detail
{
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ struct compute_compNormalize
+ {};
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, true, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ floatType const Min = static_cast<floatType>(std::numeric_limits<T>::min());
+ floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max());
+ return (vecType<floatType, P>(v) - Min) / (Max - Min) * static_cast<floatType>(2) - static_cast<floatType>(1);
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, true, false>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ return vecType<floatType, P>(v) / static_cast<floatType>(std::numeric_limits<T>::max());
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compNormalize<T, floatType, P, vecType, false, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<floatType, P> call(vecType<T, P> const & v)
+ {
+ return v;
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType, bool isInteger, bool signedType>
+ struct compute_compScale
+ {};
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, true, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ floatType const Max = static_cast<floatType>(std::numeric_limits<T>::max()) + static_cast<floatType>(0.5);
+ vecType<floatType, P> const Scaled(v * Max);
+ vecType<T, P> const Result(Scaled - static_cast<floatType>(0.5));
+ return Result;
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, true, false>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ return vecType<T, P>(vecType<floatType, P>(v) * static_cast<floatType>(std::numeric_limits<T>::max()));
+ }
+ };
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ struct compute_compScale<T, floatType, P, vecType, false, true>
+ {
+ GLM_FUNC_QUALIFIER static vecType<T, P> call(vecType<floatType, P> const & v)
+ {
+ return v;
+ }
+ };
+}//namespace detail
+
+ template <typename floatType, typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<floatType, P> compNormalize(vecType<T, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compNormalize' accepts only floating-point types for 'floatType' template parameter");
+
+ return detail::compute_compNormalize<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ }
+
+ template <typename T, typename floatType, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> compScale(vecType<floatType, P> const & v)
+ {
+ GLM_STATIC_ASSERT(std::numeric_limits<floatType>::is_iec559, "'compScale' accepts only floating-point types for 'floatType' template parameter");
+
+ return detail::compute_compScale<T, floatType, P, vecType, std::numeric_limits<T>::is_integer, std::numeric_limits<T>::is_signed>::call(v);
+ }
+
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T compAdd(vecType<T, P> const & v)
{
- T result(0);
- for(detail::component_count_t i = 0; i < detail::component_count(v); ++i)
- result += v[i];
- return result;
+ T Result(0);
+ for(length_t i = 0, n = v.length(); i < n; ++i)
+ Result += v[i];
+ return Result;
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T compMul(vecType<T, P> const & v)
{
- T result(1);
- for(detail::component_count_t i = 0; i < detail::component_count(v); ++i)
- result *= v[i];
- return result;
+ T Result(1);
+ for(length_t i = 0, n = v.length(); i < n; ++i)
+ Result *= v[i];
+ return Result;
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T compMin(vecType<T, P> const & v)
{
- T result(v[0]);
- for(detail::component_count_t i = 1; i < detail::component_count(v); ++i)
- result = min(result, v[i]);
- return result;
+ T Result(v[0]);
+ for(length_t i = 1, n = v.length(); i < n; ++i)
+ Result = min(Result, v[i]);
+ return Result;
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER T compMax(vecType<T, P> const & v)
{
- T result(v[0]);
- for(detail::component_count_t i = 1; i < detail::component_count(v); ++i)
- result = max(result, v[i]);
- return result;
+ T Result(v[0]);
+ for(length_t i = 1, n = v.length(); i < n; ++i)
+ Result = max(Result, v[i]);
+ return Result;
}
}//namespace glm
diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp
index f211533..c53e60b 100644
--- a/glm/gtx/dual_quaternion.hpp
+++ b/glm/gtx/dual_quaternion.hpp
@@ -1,32 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_dual_quaternion
/// @file glm/gtx/dual_quaternion.hpp
-/// @date 2013-02-10 / 2013-02-20
/// @author Maksim Vorobiev (msomeone at gmail.com)
///
/// @see core (dependence)
@@ -40,7 +13,6 @@
/// @brief Defines a templated dual-quaternion type and several dual-quaternion operations.
///
/// <glm/gtx/dual_quaternion.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,7 +21,7 @@
#include "../gtc/constants.hpp"
#include "../gtc/quaternion.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_dual_quaternion extension included")
#endif
@@ -66,54 +38,40 @@ namespace glm
typedef T value_type;
typedef glm::tquat<T, P> part_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 2;
- static GLM_RELAXED_CONSTEXPR precision prec = P;
-# endif//GLM_META_PROG_HELPERS
-
// -- Data --
glm::tquat<T, P> real, dual;
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- typedef size_t size_type;
- /// Return the count of components of a dual quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR size_type size() const;
-
- GLM_FUNC_DECL part_type & operator[](size_type i);
- GLM_FUNC_DECL part_type const & operator[](size_type i) const;
-# else
- typedef length_t length_type;
- /// Return the count of components of a dual quaternion
- GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
+ typedef length_t length_type;
+ /// Return the count of components of a dual quaternion
+ GLM_FUNC_DECL GLM_CONSTEXPR length_type length() const;
- GLM_FUNC_DECL part_type & operator[](length_type i);
- GLM_FUNC_DECL part_type const & operator[](length_type i) const;
-# endif//GLM_FORCE_SIZE_FUNC
+ GLM_FUNC_DECL part_type & operator[](length_type i);
+ GLM_FUNC_DECL part_type const & operator[](length_type i) const;
// -- Implicit basic constructors --
- GLM_FUNC_DECL tdualquat() GLM_DEFAULT_CTOR;
- GLM_FUNC_DECL tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT_CTOR;
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const & d) GLM_DEFAULT;
template <precision Q>
- GLM_FUNC_DECL tdualquat(tdualquat<T, Q> const & d);
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const & d);
// -- Explicit basic constructors --
- GLM_FUNC_DECL explicit tdualquat(ctor);
- GLM_FUNC_DECL explicit tdualquat(tquat<T, P> const & real);
- GLM_FUNC_DECL tdualquat(tquat<T, P> const & orientation, tvec3<T, P> const & translation);
- GLM_FUNC_DECL tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);
+ GLM_FUNC_DECL GLM_CONSTEXPR_CTOR explicit tdualquat(ctor);
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real);
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & orientation, tvec3<T, P> const & translation);
+ GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tquat<T, P> const & real, tquat<T, P> const & dual);
// -- Conversion constructors --
template <typename U, precision Q>
- GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);
+ GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, Q> const & q);
- GLM_FUNC_DECL explicit tdualquat(tmat2x4<T, P> const & holder_mat);
- GLM_FUNC_DECL explicit tdualquat(tmat3x4<T, P> const & aug_mat);
+ GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat2x4<T, P> const & holder_mat);
+ GLM_FUNC_DECL GLM_EXPLICIT tdualquat(tmat3x4<T, P> const & aug_mat);
// -- Unary arithmetic operators --
diff --git a/glm/gtx/dual_quaternion.inl b/glm/gtx/dual_quaternion.inl
index d5ab733..cb01dc4 100644
--- a/glm/gtx/dual_quaternion.inl
+++ b/glm/gtx/dual_quaternion.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_dual_quaternion
/// @file glm/gtx/dual_quaternion.inl
-/// @date 2013-02-10 / 2013-02-13
-/// @author Maksim Vorobiev (msomeone at gmail.com)
-///////////////////////////////////////////////////////////////////////////////////
#include "../geometric.hpp"
#include <limits>
@@ -37,53 +8,31 @@ namespace glm
{
// -- Component accesses --
-# ifdef GLM_FORCE_SIZE_FUNC
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat<T, P>::size_type tdualquat<T, P>::size() const
- {
- return 2;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type & tdualquat<T, P>::operator[](typename tdualquat<T, P>::size_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&real)[i];
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type const & tdualquat<T, P>::operator[](typename tdualquat<T, P>::size_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&real)[i];
- }
-# else
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat<T, P>::length_type tdualquat<T, P>::length() const
- {
- return 2;
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR typename tdualquat<T, P>::length_type tdualquat<T, P>::length() const
+ {
+ return 2;
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i)
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&real)[i];
- }
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i)
+ {
+ assert(i >= 0 && i < this->length());
+ return (&real)[i];
+ }
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type const & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i) const
- {
- assert(i >= 0 && static_cast<detail::component_count_t>(i) < detail::component_count(*this));
- return (&real)[i];
- }
-# endif//GLM_FORCE_SIZE_FUNC
+ template <typename T, precision P>
+ GLM_FUNC_QUALIFIER typename tdualquat<T, P>::part_type const & tdualquat<T, P>::operator[](typename tdualquat<T, P>::length_type i) const
+ {
+ assert(i >= 0 && i < this->length());
+ return (&real)[i];
+ }
// -- Implicit basic constructors --
# if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat()
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat()
# ifndef GLM_FORCE_NO_CTOR_INIT
: real(tquat<T, P>())
, dual(tquat<T, P>(0, 0, 0, 0))
@@ -93,7 +42,7 @@ namespace glm
# if !GLM_HAS_DEFAULTED_FUNCTIONS
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tdualquat<T, P> const & d)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<T, P> const & d)
: real(d.real)
, dual(d.dual)
{}
@@ -101,7 +50,7 @@ namespace glm
template <typename T, precision P>
template <precision Q>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tdualquat<T, Q> const & d)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<T, Q> const & d)
: real(d.real)
, dual(d.dual)
{}
@@ -109,16 +58,16 @@ namespace glm
// -- Explicit basic constructors --
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(ctor)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR_CTOR tdualquat<T, P>::tdualquat(ctor)
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tquat<T, P> const & r)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & r)
: real(r), dual(tquat<T, P>(0, 0, 0, 0))
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tquat<T, P> const & q, tvec3<T, P> const& p)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & q, tvec3<T, P> const& p)
: real(q), dual(
T(-0.5) * ( p.x*q.x + p.y*q.y + p.z*q.z),
T(+0.5) * ( p.x*q.w + p.y*q.z - p.z*q.y),
@@ -127,7 +76,7 @@ namespace glm
{}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tquat<T, P> const & r, tquat<T, P> const & d)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tquat<T, P> const & r, tquat<T, P> const & d)
: real(r), dual(d)
{}
@@ -135,7 +84,7 @@ namespace glm
template <typename T, precision P>
template <typename U, precision Q>
- GLM_FUNC_QUALIFIER tdualquat<T, P>::tdualquat(tdualquat<U, Q> const & q)
+ GLM_FUNC_QUALIFIER GLM_CONSTEXPR tdualquat<T, P>::tdualquat(tdualquat<U, Q> const & q)
: real(q.real)
, dual(q.dual)
{}
diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp
index 19282fb..9c7effc 100644
--- a/glm/gtx/euler_angles.hpp
+++ b/glm/gtx/euler_angles.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_euler_angles
/// @file glm/gtx/euler_angles.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
///
/// @defgroup gtx_euler_angles GLM_GTX_euler_angles
/// @ingroup gtx
-///
+///
/// @brief Build matrices from Euler angles.
-///
+///
/// <glm/gtx/euler_angles.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_euler_angles extension included")
#endif
@@ -161,7 +132,7 @@ namespace glm
/// Extracts the (X * Y * Z) Euler angles from the rotation matrix M
/// @see gtx_euler_angles
template <typename T>
- GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> & M,
+ GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> const & M,
T & t1,
T & t2,
T & t3);
diff --git a/glm/gtx/euler_angles.inl b/glm/gtx/euler_angles.inl
index e8d2916..fa2ee57 100644
--- a/glm/gtx/euler_angles.inl
+++ b/glm/gtx/euler_angles.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_euler_angles
/// @file glm/gtx/euler_angles.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
#include "compatibility.hpp" // glm::atan2
@@ -323,7 +294,7 @@ namespace glm
}
template <typename T>
- GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> & M,
+ GLM_FUNC_DECL void extractEulerAngleXYZ(tmat4x4<T, defaultp> const & M,
T & t1,
T & t2,
T & t3)
diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp
index f365a55..87e50c1 100644
--- a/glm/gtx/extend.hpp
+++ b/glm/gtx/extend.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_extend
/// @file glm/gtx/extend.hpp
-/// @date 2006-01-07 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_extend GLM_GTX_extend
/// @ingroup gtx
-///
+///
/// @brief Extend a position from a source to a position at a defined length.
-///
+///
/// <glm/gtx/extend.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extend extension included")
#endif
diff --git a/glm/gtx/extend.inl b/glm/gtx/extend.inl
index e127212..c459679 100644
--- a/glm/gtx/extend.inl
+++ b/glm/gtx/extend.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_extend
/// @file glm/gtx/extend.inl
-/// @date 2006-01-07 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/extented_min_max.hpp b/glm/gtx/extended_min_max.hpp
similarity index 63%
rename from glm/gtx/extented_min_max.hpp
rename to glm/gtx/extended_min_max.hpp
index 0990ee8..6a874f3 100644
--- a/glm/gtx/extented_min_max.hpp
+++ b/glm/gtx/extended_min_max.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref gtx_extented_min_max
-/// @file glm/gtx/extented_min_max.hpp
-/// @date 2007-03-14 / 2011-06-07
-/// @author Christophe Riccio
+/// @ref gtx_extended_min_max
+/// @file glm/gtx/extended_min_max.hpp
///
/// @see core (dependence)
/// @see gtx_half_float (dependence)
///
/// @defgroup gtx_extented_min_max GLM_GTX_extented_min_max
/// @ingroup gtx
-///
+///
/// Min and max functions for 3 to 4 parameters.
-///
+///
/// <glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extented_min_max extension included")
#endif
@@ -159,4 +130,4 @@ namespace glm
/// @}
}//namespace glm
-#include "extented_min_max.inl"
+#include "extended_min_max.inl"
diff --git a/glm/gtx/extented_min_max.inl b/glm/gtx/extended_min_max.inl
similarity index 57%
rename from glm/gtx/extented_min_max.inl
rename to glm/gtx/extended_min_max.inl
index 1781d4b..cb1bcb0 100644
--- a/glm/gtx/extented_min_max.inl
+++ b/glm/gtx/extended_min_max.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref gtx_extented_min_max
-/// @file glm/gtx/extented_min_max.inl
-/// @date 2007-03-14 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
+/// @ref gtx_extended_min_max
+/// @file glm/gtx/extended_min_max.inl
namespace glm
{
diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp
index e3db9c5..7b7fbd7 100644
--- a/glm/gtx/fast_exponential.hpp
+++ b/glm/gtx/fast_exponential.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_exponential
/// @file glm/gtx/fast_exponential.hpp
-/// @date 2006-01-09 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_half_float (dependence)
///
/// @defgroup gtx_fast_exponential GLM_GTX_fast_exponential
/// @ingroup gtx
-///
+///
/// @brief Fast but less accurate implementations of exponential based functions.
-///
+///
/// <glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_exponential extension included")
#endif
diff --git a/glm/gtx/fast_exponential.inl b/glm/gtx/fast_exponential.inl
index 54e1d00..5b5b643 100644
--- a/glm/gtx/fast_exponential.inl
+++ b/glm/gtx/fast_exponential.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_exponential
/// @file glm/gtx/fast_exponential.inl
-/// @date 2006-01-09 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -58,7 +29,7 @@ namespace glm
GLM_FUNC_QUALIFIER vecType<T, P> fastPow(vecType<T, P> const & x, vecType<int, P> const & y)
{
vecType<T, P> Result(uninitialize);
- for(detail::component_count_t i = 0; i < detail::component_count(x); ++i)
+ for(length_t i = 0, n = x.length(); i < n; ++i)
Result[i] = fastPow(x[i], y[i]);
return Result;
}
diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp
index 269f07d..de5c58e 100644
--- a/glm/gtx/fast_square_root.hpp
+++ b/glm/gtx/fast_square_root.hpp
@@ -1,45 +1,16 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_square_root
/// @file glm/gtx/fast_square_root.hpp
-/// @date 2006-01-04 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_fast_square_root GLM_GTX_fast_square_root
/// @ingroup gtx
-///
+///
/// @brief Fast but less accurate implementations of square root based functions.
/// - Sqrt optimisation based on Newton's method,
/// www.gamedev.net/community/forums/topic.asp?topic id=139956
-///
+///
/// <glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,7 +19,7 @@
#include "../exponential.hpp"
#include "../geometric.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_square_root extension included")
#endif
diff --git a/glm/gtx/fast_square_root.inl b/glm/gtx/fast_square_root.inl
index e99ca70..34da54d 100644
--- a/glm/gtx/fast_square_root.inl
+++ b/glm/gtx/fast_square_root.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_square_root
/// @file glm/gtx/fast_square_root.inl
-/// @date 2006-01-04 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -52,17 +23,17 @@ namespace glm
GLM_FUNC_QUALIFIER genType fastInverseSqrt(genType x)
{
# ifdef __CUDACC__ // Wordaround for a CUDA compiler bug up to CUDA6
- tvec1<T, P> tmp(detail::compute_inversesqrt<tvec1, genType, lowp>::call(tvec1<genType, lowp>(x)));
+ tvec1<T, P> tmp(detail::compute_inversesqrt<tvec1, genType, lowp, detail::is_aligned<lowp>::value>::call(tvec1<genType, lowp>(x)));
return tmp.x;
# else
- return detail::compute_inversesqrt<tvec1, genType, lowp>::call(tvec1<genType, lowp>(x)).x;
+ return detail::compute_inversesqrt<tvec1, genType, highp, detail::is_aligned<highp>::value>::call(tvec1<genType, lowp>(x)).x;
# endif
}
template <typename T, precision P, template <typename, precision> class vecType>
GLM_FUNC_QUALIFIER vecType<T, P> fastInverseSqrt(vecType<T, P> const & x)
{
- return detail::compute_inversesqrt<vecType, T, P>::call(x);
+ return detail::compute_inversesqrt<vecType, T, P, detail::is_aligned<P>::value>::call(x);
}
// fastLength
diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp
index a1ce207..1ff629c 100644
--- a/glm/gtx/fast_trigonometry.hpp
+++ b/glm/gtx/fast_trigonometry.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_trigonometry
/// @file glm/gtx/fast_trigonometry.hpp
-/// @date 2006-01-08 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_fast_trigonometry GLM_GTX_fast_trigonometry
/// @ingroup gtx
-///
+///
/// @brief Fast but less accurate implementations of trigonometric functions.
-///
+///
/// <glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../gtc/constants.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
#endif
diff --git a/glm/gtx/fast_trigonometry.inl b/glm/gtx/fast_trigonometry.inl
index 7e4475c..1ee7669 100644
--- a/glm/gtx/fast_trigonometry.inl
+++ b/glm/gtx/fast_trigonometry.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_fast_trigonometry
/// @file glm/gtx/fast_trigonometry.inl
-/// @date 2006-01-08 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail
diff --git a/glm/gtx/float_notmalize.inl b/glm/gtx/float_notmalize.inl
new file mode 100644
index 0000000..e2f9bc9
--- /dev/null
+++ b/glm/gtx/float_notmalize.inl
@@ -0,0 +1,14 @@
+/// @ref gtx_float_normalize
+/// @file glm/gtx/float_normalize.inl
+
+#include <limits>
+
+namespace glm
+{
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<float, P> floatNormalize(vecType<T, P> const & v)
+ {
+ return vecType<float, P>(v) / static_cast<float>(std::numeric_limits<T>::max());
+ }
+
+}//namespace glm
diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp
index 28da113..34baf4c 100644
--- a/glm/gtx/gradient_paint.hpp
+++ b/glm/gtx/gradient_paint.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_gradient_paint
/// @file glm/gtx/gradient_paint.hpp
-/// @date 2009-03-06 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_optimum_pow (dependence)
///
/// @defgroup gtx_gradient_paint GLM_GTX_gradient_paint
/// @ingroup gtx
-///
+///
/// @brief Functions that return the color of procedural gradient for specific coordinates.
/// <glm/gtx/gradient_paint.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +16,7 @@
#include "../glm.hpp"
#include "../gtx/optimum_pow.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_gradient_paint extension included")
#endif
diff --git a/glm/gtx/gradient_paint.inl b/glm/gtx/gradient_paint.inl
index 6c79029..a879c88 100644
--- a/glm/gtx/gradient_paint.inl
+++ b/glm/gtx/gradient_paint.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_gradient_paint
/// @file glm/gtx/gradient_paint.inl
-/// @date 2009-03-06 / 2013-04-09
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp
index c71f81e..d5ed2db 100644
--- a/glm/gtx/handed_coordinate_space.hpp
+++ b/glm/gtx/handed_coordinate_space.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_handed_coordinate_space
/// @file glm/gtx/handed_coordinate_space.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_handed_coordinate_space GLM_GTX_handed_coordinate_space
/// @ingroup gtx
-///
+///
/// @brief To know if a set of three basis vectors defines a right or left-handed coordinate system.
-///
+///
/// <glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
#endif
diff --git a/glm/gtx/handed_coordinate_space.inl b/glm/gtx/handed_coordinate_space.inl
index f634f8d..8a669d8 100644
--- a/glm/gtx/handed_coordinate_space.inl
+++ b/glm/gtx/handed_coordinate_space.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_handed_coordinate_space
/// @file glm/gtx/handed_coordinate_space.inl
-/// @date 2005-12-21 / 2009-02-19
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp
index a4e7baa..5e1ef97 100644
--- a/glm/gtx/hash.hpp
+++ b/glm/gtx/hash.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_hash
/// @file glm/gtx/hash.hpp
-/// @date 2015-03-07 / 2015-03-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -37,7 +9,6 @@
/// @brief Add std::hash support for glm types
///
/// <glm/gtx/hash.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/gtx/hash.inl b/glm/gtx/hash.inl
index dc793ba..222cb4b 100644
--- a/glm/gtx/hash.inl
+++ b/glm/gtx/hash.inl
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_hash
/// @file glm/gtx/hash.inl
-/// @date 2015-03-07 / 2015-03-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_hash GLM_GTX_hash
/// @ingroup gtx
-///
+///
/// @brief Add std::hash support for glm types
-///
+///
/// <glm/gtx/hash.inl> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
namespace glm {
namespace detail
diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp
index 927fda8..b1b28bc 100644
--- a/glm/gtx/integer.hpp
+++ b/glm/gtx/integer.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_integer
/// @file glm/gtx/integer.hpp
-/// @date 2005-12-24 / 2011-10-13
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_integer GLM_GTX_integer
/// @ingroup gtx
-///
+///
/// @brief Add support for integer for core functions
-///
+///
/// <glm/gtx/integer.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +16,7 @@
#include "../glm.hpp"
#include "../gtc/integer.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_integer extension included")
#endif
diff --git a/glm/gtx/integer.inl b/glm/gtx/integer.inl
index 55d8f1a..ca47012 100644
--- a/glm/gtx/integer.inl
+++ b/glm/gtx/integer.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_integer
/// @file glm/gtx/integer.inl
-/// @date 2005-12-24 / 2011-10-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp
index 6fe3ece..f7a0b0b 100644
--- a/glm/gtx/intersect.hpp
+++ b/glm/gtx/intersect.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_intersect
/// @file glm/gtx/intersect.hpp
-/// @date 2007-04-03 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_closest_point (dependence)
///
/// @defgroup gtx_intersect GLM_GTX_intersect
/// @ingroup gtx
-///
+///
/// @brief Add intersection functions
-///
+///
/// <glm/gtx/intersect.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +21,7 @@
#include "../gtx/closest_point.hpp"
#include "../gtx/vector_query.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_closest_point extension included")
#endif
diff --git a/glm/gtx/intersect.inl b/glm/gtx/intersect.inl
index 832b3ec..1408275 100644
--- a/glm/gtx/intersect.inl
+++ b/glm/gtx/intersect.inl
@@ -1,11 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2007-04-03
-// Updated : 2009-01-20
-// Licence : This source is under MIT licence
-// File : glm/gtx/intersect.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
+/// @ref gtx_intersect
+/// @file glm/gtx/intersect.inl
namespace glm
{
@@ -45,7 +39,7 @@ namespace glm
typename genType::value_type a = glm::dot(e1, p);
typename genType::value_type Epsilon = std::numeric_limits<typename genType::value_type>::epsilon();
- if(a < Epsilon)
+ if(a < Epsilon && a > -Epsilon)
return false;
typename genType::value_type f = typename genType::value_type(1.0f) / a;
@@ -69,43 +63,6 @@ namespace glm
return baryPosition.z >= typename genType::value_type(0.0f);
}
- //template <typename genType>
- //GLM_FUNC_QUALIFIER bool intersectRayTriangle
- //(
- // genType const & orig, genType const & dir,
- // genType const & vert0, genType const & vert1, genType const & vert2,
- // genType & position
- //)
- //{
- // typename genType::value_type Epsilon = std::numeric_limits<typename genType::value_type>::epsilon();
- //
- // genType edge1 = vert1 - vert0;
- // genType edge2 = vert2 - vert0;
- //
- // genType pvec = cross(dir, edge2);
- //
- // float det = dot(edge1, pvec);
- // if(det < Epsilon)
- // return false;
- //
- // genType tvec = orig - vert0;
- //
- // position.y = dot(tvec, pvec);
- // if (position.y < typename genType::value_type(0) || position.y > det)
- // return typename genType::value_type(0);
- //
- // genType qvec = cross(tvec, edge1);
- //
- // position.z = dot(dir, qvec);
- // if (position.z < typename genType::value_type(0) || position.y + position.z > det)
- // return typename genType::value_type(0);
- //
- // position.x = dot(edge2, qvec);
- // position *= typename genType::value_type(1) / det;
- //
- // return typename genType::value_type(1);
- //}
-
template <typename genType>
GLM_FUNC_QUALIFIER bool intersectLineTriangle
(
diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp
index 9f629db..2cec168 100644
--- a/glm/gtx/io.hpp
+++ b/glm/gtx/io.hpp
@@ -1,35 +1,9 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_io
/// @file glm/gtx/io.hpp
-/// @date 2013-11-22 / 2014-11-25
/// @author Jan P Springer (regnirpsj at gmail.com)
///
/// @see core (dependence)
+/// @see gtc_matrix_access (dependence)
/// @see gtc_quaternion (dependence)
///
/// @defgroup gtx_io GLM_GTX_io
@@ -37,12 +11,11 @@
///
/// @brief std::[w]ostream support for glm types
///
-/// std::[w]ostream support for glm types + precision/width/etc. manipulators
-/// based on howard hinnant's std::chrono io proposal
-/// [http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html]
+/// std::[w]ostream support for glm types + precision/width/etc. manipulators
+/// based on howard hinnant's std::chrono io proposal
+/// [http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html]
///
/// <glm/gtx/io.hpp> needs to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -50,7 +23,7 @@
#include "../glm.hpp"
#include "../gtx/quaternion.hpp"
-#if(defined(GLM_MESSAGES) && !defined(glm_ext))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_io extension included")
#endif
@@ -86,8 +59,8 @@ namespace glm
char_type newline;
order_type order;
- explicit format_punct(size_t a = 0);
- explicit format_punct(format_punct const&);
+ GLM_FUNC_DECL explicit format_punct(size_t a = 0);
+ GLM_FUNC_DECL explicit format_punct(format_punct const&);
};
template <typename CTy, typename CTr = std::char_traits<CTy> >
@@ -95,8 +68,8 @@ namespace glm
public:
- explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
- ~basic_state_saver();
+ GLM_FUNC_DECL explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
+ GLM_FUNC_DECL ~basic_state_saver();
private:
@@ -113,7 +86,7 @@ namespace glm
char_type fill_;
locale_type locale_;
- basic_state_saver& operator=(basic_state_saver const&);
+ GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver const&);
};
typedef basic_state_saver<char> state_saver;
@@ -124,14 +97,14 @@ namespace glm
{
public:
- explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
- ~basic_format_saver();
+ GLM_FUNC_DECL explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
+ GLM_FUNC_DECL ~basic_format_saver();
private:
basic_state_saver<CTy> const bss_;
- basic_format_saver& operator=(basic_format_saver const&);
+ GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver const&);
};
typedef basic_format_saver<char> format_saver;
@@ -141,14 +114,14 @@ namespace glm
{
unsigned value;
- explicit precision(unsigned);
+ GLM_FUNC_DECL explicit precision(unsigned);
};
struct width
{
unsigned value;
- explicit width(unsigned);
+ GLM_FUNC_DECL explicit width(unsigned);
};
template <typename CTy>
@@ -156,14 +129,14 @@ namespace glm
{
CTy value[3];
- explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
+ GLM_FUNC_DECL explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
};
struct order
{
order_type value;
- explicit order(order_type);
+ GLM_FUNC_DECL explicit order(order_type);
};
// functions, inlined (inline)
@@ -214,17 +187,9 @@ namespace glm
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&);
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(
- std::basic_ostream<CTy,CTr> &,
- std::pair<tmat4x4<T,P> const,
- tmat4x4<T,P> const> const &);
-
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(
- std::basic_ostream<CTy,CTr> &,
- std::pair<tmat4x4<T,P>,
- tmat4x4<T,P> > const &);
+ template <typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,
+ std::pair<tmat4x4<T,P> const, tmat4x4<T,P> const> const &);
/// @}
}//namespace glm
diff --git a/glm/gtx/io.inl b/glm/gtx/io.inl
index 74573b3..cf69ebe 100644
--- a/glm/gtx/io.inl
+++ b/glm/gtx/io.inl
@@ -1,85 +1,57 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_io
/// @file glm/gtx/io.inl
-/// @date 2013-11-22 / 2014-11-25
/// @author Jan P Springer (regnirpsj at gmail.com)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-#include <iomanip> // std::setfill<>, std::fixed, std::setprecision, std::right, std::setw
-#include <ostream> // std::basic_ostream<>
+#include <iomanip> // std::fixed, std::setfill<>, std::setprecision, std::right, std::setw
+#include <ostream> // std::basic_ostream<>
+#include "../gtc/matrix_access.hpp" // glm::col, glm::row
+#include "../gtx/type_trait.hpp" // glm::type<>
namespace glm{
namespace io
{
template <typename CTy>
- /* explicit */ GLM_FUNC_QUALIFIER
- format_punct<CTy>::format_punct(size_t a)
- : std::locale::facet(a),
- formatted (true),
- precision (3),
- width (1 + 4 + 1 + precision),
- separator (','),
- delim_left ('['),
- delim_right (']'),
- space (' '),
- newline ('\n'),
- order (row_major)
+ GLM_FUNC_QUALIFIER format_punct<CTy>::format_punct(size_t a)
+ : std::locale::facet(a)
+ , formatted(true)
+ , precision(3)
+ , width(1 + 4 + 1 + precision)
+ , separator(',')
+ , delim_left('[')
+ , delim_right(']')
+ , space(' ')
+ , newline('\n')
+ , order(column_major)
{}
template <typename CTy>
- /* explicit */ GLM_FUNC_QUALIFIER
- format_punct<CTy>::format_punct(format_punct const& a)
- : std::locale::facet(0),
- formatted (a.formatted),
- precision (a.precision),
- width (a.width),
- separator (a.separator),
- delim_left (a.delim_left),
- delim_right (a.delim_right),
- space (a.space),
- newline (a.newline),
- order (a.order)
+ GLM_FUNC_QUALIFIER format_punct<CTy>::format_punct(format_punct const& a)
+ : std::locale::facet(0)
+ , formatted(a.formatted)
+ , precision(a.precision)
+ , width(a.width)
+ , separator(a.separator)
+ , delim_left(a.delim_left)
+ , delim_right(a.delim_right)
+ , space(a.space)
+ , newline(a.newline)
+ , order(a.order)
{}
template <typename CTy> std::locale::id format_punct<CTy>::id;
template <typename CTy, typename CTr>
- /* explicit */ GLM_FUNC_QUALIFIER basic_state_saver<CTy,CTr>::basic_state_saver(std::basic_ios<CTy,CTr>& a)
- : state_ (a),
- flags_ (a.flags()),
- precision_(a.precision()),
- width_ (a.width()),
- fill_ (a.fill()),
- locale_ (a.getloc())
+ GLM_FUNC_QUALIFIER basic_state_saver<CTy, CTr>::basic_state_saver(std::basic_ios<CTy, CTr>& a)
+ : state_(a)
+ , flags_(a.flags())
+ , precision_(a.precision())
+ , width_(a.width())
+ , fill_(a.fill())
+ , locale_(a.getloc())
{}
template <typename CTy, typename CTr>
- GLM_FUNC_QUALIFIER basic_state_saver<CTy,CTr>::~basic_state_saver()
+ GLM_FUNC_QUALIFIER basic_state_saver<CTy, CTr>::~basic_state_saver()
{
state_.imbue(locale_);
state_.fill(fill_);
@@ -89,7 +61,7 @@ namespace io
}
template <typename CTy, typename CTr>
- /* explicit */ GLM_FUNC_QUALIFIER basic_format_saver<CTy,CTr>::basic_format_saver(std::basic_ios<CTy,CTr>& a)
+ GLM_FUNC_QUALIFIER basic_format_saver<CTy, CTr>::basic_format_saver(std::basic_ios<CTy, CTr>& a)
: bss_(a)
{
a.imbue(std::locale(a.getloc(), new format_punct<CTy>(get_facet<format_punct<CTy> >(a))));
@@ -97,19 +69,19 @@ namespace io
template <typename CTy, typename CTr>
GLM_FUNC_QUALIFIER
- basic_format_saver<CTy,CTr>::~basic_format_saver()
+ basic_format_saver<CTy, CTr>::~basic_format_saver()
{}
- /* explicit */ GLM_FUNC_QUALIFIER precision::precision(unsigned a)
+ GLM_FUNC_QUALIFIER precision::precision(unsigned a)
: value(a)
{}
- /* explicit */ GLM_FUNC_QUALIFIER width::width(unsigned a)
+ GLM_FUNC_QUALIFIER width::width(unsigned a)
: value(a)
{}
template <typename CTy>
- /* explicit */ GLM_FUNC_QUALIFIER delimeter<CTy>::delimeter(CTy a, CTy b, CTy c)
+ GLM_FUNC_QUALIFIER delimeter<CTy>::delimeter(CTy a, CTy b, CTy c)
: value()
{
value[0] = a;
@@ -117,34 +89,30 @@ namespace io
value[2] = c;
}
- /* explicit */ GLM_FUNC_QUALIFIER
- order::order(order_type a)
+ GLM_FUNC_QUALIFIER order::order(order_type a)
: value(a)
{}
template <typename FTy, typename CTy, typename CTr>
- GLM_FUNC_QUALIFIER FTy const& get_facet(std::basic_ios<CTy,CTr>& ios)
+ GLM_FUNC_QUALIFIER FTy const& get_facet(std::basic_ios<CTy, CTr>& ios)
{
- if (!std::has_facet<FTy>(ios.getloc())) {
- ios.imbue(std::locale(ios.getloc(), new FTy));
- }
+ if(!std::has_facet<FTy>(ios.getloc()))
+ ios.imbue(std::locale(ios.getloc(), new FTy));
return std::use_facet<FTy>(ios.getloc());
}
template <typename CTy, typename CTr>
- GLM_FUNC_QUALIFIER std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>& ios)
+ GLM_FUNC_QUALIFIER std::basic_ios<CTy, CTr>& formatted(std::basic_ios<CTy, CTr>& ios)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(ios)).formatted = true;
-
return ios;
}
template <typename CTy, typename CTr>
- GLM_FUNC_QUALIFIER std::basic_ios<CTy,CTr>& unformatted(std::basic_ios<CTy,CTr>& ios)
+ GLM_FUNC_QUALIFIER std::basic_ios<CTy, CTr>& unformatted(std::basic_ios<CTy, CTr>& ios)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(ios)).formatted = false;
-
return ios;
}
@@ -152,7 +120,6 @@ namespace io
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, precision const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).precision = a.value;
-
return os;
}
@@ -160,12 +127,11 @@ namespace io
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, width const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).width = a.value;
-
return os;
}
template <typename CTy, typename CTr>
- std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, delimeter<CTy> const& a)
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, delimeter<CTy> const& a)
{
format_punct<CTy> & fmt(const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)));
@@ -180,462 +146,279 @@ namespace io
GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>& os, order const& a)
{
const_cast<format_punct<CTy>&>(get_facet<format_punct<CTy> >(os)).order = a.value;
-
return os;
}
} // namespace io
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tquat<T,P> const& a)
+namespace detail
+{
+ template <typename CTy, typename CTr, template <typename, precision> class V, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>&
+ print_vector_on(std::basic_ostream<CTy, CTr>& os, V<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
+ typename std::basic_ostream<CTy, CTr>::sentry const cerberus(os);
if(cerberus)
{
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
+ length_t const& components(type<V, T, P>::components);
+
if(fmt.formatted)
{
io::basic_state_saver<CTy> const bss(os);
- os << std::fixed
- << std::right
- << std::setprecision(fmt.precision)
- << std::setfill(fmt.space)
- << fmt.delim_left
- << std::setw(fmt.width) << a.w << fmt.separator
- << std::setw(fmt.width) << a.x << fmt.separator
- << std::setw(fmt.width) << a.y << fmt.separator
- << std::setw(fmt.width) << a.z
- << fmt.delim_right;
+ os << std::fixed << std::right << std::setprecision(fmt.precision) << std::setfill(fmt.space) << fmt.delim_left;
+
+ for(length_t i(0); i < components; ++i)
+ {
+ os << std::setw(fmt.width) << a[i];
+ if(components-1 != i)
+ os << fmt.separator;
+ }
+
+ os << fmt.delim_right;
}
else
{
- os << a.w << fmt.space << a.x << fmt.space << a.y << fmt.space << a.z;
+ for(length_t i(0); i < components; ++i)
+ {
+ os << a[i];
+
+ if(components-1 != i)
+ os << fmt.space;
+ }
}
}
return os;
}
+}//namespace detail
template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec1<T,P> const& a)
- {
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
-
- if(fmt.formatted)
- {
- io::basic_state_saver<CTy> const bss(os);
-
- os << std::fixed
- << std::right
- << std::setprecision(fmt.precision)
- << std::setfill(fmt.space)
- << fmt.delim_left
- << std::setw(fmt.width) << a.x
- << fmt.delim_right;
- }
- else
- {
- os << a.x;
- }
- }
-
- return os;
- }
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tquat<T,P> const& a)
+ {
+ return detail::print_vector_on(os, a);
+ }
template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec2<T,P> const& a)
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec1<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
-
- if(fmt.formatted)
- {
- io::basic_state_saver<CTy> const bss(os);
-
- os << std::fixed
- << std::right
- << std::setprecision(fmt.precision)
- << std::setfill(fmt.space)
- << fmt.delim_left
- << std::setw(fmt.width) << a.x << fmt.separator
- << std::setw(fmt.width) << a.y
- << fmt.delim_right;
- }
- else
- {
- os << a.x << fmt.space << a.y;
- }
- }
+ return detail::print_vector_on(os, a);
+ }
- return os;
+ template <typename CTy, typename CTr, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec2<T,P> const& a)
+ {
+ return detail::print_vector_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec3<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
-
- if(fmt.formatted)
- {
- io::basic_state_saver<CTy> const bss(os);
-
- os << std::fixed
- << std::right
- << std::setprecision(fmt.precision)
- << std::setfill(fmt.space)
- << fmt.delim_left
- << std::setw(fmt.width) << a.x << fmt.separator
- << std::setw(fmt.width) << a.y << fmt.separator
- << std::setw(fmt.width) << a.z
- << fmt.delim_right;
- }
- else
- {
- os << a.x << fmt.space << a.y << fmt.space << a.z;
- }
- }
-
- return os;
+ return detail::print_vector_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tvec4<T,P> const& a)
{
+ return detail::print_vector_on(os, a);
+ }
+
+namespace detail
+{
+ template <typename CTy, typename CTr, template <typename, precision> class M, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& print_matrix_on(std::basic_ostream<CTy, CTr>& os, M<T,P> const& a)
+ {
typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
if(cerberus)
{
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
+ length_t const& cols(type<M, T, P>::cols);
+ length_t const& rows(type<M, T, P>::rows);
+
if(fmt.formatted)
{
- io::basic_state_saver<CTy> const bss(os);
-
- os << std::fixed
- << std::right
- << std::setprecision(fmt.precision)
- << std::setfill(fmt.space)
- << fmt.delim_left
- << std::setw(fmt.width) << a.x << fmt.separator
- << std::setw(fmt.width) << a.y << fmt.separator
- << std::setw(fmt.width) << a.z << fmt.separator
- << std::setw(fmt.width) << a.w
- << fmt.delim_right;
+ os << fmt.newline << fmt.delim_left;
+
+ switch(fmt.order)
+ {
+ case io::column_major:
+ {
+ for(length_t i(0); i < rows; ++i)
+ {
+ if (0 != i)
+ os << fmt.space;
+
+ os << row(a, i);
+
+ if(rows-1 != i)
+ os << fmt.newline;
+ }
+ }
+ break;
+
+ case io::row_major:
+ {
+ for(length_t i(0); i < cols; ++i)
+ {
+ if(0 != i)
+ os << fmt.space;
+
+ os << column(a, i);
+
+ if(cols-1 != i)
+ os << fmt.newline;
+ }
+ }
+ break;
+ }
+
+ os << fmt.delim_right;
}
else
{
- os << a.x << fmt.space << a.y << fmt.space << a.z << fmt.space << a.w;
+ switch (fmt.order)
+ {
+ case io::column_major:
+ {
+ for(length_t i(0); i < cols; ++i)
+ {
+ os << column(a, i);
+
+ if(cols - 1 != i)
+ os << fmt.space;
+ }
+ }
+ break;
+
+ case io::row_major:
+ {
+ for (length_t i(0); i < rows; ++i)
+ {
+ os << row(a, i);
+
+ if (rows-1 != i)
+ os << fmt.space;
+ }
+ }
+ break;
+ }
}
}
return os;
}
+}//namespace detail
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x2<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat2x2<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x3<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat3x2<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat2x4<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat4x2<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.newline
- << fmt.space << m[3] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2] << fmt.space << m[3];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x2<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat2x3<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x3<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat3x3<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat3x4<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat4x3<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if (fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.newline
- << fmt.space << m[3] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2] << fmt.space << m[3];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x2<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat2x4<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if (fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x3<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat3x4<T,P> m(a);
-
- if(io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
template <typename CTy, typename CTr, typename T, precision P>
GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr>& os, tmat4x4<T,P> const& a)
{
- typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
-
- if(cerberus)
- {
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat4x4<T,P> m(a);
-
- if (io::row_major == fmt.order)
- m = transpose(a);
-
- if(fmt.formatted)
- {
- os << fmt.newline
- << fmt.delim_left << m[0] << fmt.newline
- << fmt.space << m[1] << fmt.newline
- << fmt.space << m[2] << fmt.newline
- << fmt.space << m[3] << fmt.delim_right;
- }
- else
- {
- os << m[0] << fmt.space << m[1] << fmt.space << m[2] << fmt.space << m[3];
- }
- }
-
- return os;
+ return detail::print_matrix_on(os, a);
}
- template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(
- std::basic_ostream<CTy,CTr> & os,
- std::pair<tmat4x4<T,P> const, tmat4x4<T,P> const> const& a)
+namespace detail
+{
+ template <typename CTy, typename CTr, template <typename, precision> class M, typename T, precision P>
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& print_matrix_pair_on(std::basic_ostream<CTy, CTr>& os, std::pair<M<T, P> const, M<T, P> const> const& a)
{
typename std::basic_ostream<CTy,CTr>::sentry const cerberus(os);
if(cerberus)
{
- io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
- tmat4x4<T,P> ml(a.first);
- tmat4x4<T,P> mr(a.second);
-
- if(io::row_major == fmt.order)
- {
- ml = transpose(a.first);
- mr = transpose(a.second);
- }
+ io::format_punct<CTy> const& fmt(io::get_facet<io::format_punct<CTy> >(os));
+ M<T,P> const& ml(a.first);
+ M<T,P> const& mr(a.second);
+ length_t const& cols(type<M, T, P>::cols);
+ length_t const& rows(type<M, T, P>::rows);
if(fmt.formatted)
{
- CTy const & l(fmt.delim_left);
- CTy const & r(fmt.delim_right);
- CTy const & s(fmt.space);
-
- os << fmt.newline
- << l << ml[0] << s << s << l << mr[0] << fmt.newline
- << s << ml[1] << s << s << s << mr[1] << fmt.newline
- << s << ml[2] << s << s << s << mr[2] << fmt.newline
- << s << ml[3] << r << s << s << mr[3] << r;
+ os << fmt.newline << fmt.delim_left;
+
+ switch(fmt.order)
+ {
+ case io::column_major:
+ {
+ for(length_t i(0); i < rows; ++i)
+ {
+ if(0 != i)
+ os << fmt.space;
+
+ os << row(ml, i) << ((rows-1 != i) ? fmt.space : fmt.delim_right) << fmt.space << ((0 != i) ? fmt.space : fmt.delim_left) << row(mr, i);
+
+ if(rows-1 != i)
+ os << fmt.newline;
+ }
+ }
+ break;
+ case io::row_major:
+ {
+ for(length_t i(0); i < cols; ++i)
+ {
+ if(0 != i)
+ os << fmt.space;
+
+ os << column(ml, i) << ((cols-1 != i) ? fmt.space : fmt.delim_right) << fmt.space << ((0 != i) ? fmt.space : fmt.delim_left) << column(mr, i);
+
+ if(cols-1 != i)
+ os << fmt.newline;
+ }
+ }
+ break;
+ }
+
+ os << fmt.delim_right;
}
else
{
@@ -645,12 +428,14 @@ namespace io
return os;
}
+}//namespace detail
template <typename CTy, typename CTr, typename T, precision P>
- GLM_FUNC_QUALIFIER std::basic_ostream<CTy,CTr>& operator<<(
- std::basic_ostream<CTy,CTr> & os,
- std::pair<tmat4x4<T,P>, tmat4x4<T,P> > const& a)
+ GLM_FUNC_QUALIFIER std::basic_ostream<CTy, CTr>& operator<<(
+ std::basic_ostream<CTy, CTr> & os,
+ std::pair<tmat4x4<T, P> const,
+ tmat4x4<T, P> const> const& a)
{
- return operator<<(os, static_cast<std::pair<tmat4x4<T,P> const, tmat4x4<T,P> const> const&>(a));
+ return detail::print_matrix_pair_on(os, a);
}
}//namespace glm
diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp
index a637eca..0f34915 100644
--- a/glm/gtx/log_base.hpp
+++ b/glm/gtx/log_base.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_log_base
/// @file glm/gtx/log_base.hpp
-/// @date 2008-10-24 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_log_base GLM_GTX_log_base
/// @ingroup gtx
-///
+///
/// @brief Logarithm for any base. base can be a vector or a scalar.
-///
+///
/// <glm/gtx/log_base.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_log_base extension included")
#endif
diff --git a/glm/gtx/log_base.inl b/glm/gtx/log_base.inl
index 1932216..d2e3f86 100644
--- a/glm/gtx/log_base.inl
+++ b/glm/gtx/log_base.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_log_base
/// @file glm/gtx/log_base.inl
-/// @date 2008-10-24 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp
index 77699c4..031d9bb 100644
--- a/glm/gtx/matrix_cross_product.hpp
+++ b/glm/gtx/matrix_cross_product.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_cross_product
/// @file glm/gtx/matrix_cross_product.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product
/// @ingroup gtx
-///
+///
/// @brief Build cross product matrices
-///
+///
/// <glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
#endif
diff --git a/glm/gtx/matrix_cross_product.inl b/glm/gtx/matrix_cross_product.inl
index 89ba590..12d3867 100644
--- a/glm/gtx/matrix_cross_product.inl
+++ b/glm/gtx/matrix_cross_product.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_cross_product
/// @file glm/gtx/matrix_cross_product.inl
-/// @date 2005-12-21 / 2005-12-21
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp
index e223358..5df6787 100644
--- a/glm/gtx/matrix_decompose.hpp
+++ b/glm/gtx/matrix_decompose.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_decompose
/// @file glm/gtx/matrix_decompose.hpp
-/// @date 2014-08-29 / 2014-08-29
-/// @author Christophe Riccio
-///
+///
/// @see core (dependence)
///
/// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose
/// @ingroup gtx
-///
+///
/// @brief Decomposes a model matrix to translations, rotation and scale components
-///
+///
/// <glm/gtx/matrix_decompose.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,10 +16,11 @@
#include "../mat4x4.hpp"
#include "../vec3.hpp"
#include "../vec4.hpp"
+#include "../geometric.hpp"
#include "../gtc/quaternion.hpp"
#include "../gtc/matrix_transform.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_decompose extension included")
#endif
diff --git a/glm/gtx/matrix_decompose.inl b/glm/gtx/matrix_decompose.inl
index c8406e4..568a2ad 100644
--- a/glm/gtx/matrix_decompose.inl
+++ b/glm/gtx/matrix_decompose.inl
@@ -1,36 +1,8 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_decompose
/// @file glm/gtx/matrix_decompose.inl
-/// @date 2014-08-29 / 2014-08-29
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-namespace glm
+namespace glm{
+namespace detail
{
/// Make a linear combination of two vectors and return the result.
// result = (a * ascl) + (b * bscl)
@@ -44,24 +16,15 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER void v3Scale(tvec3<T, P> & v, T desiredLength)
+ GLM_FUNC_QUALIFIER tvec3<T, P> scale(tvec3<T, P> const& v, T desiredLength)
{
- T len = glm::length(v);
- if(len != 0)
- {
- T l = desiredLength / len;
- v[0] *= l;
- v[1] *= l;
- v[2] *= l;
- }
+ return v * desiredLength / length(v);
}
+}//namespace detail
- /**
- * Matrix decompose
- * http://www.opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
- * Decomposes the mode matrix to translations,rotation scale components
- *
- */
+ // Matrix decompose
+ // http://www.opensource.apple.com/source/WebCore/WebCore-514/platform/graphics/transforms/TransformationMatrix.cpp
+ // Decomposes the mode matrix to translations,rotation scale components
template <typename T, precision P>
GLM_FUNC_QUALIFIER bool decompose(tmat4x4<T, P> const & ModelMatrix, tvec3<T, P> & Scale, tquat<T, P> & Orientation, tvec3<T, P> & Translation, tvec3<T, P> & Skew, tvec4<T, P> & Perspective)
@@ -131,26 +94,26 @@ namespace glm
// Compute X scale factor and normalize first row.
Scale.x = length(Row[0]);// v3Length(Row[0]);
- v3Scale(Row[0], static_cast<T>(1));
+ Row[0] = detail::scale(Row[0], static_cast<T>(1));
// Compute XY shear factor and make 2nd row orthogonal to 1st.
Skew.z = dot(Row[0], Row[1]);
- Row[1] = combine(Row[1], Row[0], static_cast<T>(1), -Skew.z);
+ Row[1] = detail::combine(Row[1], Row[0], static_cast<T>(1), -Skew.z);
// Now, compute Y scale and normalize 2nd row.
Scale.y = length(Row[1]);
- v3Scale(Row[1], static_cast<T>(1));
+ Row[1] = detail::scale(Row[1], static_cast<T>(1));
Skew.z /= Scale.y;
// Compute XZ and YZ shears, orthogonalize 3rd row.
Skew.y = glm::dot(Row[0], Row[2]);
- Row[2] = combine(Row[2], Row[0], static_cast<T>(1), -Skew.y);
+ Row[2] = detail::combine(Row[2], Row[0], static_cast<T>(1), -Skew.y);
Skew.x = glm::dot(Row[1], Row[2]);
- Row[2] = combine(Row[2], Row[1], static_cast<T>(1), -Skew.x);
+ Row[2] = detail::combine(Row[2], Row[1], static_cast<T>(1), -Skew.x);
// Next, get Z scale and normalize 3rd row.
Scale.z = length(Row[2]);
- v3Scale(Row[2], static_cast<T>(1));
+ Row[2] = detail::scale(Row[2], static_cast<T>(1));
Skew.y /= Scale.z;
Skew.x /= Scale.z;
diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp
index 137451d..6a54250 100644
--- a/glm/gtx/matrix_interpolation.hpp
+++ b/glm/gtx/matrix_interpolation.hpp
@@ -1,50 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_interpolation
/// @file glm/gtx/matrix_interpolation.hpp
-/// @date 2011-03-05 / 2011-06-07
/// @author Ghenadii Ursachi (the.asteroth at gmail.com)
///
/// @see core (dependence)
///
/// @defgroup gtx_matrix_interpolation GLM_GTX_matrix_interpolation
/// @ingroup gtx
-///
+///
/// @brief Allows to directly interpolate two exiciting matrices.
-///
+///
/// <glm/gtx/matrix_interpolation.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
#endif
diff --git a/glm/gtx/matrix_interpolation.inl b/glm/gtx/matrix_interpolation.inl
index 5768002..deac920 100644
--- a/glm/gtx/matrix_interpolation.inl
+++ b/glm/gtx/matrix_interpolation.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_interpolation
/// @file glm/gtx/matrix_interpolation.hpp
-/// @date 2011-03-05 / 2011-03-05
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp
index feb74cd..db0d599 100644
--- a/glm/gtx/matrix_major_storage.hpp
+++ b/glm/gtx/matrix_major_storage.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_major_storage
/// @file glm/gtx/matrix_major_storage.hpp
-/// @date 2006-04-19 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_matrix_major_storage GLM_GTX_matrix_major_storage
/// @ingroup gtx
-///
+///
/// @brief Build matrices with specific matrix order, row or column
-///
+///
/// <glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
#endif
diff --git a/glm/gtx/matrix_major_storage.inl b/glm/gtx/matrix_major_storage.inl
index 354dc1d..125b9e4 100644
--- a/glm/gtx/matrix_major_storage.inl
+++ b/glm/gtx/matrix_major_storage.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_major_storage
/// @file glm/gtx/matrix_major_storage.hpp
-/// @date 2006-04-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp
index 252220a..9b40053 100644
--- a/glm/gtx/matrix_operation.hpp
+++ b/glm/gtx/matrix_operation.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_operation
/// @file glm/gtx/matrix_operation.hpp
-/// @date 2009-08-29 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_matrix_operation GLM_GTX_matrix_operation
/// @ingroup gtx
-///
+///
/// @brief Build diagonal matrices from vectors.
-///
+///
/// <glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_operation extension included")
#endif
diff --git a/glm/gtx/matrix_operation.inl b/glm/gtx/matrix_operation.inl
index 591aac7..88ec0b0 100644
--- a/glm/gtx/matrix_operation.inl
+++ b/glm/gtx/matrix_operation.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_operation
/// @file glm/gtx/matrix_operation.inl
-/// @date 2009-08-29 / 2009-08-29
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp
index 6c58544..baf70a5 100644
--- a/glm/gtx/matrix_query.hpp
+++ b/glm/gtx/matrix_query.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_query
/// @file glm/gtx/matrix_query.hpp
-/// @date 2007-03-05 / 2011-08-28
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_vector_query (dependence)
///
/// @defgroup gtx_matrix_query GLM_GTX_matrix_query
/// @ingroup gtx
-///
+///
/// @brief Query to evaluate matrix properties
-///
+///
/// <glm/gtx/matrix_query.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../gtx/vector_query.hpp"
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_query extension included")
#endif
diff --git a/glm/gtx/matrix_query.inl b/glm/gtx/matrix_query.inl
index 621a9b9..b878c13 100644
--- a/glm/gtx/matrix_query.inl
+++ b/glm/gtx/matrix_query.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_query
/// @file glm/gtx/matrix_query.inl
-/// @date 2007-03-05 / 2007-03-05
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -36,7 +7,7 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNull(tmat2x2<T, P> const & m, T const & epsilon)
{
bool result = true;
- for(detail::component_count_t i = 0; result && i < 2 ; ++i)
+ for(length_t i = 0; result && i < m.length() ; ++i)
result = isNull(m[i], epsilon);
return result;
}
@@ -45,7 +16,7 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNull(tmat3x3<T, P> const & m, T const & epsilon)
{
bool result = true;
- for(detail::component_count_t i = 0; result && i < 3 ; ++i)
+ for(length_t i = 0; result && i < m.length() ; ++i)
result = isNull(m[i], epsilon);
return result;
}
@@ -54,7 +25,7 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNull(tmat4x4<T, P> const & m, T const & epsilon)
{
bool result = true;
- for(detail::component_count_t i = 0; result && i < 4 ; ++i)
+ for(length_t i = 0; result && i < m.length() ; ++i)
result = isNull(m[i], epsilon);
return result;
}
@@ -63,13 +34,13 @@ namespace glm
GLM_FUNC_QUALIFIER bool isIdentity(matType<T, P> const & m, T const & epsilon)
{
bool result = true;
- for(detail::component_count_t i(0); result && i < detail::component_count(m[0]); ++i)
+ for(length_t i = 0; result && i < m[0].length() ; ++i)
{
- for(detail::component_count_t j(0); result && j < i ; ++j)
+ for(length_t j = 0; result && j < i ; ++j)
result = abs(m[i][j]) <= epsilon;
if(result)
result = abs(m[i][i] - 1) <= epsilon;
- for(detail::component_count_t j(i + 1); result && j < detail::component_count(m); ++j)
+ for(length_t j = i + 1; result && j < m.length(); ++j)
result = abs(m[i][j]) <= epsilon;
}
return result;
@@ -79,12 +50,12 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNormalized(tmat2x2<T, P> const & m, T const & epsilon)
{
bool result(true);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
{
typename tmat2x2<T, P>::col_type v;
- for(detail::component_count_t j(0); j < detail::component_count(m); ++j)
+ for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
}
@@ -95,12 +66,12 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNormalized(tmat3x3<T, P> const & m, T const & epsilon)
{
bool result(true);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
{
typename tmat3x3<T, P>::col_type v;
- for(detail::component_count_t j(0); j < detail::component_count(m); ++j)
+ for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
}
@@ -111,12 +82,12 @@ namespace glm
GLM_FUNC_QUALIFIER bool isNormalized(tmat4x4<T, P> const & m, T const & epsilon)
{
bool result(true);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
result = isNormalized(m[i], epsilon);
- for(detail::component_count_t i(0); result && i < detail::component_count(m); ++i)
+ for(length_t i = 0; result && i < m.length(); ++i)
{
typename tmat4x4<T, P>::col_type v;
- for(detail::component_count_t j(0); j < detail::component_count(m); ++j)
+ for(length_t j = 0; j < m.length(); ++j)
v[j] = m[j][i];
result = isNormalized(v, epsilon);
}
@@ -127,15 +98,15 @@ namespace glm
GLM_FUNC_QUALIFIER bool isOrthogonal(matType<T, P> const & m, T const & epsilon)
{
bool result(true);
- for(detail::component_count_t i(0); result && i < detail::component_count(m) - 1; ++i)
- for(detail::component_count_t j(i + 1); result && j < detail::component_count(m); ++j)
+ for(length_t i(0); result && i < m.length() - 1; ++i)
+ for(length_t j(i + 1); result && j < m.length(); ++j)
result = areOrthogonal(m[i], m[j], epsilon);
if(result)
{
matType<T, P> tmp = transpose(m);
- for(detail::component_count_t i(0); result && i < detail::component_count(m) - 1 ; ++i)
- for(detail::component_count_t j(i + 1); result && j < detail::component_count(m); ++j)
+ for(length_t i(0); result && i < m.length() - 1 ; ++i)
+ for(length_t j(i + 1); result && j < m.length(); ++j)
result = areOrthogonal(tmp[i], tmp[j], epsilon);
}
return result;
diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp
index ea3e55e..9dc8a8b 100644
--- a/glm/gtx/matrix_transform_2d.hpp
+++ b/glm/gtx/matrix_transform_2d.hpp
@@ -1,43 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_transform_2d
/// @file glm/gtx/matrix_transform_2d.hpp
-/// @date 2014-02-20
/// @author Miguel Ángel Pérez Martínez
///
/// @see core (dependence)
///
/// @defgroup gtx_matrix_transform_2d GLM_GTX_matrix_transform_2d
/// @ingroup gtx
-///
+///
/// @brief Defines functions that generate common 2d transformation matrices.
-///
+///
/// <glm/gtx/matrix_transform_2d.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +18,7 @@
#include "../vec2.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")
#endif
diff --git a/glm/gtx/matrix_transform_2d.inl b/glm/gtx/matrix_transform_2d.inl
index 976c42a..dc542a8 100644
--- a/glm/gtx/matrix_transform_2d.inl
+++ b/glm/gtx/matrix_transform_2d.inl
@@ -1,34 +1,6 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_matrix_transform_2d
/// @file glm/gtc/matrix_transform_2d.inl
-/// @date 2014-02-20
/// @author Miguel Ángel Pérez Martínez
-///////////////////////////////////////////////////////////////////////////////////
#include "../trigonometric.hpp"
diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp
index 21bdeba..26e24f5 100644
--- a/glm/gtx/mixed_product.hpp
+++ b/glm/gtx/mixed_product.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_mixed_product
/// @file glm/gtx/mixed_product.hpp
-/// @date 2007-04-03 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_mixed_product GLM_GTX_mixed_producte
/// @ingroup gtx
-///
+///
/// @brief Mixed product of 3 vectors.
-///
+///
/// <glm/gtx/mixed_product.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_mixed_product extension included")
#endif
diff --git a/glm/gtx/mixed_product.inl b/glm/gtx/mixed_product.inl
index 6305793..ec33ee4 100644
--- a/glm/gtx/mixed_product.inl
+++ b/glm/gtx/mixed_product.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_mixed_product
/// @file glm/gtx/mixed_product.inl
-/// @date 2007-04-03 / 2008-09-17
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp
index 39f55d7..e48ad39 100644
--- a/glm/gtx/norm.hpp
+++ b/glm/gtx/norm.hpp
@@ -1,52 +1,23 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_norm
/// @file glm/gtx/norm.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_quaternion (dependence)
///
/// @defgroup gtx_norm GLM_GTX_norm
/// @ingroup gtx
-///
+///
/// @brief Various ways to compute vector norms.
///
/// <glm/gtx/norm.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
-#include "../glm.hpp"
+#include "../detail/func_geometric.hpp"
#include "../gtx/quaternion.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_norm extension included")
#endif
diff --git a/glm/gtx/norm.inl b/glm/gtx/norm.inl
index 620e7e3..ebd3ca5 100644
--- a/glm/gtx/norm.inl
+++ b/glm/gtx/norm.inl
@@ -1,39 +1,12 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_norm
/// @file glm/gtx/norm.inl
-/// @date 2005-12-21 / 2008-07-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
+
+#include "../detail/precision.hpp"
namespace glm{
namespace detail
{
- template <template <typename, precision> class vecType, typename T, precision P>
+ template <template <typename, precision> class vecType, typename T, precision P, bool Aligned>
struct compute_length2
{
GLM_FUNC_QUALIFIER static T call(vecType<T, P> const & v)
@@ -54,7 +27,7 @@ namespace detail
GLM_FUNC_QUALIFIER T length2(vecType<T, P> const & v)
{
GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559, "'length2' accepts only floating-point inputs");
- return detail::compute_length2<vecType, T, P>::call(v);
+ return detail::compute_length2<vecType, T, P, detail::is_aligned<P>::value>::call(v);
}
template <typename T>
diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp
index cdaf126..95de01f 100644
--- a/glm/gtx/normal.hpp
+++ b/glm/gtx/normal.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_normal
/// @file glm/gtx/normal.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_normal GLM_GTX_normal
/// @ingroup gtx
-///
+///
/// @brief Compute the normal of a triangle.
-///
+///
/// <glm/gtx/normal.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_normal extension included")
#endif
diff --git a/glm/gtx/normal.inl b/glm/gtx/normal.inl
index e20a1c8..2dfca2d 100644
--- a/glm/gtx/normal.inl
+++ b/glm/gtx/normal.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_normal
/// @file glm/gtx/normal.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp
index 7d8aa2a..d2cfdbf 100644
--- a/glm/gtx/normalize_dot.hpp
+++ b/glm/gtx/normalize_dot.hpp
@@ -1,51 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_normalize_dot
/// @file glm/gtx/normalize_dot.hpp
-/// @date 2007-09-28 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_fast_square_root (dependence)
///
/// @defgroup gtx_normalize_dot GLM_GTX_normalize_dot
/// @ingroup gtx
-///
+///
/// @brief Dot product of vectors that need to be normalize with a single square root.
-///
+///
/// <glm/gtx/normalized_dot.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../gtx/fast_square_root.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_normalize_dot extension included")
#endif
diff --git a/glm/gtx/normalize_dot.inl b/glm/gtx/normalize_dot.inl
index 6db462a..24213b0 100644
--- a/glm/gtx/normalize_dot.inl
+++ b/glm/gtx/normalize_dot.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_normalize_dot
/// @file glm/gtx/normalize_dot.inl
-/// @date 2007-09-28 / 2008-10-07
-/// @author Christophe Riccio
-//////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp
index a438e9f..568b5f0 100644
--- a/glm/gtx/number_precision.hpp
+++ b/glm/gtx/number_precision.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_number_precision
/// @file glm/gtx/number_precision.hpp
-/// @date 2007-05-10 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_type_precision (dependence)
@@ -35,11 +7,10 @@
///
/// @defgroup gtx_number_precision GLM_GTX_number_precision
/// @ingroup gtx
-///
+///
/// @brief Defined size types.
-///
+///
/// <glm/gtx/number_precision.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../glm.hpp"
#include "../gtc/type_precision.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_number_precision extension included")
#endif
diff --git a/glm/gtx/number_precision.inl b/glm/gtx/number_precision.inl
index 7cc8914..155d56c 100644
--- a/glm/gtx/number_precision.inl
+++ b/glm/gtx/number_precision.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_number_precision
/// @file glm/gtx/number_precision.inl
-/// @date 2007-05-10 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp
index 9a24f89..5da8437 100644
--- a/glm/gtx/optimum_pow.hpp
+++ b/glm/gtx/optimum_pow.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_optimum_pow
/// @file glm/gtx/optimum_pow.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow
/// @ingroup gtx
-///
+///
/// @brief Integer exponentiation of power functions.
-///
+///
/// <glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_optimum_pow extension included")
#endif
diff --git a/glm/gtx/optimum_pow.inl b/glm/gtx/optimum_pow.inl
index 3c0d2e4..ce95485 100644
--- a/glm/gtx/optimum_pow.inl
+++ b/glm/gtx/optimum_pow.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_optimum_pow
/// @file glm/gtx/optimum_pow.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp
index ce80c96..10d3057 100644
--- a/glm/gtx/orthonormalize.hpp
+++ b/glm/gtx/orthonormalize.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_orthonormalize
/// @file glm/gtx/orthonormalize.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize
/// @ingroup gtx
-///
+///
/// @brief Orthonormalize matrices.
-///
+///
/// <glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -47,7 +18,7 @@
#include "../mat3x3.hpp"
#include "../geometric.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_orthonormalize extension included")
#endif
diff --git a/glm/gtx/orthonormalize.inl b/glm/gtx/orthonormalize.inl
index 461f84b..c44193f 100644
--- a/glm/gtx/orthonormalize.inl
+++ b/glm/gtx/orthonormalize.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_orthonormalize
/// @file glm/gtx/orthonormalize.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp
index d65f194..5f66fec 100644
--- a/glm/gtx/perpendicular.hpp
+++ b/glm/gtx/perpendicular.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_perpendicular
/// @file glm/gtx/perpendicular.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_projection (dependence)
///
/// @defgroup gtx_perpendicular GLM_GTX_perpendicular
/// @ingroup gtx
-///
+///
/// @brief Perpendicular of a vector from other one
-///
+///
/// <glm/gtx/perpendicular.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +17,7 @@
#include "../glm.hpp"
#include "../gtx/projection.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_perpendicular extension included")
#endif
diff --git a/glm/gtx/perpendicular.inl b/glm/gtx/perpendicular.inl
index 22bbb23..db4bc10 100644
--- a/glm/gtx/perpendicular.inl
+++ b/glm/gtx/perpendicular.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_perpendicular
/// @file glm/gtx/perpendicular.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp
index 9076b21..c3eb5d1 100644
--- a/glm/gtx/polar_coordinates.hpp
+++ b/glm/gtx/polar_coordinates.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_polar_coordinates
/// @file glm/gtx/polar_coordinates.hpp
-/// @date 2007-03-06 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates
/// @ingroup gtx
-///
+///
/// @brief Conversion from Euclidean space to polar space and revert.
-///
+///
/// <glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_polar_coordinates extension included")
#endif
diff --git a/glm/gtx/polar_coordinates.inl b/glm/gtx/polar_coordinates.inl
index 4de58e3..8750012 100644
--- a/glm/gtx/polar_coordinates.inl
+++ b/glm/gtx/polar_coordinates.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_polar_coordinates
/// @file glm/gtx/polar_coordinates.inl
-/// @date 2007-03-06 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
@@ -43,7 +14,7 @@ namespace glm
T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z));
return tvec3<T, P>(
- atan(xz_dist, tmp.y), // latitude
+ asin(tmp.y), // latitude
atan(tmp.x, tmp.z), // longitude
xz_dist); // xz distance
}
diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp
index 4e8fc75..9277acc 100644
--- a/glm/gtx/projection.hpp
+++ b/glm/gtx/projection.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_projection
/// @file glm/gtx/projection.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_projection GLM_GTX_projection
/// @ingroup gtx
-///
+///
/// @brief Projection of a vector to other one
-///
+///
/// <glm/gtx/projection.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../geometric.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_projection extension included")
#endif
diff --git a/glm/gtx/projection.inl b/glm/gtx/projection.inl
index ce742a8..5d63b98 100644
--- a/glm/gtx/projection.inl
+++ b/glm/gtx/projection.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_projection
/// @file glm/gtx/projection.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp
index 96495d1..713aa1d 100644
--- a/glm/gtx/quaternion.hpp
+++ b/glm/gtx/quaternion.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_quaternion
/// @file glm/gtx/quaternion.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_quaternion GLM_GTX_quaternion
/// @ingroup gtx
-///
+///
/// @brief Extented quaternion types and functions
-///
+///
/// <glm/gtx/quaternion.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,7 +19,7 @@
#include "../gtc/quaternion.hpp"
#include "../gtx/norm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_quaternion extension included")
#endif
@@ -57,7 +28,7 @@ namespace glm
/// @addtogroup gtx_quaternion
/// @{
- //! Compute a cross product between a quaternion and a vector.
+ /// Compute a cross product between a quaternion and a vector.
///
/// @see gtx_quaternion
template<typename T, precision P>
diff --git a/glm/gtx/quaternion.inl b/glm/gtx/quaternion.inl
index f3b9e73..d314bd4 100644
--- a/glm/gtx/quaternion.inl
+++ b/glm/gtx/quaternion.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_quaternion
/// @file glm/gtx/quaternion.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <limits>
#include "../gtc/constants.hpp"
@@ -36,21 +7,13 @@
namespace glm
{
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> cross
- (
- tvec3<T, P> const & v,
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER tvec3<T, P> cross(tvec3<T, P> const& v, tquat<T, P> const& q)
{
return inverse(q) * v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> cross
- (
- tquat<T, P> const & q,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tvec3<T, P> cross(tquat<T, P> const& q, tvec3<T, P> const& v)
{
return q * v;
}
@@ -80,25 +43,19 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> exp
- (
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER tquat<T, P> exp(tquat<T, P> const& q)
{
tvec3<T, P> u(q.x, q.y, q.z);
- T Angle = glm::length(u);
+ T const Angle = glm::length(u);
if (Angle < epsilon<T>())
return tquat<T, P>();
- tvec3<T, P> v(u / Angle);
+ tvec3<T, P> const v(u / Angle);
return tquat<T, P>(cos(Angle), sin(Angle) * v);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> log
- (
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER tquat<T, P> log(tquat<T, P> const& q)
{
tvec3<T, P> u(q.x, q.y, q.z);
T Vec3Len = length(u);
@@ -139,36 +96,25 @@ namespace glm
T Angle = acos(x.w / magnitude);
T NewAngle = Angle * y;
T Div = sin(NewAngle) / sin(Angle);
- T Mag = pow(magnitude, y-1);
+ T Mag = pow(magnitude, y - static_cast<T>(1));
return tquat<T, P>(cos(NewAngle) * magnitude * Mag, x.x * Div * Mag, x.y * Div * Mag, x.z * Div * Mag);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> rotate
- (
- tquat<T, P> const & q,
- tvec3<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tvec3<T, P> rotate(tquat<T, P> const& q, tvec3<T, P> const& v)
{
return q * v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> rotate
- (
- tquat<T, P> const & q,
- tvec4<T, P> const & v
- )
+ GLM_FUNC_QUALIFIER tvec4<T, P> rotate(tquat<T, P> const& q, tvec4<T, P> const& v)
{
return q * v;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER T extractRealComponent
- (
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER T extractRealComponent(tquat<T, P> const& q)
{
T w = static_cast<T>(1) - q.x * q.x - q.y * q.y - q.z * q.z;
if(w < T(0))
@@ -178,21 +124,13 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER T length2
- (
- tquat<T, P> const & q
- )
+ GLM_FUNC_QUALIFIER T length2(tquat<T, P> const& q)
{
return q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> shortMix
- (
- tquat<T, P> const & x,
- tquat<T, P> const & y,
- T const & a
- )
+ GLM_FUNC_QUALIFIER tquat<T, P> shortMix(tquat<T, P> const& x, tquat<T, P> const& y, T const& a)
{
if(a <= static_cast<T>(0)) return x;
if(a >= static_cast<T>(1)) return y;
@@ -229,22 +167,13 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> fastMix
- (
- tquat<T, P> const & x,
- tquat<T, P> const & y,
- T const & a
- )
+ GLM_FUNC_QUALIFIER tquat<T, P> fastMix(tquat<T, P> const& x, tquat<T, P> const& y, T const & a)
{
return glm::normalize(x * (static_cast<T>(1) - a) + (y * a));
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tquat<T, P> rotation
- (
- tvec3<T, P> const & orig,
- tvec3<T, P> const & dest
- )
+ GLM_FUNC_QUALIFIER tquat<T, P> rotation(tvec3<T, P> const& orig, tvec3<T, P> const& dest)
{
T cosTheta = dot(orig, dest);
tvec3<T, P> rotationAxis;
diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp
index 9cf82ad..4c65d4f 100644
--- a/glm/gtx/range.hpp
+++ b/glm/gtx/range.hpp
@@ -1,32 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_range
/// @file glm/gtx/range.hpp
-/// @date 2014-09-19 / 2014-09-19
/// @author Joshua Moerman
///
/// @defgroup gtx_range GLM_GTX_range
@@ -36,7 +9,6 @@
/// The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).
///
/// <glm/gtx/range.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,54 +20,65 @@
#endif
#include "../gtc/type_ptr.hpp"
+#include "../gtc/vec1.hpp"
-namespace glm{
-namespace detail
+namespace glm
{
- /* The glm types provide a .length() member, but for matrices
- this only defines the number of columns, so we need to work around this */
+ /// @addtogroup gtx_range
+ /// @{
+
template <typename T, precision P>
- detail::component_count_t number_of_elements_(tvec2<T, P> const & v){
- return detail::component_count(v);
+ inline length_t components(tvec1<T, P> const & v)
+ {
+ return v.length();
}
-
+
template <typename T, precision P>
- detail::component_count_t number_of_elements_(tvec3<T, P> const & v){
- return detail::component_count(v);
+ inline length_t components(tvec2<T, P> const & v)
+ {
+ return v.length();
}
-
+
template <typename T, precision P>
- detail::component_count_t number_of_elements_(tvec4<T, P> const & v){
- return detail::component_count(v);
+ inline length_t components(tvec3<T, P> const & v)
+ {
+ return v.length();
}
-
+
+ template <typename T, precision P>
+ inline length_t components(tvec4<T, P> const & v)
+ {
+ return v.length();
+ }
+
template <typename genType>
- detail::component_count_t number_of_elements_(genType const & m){
- return detail::component_count(m) * detail::component_count(m[0]);
+ inline length_t components(genType const & m)
+ {
+ return m.length() * m[0].length();
}
-}//namespace
-
- /// @addtogroup gtx_range
- /// @{
-
+
template <typename genType>
- const typename genType::value_type * begin(genType const & v){
+ inline typename genType::value_type const * begin(genType const & v)
+ {
return value_ptr(v);
}
template <typename genType>
- const typename genType::value_type * end(genType const & v){
- return begin(v) + detail::number_of_elements_(v);
+ inline typename genType::value_type const * end(genType const & v)
+ {
+ return begin(v) + components(v);
}
template <typename genType>
- typename genType::value_type * begin(genType& v){
+ inline typename genType::value_type * begin(genType& v)
+ {
return value_ptr(v);
}
template <typename genType>
- typename genType::value_type * end(genType& v){
- return begin(v) + detail::number_of_elements_(v);
+ inline typename genType::value_type * end(genType& v)
+ {
+ return begin(v) + components(v);
}
/// @}
diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp
index 7a38b05..0709c1a 100644
--- a/glm/gtx/raw_data.hpp
+++ b/glm/gtx/raw_data.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_raw_data
/// @file glm/gtx/raw_data.hpp
-/// @date 2008-11-19 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_raw_data GLM_GTX_raw_data
/// @ingroup gtx
-///
+///
/// @brief Projection of a vector to other one
-///
+///
/// <glm/gtx/raw_data.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +16,7 @@
#include "../detail/setup.hpp"
#include "../detail/type_int.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_raw_data extension included")
#endif
diff --git a/glm/gtx/raw_data.inl b/glm/gtx/raw_data.inl
index 5e7e9e3..f5eeddc 100644
--- a/glm/gtx/raw_data.inl
+++ b/glm/gtx/raw_data.inl
@@ -1,31 +1,2 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_raw_data
/// @file glm/gtx/raw_data.inl
-/// @date 2008-11-19 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp
index 9d2a3df..46a3d2b 100644
--- a/glm/gtx/rotate_normalized_axis.hpp
+++ b/glm/gtx/rotate_normalized_axis.hpp
@@ -1,45 +1,16 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_rotate_normalized_axis
/// @file glm/gtx/rotate_normalized_axis.hpp
-/// @date 2012-12-13 / 2012-12-13
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_matrix_transform
/// @see gtc_quaternion
-///
+///
/// @defgroup gtx_rotate_normalized_axis GLM_GTX_rotate_normalized_axis
/// @ingroup gtx
-///
+///
/// @brief Quaternions and matrices rotations around normalized axis.
-///
+///
/// <glm/gtx/rotate_normalized_axis.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,7 +19,7 @@
#include "../gtc/epsilon.hpp"
#include "../gtc/quaternion.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
#endif
diff --git a/glm/gtx/rotate_normalized_axis.inl b/glm/gtx/rotate_normalized_axis.inl
index 54f95a4..88aec8c 100644
--- a/glm/gtx/rotate_normalized_axis.inl
+++ b/glm/gtx/rotate_normalized_axis.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_rotate_normalized_axis
/// @file glm/gtx/rotate_normalized_axis.inl
-/// @date 2012-12-13 / 2012-12-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp
index 8f44c45..fbdf896 100644
--- a/glm/gtx/rotate_vector.hpp
+++ b/glm/gtx/rotate_vector.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_rotate_vector
/// @file glm/gtx/rotate_vector.hpp
-/// @date 2006-11-02 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_transform (dependence)
///
/// @defgroup gtx_rotate_vector GLM_GTX_rotate_vector
/// @ingroup gtx
-///
+///
/// @brief Function to directly rotate a vector
-///
+///
/// <glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +17,7 @@
#include "../glm.hpp"
#include "../gtx/transform.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_rotate_vector extension included")
#endif
diff --git a/glm/gtx/rotate_vector.inl b/glm/gtx/rotate_vector.inl
index dc1d07c..5a42907 100644
--- a/glm/gtx/rotate_vector.inl
+++ b/glm/gtx/rotate_vector.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_rotate_vector
/// @file glm/gtx/rotate_vector.inl
-/// @date 2006-11-02 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp
index 0143201..b45e4a0 100644
--- a/glm/gtx/scalar_multiplication.hpp
+++ b/glm/gtx/scalar_multiplication.hpp
@@ -1,32 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx
/// @file glm/gtx/scalar_multiplication.hpp
-/// @date 2014-09-22 / 2014-09-22
/// @author Joshua Moerman
///
/// @brief Enables scalar multiplication for all types
@@ -36,8 +9,6 @@
/// int * vec4
/// vec4 / int
/// So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic)
-///
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp
index e131aaa..fefd105 100644
--- a/glm/gtx/scalar_relational.hpp
+++ b/glm/gtx/scalar_relational.hpp
@@ -1,50 +1,21 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_scalar_relational
/// @file glm/gtx/scalar_relational.hpp
-/// @date 2013-02-04 / 2013-02-04
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational
/// @ingroup gtx
-///
+///
/// @brief Extend a position from a source to a position at a defined length.
-///
+///
/// <glm/gtx/scalar_relational.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_extend extension included")
#endif
diff --git a/glm/gtx/scalar_relational.inl b/glm/gtx/scalar_relational.inl
index 137edd2..92a2ac3 100644
--- a/glm/gtx/scalar_relational.inl
+++ b/glm/gtx/scalar_relational.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_scalar_relational
/// @file glm/gtx/scalar_relational.inl
-/// @date 2013-02-04 / 2013-02-04
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/simd_mat4.hpp b/glm/gtx/simd_mat4.hpp
index 3cc9523..2f5dc84 100644
--- a/glm/gtx/simd_mat4.hpp
+++ b/glm/gtx/simd_mat4.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_simd_mat4
/// @file glm/gtx/simd_mat4.hpp
-/// @date 2009-05-07 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -37,7 +9,6 @@
/// @brief SIMD implementation of mat4 type.
///
/// <glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,15 +17,16 @@
#if(GLM_ARCH != GLM_ARCH_PURE)
-#if(GLM_ARCH & GLM_ARCH_SSE2)
+#if(GLM_ARCH & GLM_ARCH_SSE2_BIT)
# include "../detail/intrinsic_matrix.hpp"
# include "../gtx/simd_vec4.hpp"
#else
# error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
#endif
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_simd_mat4 extension included")
+# pragma message("GLM: GLM_GTX_simd_mat4 extension is deprecated and will be removed in GLM 0.9.9. Use mat4 instead and use compiler SIMD arguments.")
#endif
namespace glm{
@@ -76,13 +48,6 @@ namespace detail
typedef tvec4<float, defaultp> pure_col_type;
typedef tmat4x4<float, defaultp> pure_transpose_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR length_t cols = 4;
- static GLM_RELAXED_CONSTEXPR length_t rows = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = defaultp;
-# endif//GLM_META_PROG_HELPERS
-
GLM_FUNC_DECL length_t length() const;
fvec4SIMD Data[4];
diff --git a/glm/gtx/simd_mat4.inl b/glm/gtx/simd_mat4.inl
index d45b769..260cb08 100644
--- a/glm/gtx/simd_mat4.inl
+++ b/glm/gtx/simd_mat4.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_simd_mat4
/// @file glm/gtx/simd_mat4.inl
-/// @date 2009-05-07 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail{
@@ -592,14 +563,14 @@ GLM_FUNC_QUALIFIER detail::fmat4x4SIMD outerProduct
GLM_FUNC_QUALIFIER detail::fmat4x4SIMD transpose(detail::fmat4x4SIMD const & m)
{
detail::fmat4x4SIMD result;
- detail::sse_transpose_ps(&m[0].Data, &result[0].Data);
+ glm_mat4_transpose(&m[0].Data, &result[0].Data);
return result;
}
GLM_FUNC_QUALIFIER float determinant(detail::fmat4x4SIMD const & m)
{
float Result;
- _mm_store_ss(&Result, detail::sse_det_ps(&m[0].Data));
+ _mm_store_ss(&Result, glm_mat4_determinant(&m[0].Data));
return Result;
}
diff --git a/glm/gtx/simd_quat.hpp b/glm/gtx/simd_quat.hpp
index d849f5d..9e18ee5 100644
--- a/glm/gtx/simd_quat.hpp
+++ b/glm/gtx/simd_quat.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_simd_quat
/// @file glm/gtx/simd_quat.hpp
-/// @date 2013-04-22 / 2014-11-25
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -37,7 +9,6 @@
/// @brief SIMD implementation of quat type.
///
/// <glm/gtx/simd_quat.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,16 +17,17 @@
#include "../gtc/quaternion.hpp"
#include "../gtx/fast_trigonometry.hpp"
-#if(GLM_ARCH != GLM_ARCH_PURE)
+#if GLM_ARCH != GLM_ARCH_PURE
-#if(GLM_ARCH & GLM_ARCH_SSE2)
-# include "../gtx/simd_mat4.hpp"
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+# include "../gtx/simd_mat4.hpp"
#else
# error "GLM: GLM_GTX_simd_quat requires compiler support of SSE2 through intrinsics"
#endif
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_simd_quat extension included")
+# pragma message("GLM: GLM_GTX_simd_quat extension is deprecated and will be removed in GLM 0.9.9. Use GLM_GTC_quaternion instead and use compiler SIMD arguments.")
#endif
// Warning silencer for nameless struct/union.
@@ -76,11 +48,6 @@ namespace detail
typedef tquat<bool, defaultp> bool_type;
typedef tquat<float, defaultp> pure_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = defaultp;
-# endif//GLM_META_PROG_HELPERS
-
#ifdef GLM_SIMD_ENABLE_XYZW_UNION
union
{
diff --git a/glm/gtx/simd_quat.inl b/glm/gtx/simd_quat.inl
index 8bcbee5..d89747e 100644
--- a/glm/gtx/simd_quat.inl
+++ b/glm/gtx/simd_quat.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_simd_quat
/// @file glm/gtx/simd_quat.inl
-/// @date 2013-04-22 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm{
namespace detail{
@@ -51,7 +22,6 @@ void print(const fvec4SIMD &v)
}
#endif
-
//////////////////////////////////////
// Implicit basic constructors
@@ -152,7 +122,7 @@ GLM_FUNC_QUALIFIER fquatSIMD operator* (fquatSIMD const & q1, fquatSIMD const &
__m128 mul2 = _mm_mul_ps(q1.Data, _mm_shuffle_ps(q2.Data, q2.Data, _MM_SHUFFLE(2, 3, 0, 1)));
__m128 mul3 = _mm_mul_ps(q1.Data, q2.Data);
-# if((GLM_ARCH & GLM_ARCH_SSE4))
+# if(GLM_ARCH & GLM_ARCH_SSE41_BIT)
__m128 add0 = _mm_dp_ps(mul0, _mm_set_ps(1.0f, -1.0f, 1.0f, 1.0f), 0xff);
__m128 add1 = _mm_dp_ps(mul1, _mm_set_ps(1.0f, 1.0f, 1.0f, -1.0f), 0xff);
__m128 add2 = _mm_dp_ps(mul2, _mm_set_ps(1.0f, 1.0f, -1.0f, 1.0f), 0xff);
diff --git a/glm/gtx/simd_vec4.hpp b/glm/gtx/simd_vec4.hpp
index 44efe0a..4fce5d8 100644
--- a/glm/gtx/simd_vec4.hpp
+++ b/glm/gtx/simd_vec4.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_simd_vec4
/// @file glm/gtx/simd_vec4.hpp
-/// @date 2009-05-07 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
@@ -37,7 +9,6 @@
/// @brief SIMD implementation of vec4 type.
///
/// <glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +17,7 @@
#if(GLM_ARCH != GLM_ARCH_PURE)
-#if(GLM_ARCH & GLM_ARCH_SSE2)
+#if(GLM_ARCH & GLM_ARCH_SSE2_BIT)
# include "../detail/intrinsic_common.hpp"
# include "../detail/intrinsic_geometric.hpp"
# include "../detail/intrinsic_integer.hpp"
@@ -54,8 +25,9 @@
# error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
#endif
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_simd_vec4 extension included")
+# pragma message("GLM: GLM_GTX_simd_vec4 extension is deprecated and will be removed in GLM 0.9.9. Use *vec4 types instead and use compiler SIMD arguments.")
#endif
@@ -99,11 +71,6 @@ namespace detail
typedef tvec4<float, defaultp> pure_type;
typedef tvec4<bool, highp> bool_type;
-# ifdef GLM_META_PROG_HELPERS
- static GLM_RELAXED_CONSTEXPR length_t components = 4;
- static GLM_RELAXED_CONSTEXPR precision prec = defaultp;
-# endif//GLM_META_PROG_HELPERS
-
#ifdef GLM_SIMD_ENABLE_XYZW_UNION
union
{
@@ -167,15 +134,15 @@ namespace detail
//////////////////////////////////////
// Swizzle operators
- template <comp X, comp Y, comp Z, comp W>
+ template <comp X_, comp Y_, comp Z_, comp W_>
fvec4SIMD& swizzle();
- template <comp X, comp Y, comp Z, comp W>
+ template <comp X_, comp Y_, comp Z_, comp W_>
fvec4SIMD swizzle() const;
- template <comp X, comp Y, comp Z>
+ template <comp X_, comp Y_, comp Z_>
fvec4SIMD swizzle() const;
- template <comp X, comp Y>
+ template <comp X_, comp Y_>
fvec4SIMD swizzle() const;
- template <comp X>
+ template <comp X_>
fvec4SIMD swizzle() const;
};
}//namespace detail
diff --git a/glm/gtx/simd_vec4.inl b/glm/gtx/simd_vec4.inl
index 656cc02..15fb98a 100644
--- a/glm/gtx/simd_vec4.inl
+++ b/glm/gtx/simd_vec4.inl
@@ -1,21 +1,9 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2009-05-07
-// Updated : 2009-05-07
-// Licence : This source is under MIT License
-// File : glm/gtx/simd_vec4.inl
-///////////////////////////////////////////////////////////////////////////////////////////////////
+/// @ref gtx_simd_vec4
+/// @file glm/gtx/simd_vec4.inl
namespace glm{
namespace detail{
-template <int Value>
-struct shuffle_mask
-{
- enum{value = Value};
-};
-
//////////////////////////////////////
// Implicit basic constructors
@@ -167,21 +155,21 @@ GLM_FUNC_QUALIFIER fvec4SIMD& fvec4SIMD::operator--()
//////////////////////////////////////
// Swizzle operators
-template <comp X, comp Y, comp Z, comp W>
+template <comp X_, comp Y_, comp Z_, comp W_>
GLM_FUNC_QUALIFIER fvec4SIMD fvec4SIMD::swizzle() const
{
__m128 Data = _mm_shuffle_ps(
this->Data, this->Data,
- shuffle_mask<(W << 6) | (Z << 4) | (Y << 2) | (X << 0)>::value);
+ shuffle_mask<(W_ << 6) | (Z_ << 4) | (Y_ << 2) | (X_ << 0)>::value);
return fvec4SIMD(Data);
}
-template <comp X, comp Y, comp Z, comp W>
+template <comp X_, comp Y_, comp Z_, comp W_>
GLM_FUNC_QUALIFIER fvec4SIMD& fvec4SIMD::swizzle()
{
this->Data = _mm_shuffle_ps(
this->Data, this->Data,
- shuffle_mask<(W << 6) | (Z << 4) | (Y << 2) | (X << 0)>::value);
+ shuffle_mask<(W_ << 6) | (Z_ << 4) | (Y_ << 2) | (X_ << 0)>::value);
return *this;
}
diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp
index 1abbef4..4111a16 100644
--- a/glm/gtx/spline.hpp
+++ b/glm/gtx/spline.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_spline
/// @file glm/gtx/spline.hpp
-/// @date 2007-01-25 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_spline GLM_GTX_spline
/// @ingroup gtx
-///
+///
/// @brief Spline functions
-///
+///
/// <glm/gtx/spline.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +16,7 @@
#include "../glm.hpp"
#include "../gtx/optimum_pow.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_spline extension included")
#endif
diff --git a/glm/gtx/spline.inl b/glm/gtx/spline.inl
index d368292..91f870d 100644
--- a/glm/gtx/spline.inl
+++ b/glm/gtx/spline.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_spline
/// @file glm/gtx/spline.inl
-/// @date 2007-01-25 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp
index 2dd0c50..b478358 100644
--- a/glm/gtx/std_based_type.hpp
+++ b/glm/gtx/std_based_type.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_std_based_type
/// @file glm/gtx/std_based_type.hpp
-/// @date 2008-06-08 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_extented_min_max (dependence)
///
/// @defgroup gtx_std_based_type GLM_GTX_std_based_type
/// @ingroup gtx
-///
+///
/// @brief Adds vector types based on STL value types.
/// <glm/gtx/std_based_type.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -45,7 +16,7 @@
#include "../glm.hpp"
#include <cstdlib>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_std_based_type extension included")
#endif
diff --git a/glm/gtx/std_based_type.inl b/glm/gtx/std_based_type.inl
index 52817e8..fa8d7a9 100644
--- a/glm/gtx/std_based_type.inl
+++ b/glm/gtx/std_based_type.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_std_based_type
/// @file glm/gtx/std_based_type.inl
-/// @date 2008-06-08 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp
index 2dbb3a5..606982a 100644
--- a/glm/gtx/string_cast.hpp
+++ b/glm/gtx/string_cast.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_string_cast
/// @file glm/gtx/string_cast.hpp
-/// @date 2008-04-26 / 2014-05-10
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_half_float (dependence)
@@ -36,12 +8,11 @@
///
/// @defgroup gtx_string_cast GLM_GTX_string_cast
/// @ingroup gtx
-///
+///
/// @brief Setup strings for GLM type values
-///
+///
/// <glm/gtx/string_cast.hpp> need to be included to use these functionalities.
/// This extension is not supported with CUDA
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -56,7 +27,7 @@
# error "GLM_GTX_string_cast is not supported on CUDA compiler"
#endif
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_string_cast extension included")
#endif
diff --git a/glm/gtx/string_cast.inl b/glm/gtx/string_cast.inl
index 284b9e5..777e176 100644
--- a/glm/gtx/string_cast.inl
+++ b/glm/gtx/string_cast.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_string_cast
/// @file glm/gtx/string_cast.inl
-/// @date 2008-04-26 / 2014-05-10
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <cstdarg>
#include <cstdio>
diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp
index cafd165..9acecb5 100644
--- a/glm/gtx/transform.hpp
+++ b/glm/gtx/transform.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_transform
/// @file glm/gtx/transform.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtc_matrix_transform (dependence)
@@ -38,9 +10,8 @@
/// @ingroup gtx
///
/// @brief Add transformation matrices
-///
+///
/// <glm/gtx/transform.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -48,7 +19,7 @@
#include "../glm.hpp"
#include "../gtc/matrix_transform.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_transform extension included")
#endif
diff --git a/glm/gtx/transform.inl b/glm/gtx/transform.inl
index a4f5110..7ec393d 100644
--- a/glm/gtx/transform.inl
+++ b/glm/gtx/transform.inl
@@ -1,60 +1,24 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_transform
/// @file glm/gtx/transform.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> translate(
- tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> translate(tvec3<T, P> const & v)
{
- return translate(
- tmat4x4<T, P>(1.0f), v);
+ return translate(tmat4x4<T, P>(static_cast<T>(1)), v);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate(
- T angle,
- tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> rotate(T angle, tvec3<T, P> const & v)
{
- return rotate(
- tmat4x4<T, P>(1), angle, v);
+ return rotate(tmat4x4<T, P>(static_cast<T>(1)), angle, v);
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scale(
- tvec3<T, P> const & v)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> scale(tvec3<T, P> const & v)
{
- return scale(
- tmat4x4<T, P>(1.0f), v);
+ return scale(tmat4x4<T, P>(static_cast<T>(1)), v);
}
}//namespace glm
diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp
index 58d7ac2..5ef42a3 100644
--- a/glm/gtx/transform2.hpp
+++ b/glm/gtx/transform2.hpp
@@ -1,44 +1,15 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_transform2
/// @file glm/gtx/transform2.hpp
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_transform (dependence)
///
/// @defgroup gtx_transform2 GLM_GTX_transform2
/// @ingroup gtx
-///
+///
/// @brief Add extra transformation matrices
///
/// <glm/gtx/transform2.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +17,7 @@
#include "../glm.hpp"
#include "../gtx/transform.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_transform2 extension included")
#endif
diff --git a/glm/gtx/transform2.inl b/glm/gtx/transform2.inl
index 4213b13..d7579dc 100644
--- a/glm/gtx/transform2.inl
+++ b/glm/gtx/transform2.inl
@@ -1,41 +1,10 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_transform2
/// @file glm/gtx/transform2.inl
-/// @date 2005-12-21 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX2D(
- const tmat3x3<T, P>& m,
- T s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX2D(tmat3x3<T, P> const& m, T s)
{
tmat3x3<T, P> r(1);
r[0][1] = s;
@@ -43,9 +12,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY2D(
- const tmat3x3<T, P>& m,
- T s)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY2D(tmat3x3<T, P> const& m, T s)
{
tmat3x3<T, P> r(1);
r[1][0] = s;
@@ -53,10 +20,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearX3D(
- const tmat4x4<T, P>& m,
- T s,
- T t)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> shearX3D(tmat4x4<T, P> const& m, T s, T t)
{
tmat4x4<T, P> r(1);
r[1][0] = s;
@@ -65,10 +29,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearY3D(
- const tmat4x4<T, P>& m,
- T s,
- T t)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> shearY3D(tmat4x4<T, P> const& m, T s, T t)
{
tmat4x4<T, P> r(1);
r[0][1] = s;
@@ -77,10 +38,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> shearZ3D(
- const tmat4x4<T, P>& m,
- T s,
- T t)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> shearZ3D(tmat4x4<T, P> const& m, T s, T t)
{
tmat4x4<T, P> r(1);
r[0][2] = s;
@@ -89,35 +47,31 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat3x3<T, P> reflect2D(
- const tmat3x3<T, P>& m,
- const tvec3<T, P>& normal)
+ GLM_FUNC_QUALIFIER tmat3x3<T, P> reflect2D(tmat3x3<T, P> const& m, tvec3<T, P> const& normal)
{
- tmat3x3<T, P> r(1);
- r[0][0] = 1 - 2 * normal.x * normal.x;
- r[0][1] = -2 * normal.x * normal.y;
- r[1][0] = -2 * normal.x * normal.y;
- r[1][1] = 1 - 2 * normal.y * normal.y;
+ tmat3x3<T, P> r(static_cast<T>(1));
+ r[0][0] = static_cast<T>(1) - static_cast<T>(2) * normal.x * normal.x;
+ r[0][1] = -static_cast<T>(2) * normal.x * normal.y;
+ r[1][0] = -static_cast<T>(2) * normal.x * normal.y;
+ r[1][1] = static_cast<T>(1) - static_cast<T>(2) * normal.y * normal.y;
return m * r;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> reflect3D(
- const tmat4x4<T, P>& m,
- const tvec3<T, P>& normal)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> reflect3D(tmat4x4<T, P> const& m, tvec3<T, P> const& normal)
{
- tmat4x4<T, P> r(1);
- r[0][0] = 1 - 2 * normal.x * normal.x;
- r[0][1] = -2 * normal.x * normal.y;
- r[0][2] = -2 * normal.x * normal.z;
+ tmat4x4<T, P> r(static_cast<T>(1));
+ r[0][0] = static_cast<T>(1) - static_cast<T>(2) * normal.x * normal.x;
+ r[0][1] = -static_cast<T>(2) * normal.x * normal.y;
+ r[0][2] = -static_cast<T>(2) * normal.x * normal.z;
- r[1][0] = -2 * normal.x * normal.y;
- r[1][1] = 1 - 2 * normal.y * normal.y;
- r[1][2] = -2 * normal.y * normal.z;
+ r[1][0] = -static_cast<T>(2) * normal.x * normal.y;
+ r[1][1] = static_cast<T>(1) - static_cast<T>(2) * normal.y * normal.y;
+ r[1][2] = -static_cast<T>(2) * normal.y * normal.z;
- r[2][0] = -2 * normal.x * normal.z;
- r[2][1] = -2 * normal.y * normal.z;
- r[2][2] = 1 - 2 * normal.z * normal.z;
+ r[2][0] = -static_cast<T>(2) * normal.x * normal.z;
+ r[2][1] = -static_cast<T>(2) * normal.y * normal.z;
+ r[2][2] = static_cast<T>(1) - static_cast<T>(2) * normal.z * normal.z;
return m * r;
}
@@ -126,11 +80,11 @@ namespace glm
const tmat3x3<T, P>& m,
const tvec3<T, P>& normal)
{
- tmat3x3<T, P> r(1);
- r[0][0] = 1 - normal.x * normal.x;
+ tmat3x3<T, P> r(static_cast<T>(1));
+ r[0][0] = static_cast<T>(1) - normal.x * normal.x;
r[0][1] = - normal.x * normal.y;
r[1][0] = - normal.x * normal.y;
- r[1][1] = 1 - normal.y * normal.y;
+ r[1][1] = static_cast<T>(1) - normal.y * normal.y;
return m * r;
}
@@ -139,26 +93,24 @@ namespace glm
const tmat4x4<T, P>& m,
const tvec3<T, P>& normal)
{
- tmat4x4<T, P> r(1);
- r[0][0] = 1 - normal.x * normal.x;
+ tmat4x4<T, P> r(static_cast<T>(1));
+ r[0][0] = static_cast<T>(1) - normal.x * normal.x;
r[0][1] = - normal.x * normal.y;
r[0][2] = - normal.x * normal.z;
r[1][0] = - normal.x * normal.y;
- r[1][1] = 1 - normal.y * normal.y;
+ r[1][1] = static_cast<T>(1) - normal.y * normal.y;
r[1][2] = - normal.y * normal.z;
r[2][0] = - normal.x * normal.z;
r[2][1] = - normal.y * normal.z;
- r[2][2] = 1 - normal.z * normal.z;
+ r[2][2] = static_cast<T>(1) - normal.z * normal.z;
return m * r;
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(
- T scale,
- T bias)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(T scale, T bias)
{
tmat4x4<T, P> result;
- result[3] = tvec4<T, P>(tvec3<T, P>(bias), T(1));
+ result[3] = tvec4<T, P>(tvec3<T, P>(bias), static_cast<T>(1));
result[0][0] = scale;
result[1][1] = scale;
result[2][2] = scale;
@@ -166,10 +118,7 @@ namespace glm
}
template <typename T, precision P>
- GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(
- const tmat4x4<T, P>& m,
- T scale,
- T bias)
+ GLM_FUNC_QUALIFIER tmat4x4<T, P> scaleBias(tmat4x4<T, P> const& m, T scale, T bias)
{
return m * scaleBias(scale, bias);
}
diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp
index 9374a69..b376f38 100644
--- a/glm/gtx/type_aligned.hpp
+++ b/glm/gtx/type_aligned.hpp
@@ -1,53 +1,24 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_type_aligned
/// @file glm/gtx/type_aligned.hpp
-/// @date 2014-11-23 / 2014-12-23
-/// @author Christophe Riccio
-///
+///
/// @see core (dependence)
/// @see gtc_quaternion (dependence)
-///
+///
/// @defgroup gtx_type_aligned GLM_GTX_type_aligned
/// @ingroup gtx
-///
+///
/// @brief Defines aligned types.
-///
+///
/// @ref core_precision defines aligned types.
-///
+///
/// <glm/gtx/type_aligned.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../gtc/type_precision.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_type_aligned extension included")
#endif
diff --git a/glm/gtx/type_aligned.inl b/glm/gtx/type_aligned.inl
index fe6544c..5e61957 100644
--- a/glm/gtx/type_aligned.inl
+++ b/glm/gtx/type_aligned.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtc_type_aligned
/// @file glm/gtc/type_aligned.inl
-/// @date 2014-11-23 / 2014-11-23
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp
new file mode 100644
index 0000000..3b35963
--- /dev/null
+++ b/glm/gtx/type_trait.hpp
@@ -0,0 +1,252 @@
+/// @ref gtx_type_trait
+/// @file glm/gtx/type_trait.hpp
+///
+/// @see core (dependence)
+///
+/// @defgroup gtx_type_trait GLM_GTX_type_trait
+/// @ingroup gtx
+///
+/// @brief Defines traits for each type.
+///
+/// <glm/gtx/type_trait.hpp> need to be included to use these functionalities.
+
+#pragma once
+
+// Dependency:
+#include "../detail/type_vec2.hpp"
+#include "../detail/type_vec3.hpp"
+#include "../detail/type_vec4.hpp"
+#include "../detail/type_mat2x2.hpp"
+#include "../detail/type_mat2x3.hpp"
+#include "../detail/type_mat2x4.hpp"
+#include "../detail/type_mat3x2.hpp"
+#include "../detail/type_mat3x3.hpp"
+#include "../detail/type_mat3x4.hpp"
+#include "../detail/type_mat4x2.hpp"
+#include "../detail/type_mat4x3.hpp"
+#include "../detail/type_mat4x4.hpp"
+#include "../gtc/quaternion.hpp"
+#include "../gtx/dual_quaternion.hpp"
+
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
+# pragma message("GLM: GLM_GTX_type_trait extension included")
+#endif
+
+namespace glm
+{
+ /// @addtogroup gtx_type_trait
+ /// @{
+
+ template <template <typename, precision> class genType, typename T, precision P>
+ struct type
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = false;
+ static bool const is_quat = false;
+ static length_t const components = 0;
+ static length_t const cols = 0;
+ static length_t const rows = 0;
+ };
+
+ template <typename T, precision P>
+ struct type<tvec1, T, P>
+ {
+ static bool const is_vec = true;
+ static bool const is_mat = false;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 1
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tvec2, T, P>
+ {
+ static bool const is_vec = true;
+ static bool const is_mat = false;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 2
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tvec3, T, P>
+ {
+ static bool const is_vec = true;
+ static bool const is_mat = false;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 3
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tvec4, T, P>
+ {
+ static bool const is_vec = true;
+ static bool const is_mat = false;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 4
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat2x2, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 2,
+ cols = 2,
+ rows = 2
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat2x3, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 2,
+ cols = 2,
+ rows = 3
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat2x4, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 2,
+ cols = 2,
+ rows = 4
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat3x2, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 3,
+ cols = 3,
+ rows = 2
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat3x3, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 3,
+ cols = 3,
+ rows = 3
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat3x4, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 3,
+ cols = 3,
+ rows = 4
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat4x2, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 4,
+ cols = 4,
+ rows = 2
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat4x3, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 4,
+ cols = 4,
+ rows = 3
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tmat4x4, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = true;
+ static bool const is_quat = false;
+ enum
+ {
+ components = 4,
+ cols = 4,
+ rows = 4
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tquat, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = false;
+ static bool const is_quat = true;
+ enum
+ {
+ components = 4
+ };
+ };
+
+ template <typename T, precision P>
+ struct type<tdualquat, T, P>
+ {
+ static bool const is_vec = false;
+ static bool const is_mat = false;
+ static bool const is_quat = true;
+ enum
+ {
+ components = 8
+ };
+ };
+
+ /// @}
+}//namespace glm
+
+#include "type_trait.inl"
diff --git a/glm/gtx/type_trait.inl b/glm/gtx/type_trait.inl
new file mode 100644
index 0000000..e69de29
diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp
index e4be3e1..66492a0 100644
--- a/glm/gtx/vector_angle.hpp
+++ b/glm/gtx/vector_angle.hpp
@@ -1,33 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_vector_angle
/// @file glm/gtx/vector_angle.hpp
-/// @date 2005-12-30 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
/// @see gtx_quaternion (dependence)
@@ -35,11 +7,10 @@
///
/// @defgroup gtx_vector_angle GLM_GTX_vector_angle
/// @ingroup gtx
-///
+///
/// @brief Compute angle between vectors
-///
+///
/// <glm/gtx/vector_angle.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -49,7 +20,7 @@
#include "../gtx/quaternion.hpp"
#include "../gtx/rotate_vector.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_vector_angle extension included")
#endif
diff --git a/glm/gtx/vector_angle.inl b/glm/gtx/vector_angle.inl
index dd61b3d..fe85598 100644
--- a/glm/gtx/vector_angle.inl
+++ b/glm/gtx/vector_angle.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_vector_angle
/// @file glm/gtx/vector_angle.inl
-/// @date 2005-12-30 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp
index aef277c..fc6bdb5 100644
--- a/glm/gtx/vector_query.hpp
+++ b/glm/gtx/vector_query.hpp
@@ -1,43 +1,14 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_vector_query
/// @file glm/gtx/vector_query.hpp
-/// @date 2008-03-10 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_vector_query GLM_GTX_vector_query
/// @ingroup gtx
-///
+///
/// @brief Query informations of vector types
///
/// <glm/gtx/vector_query.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
@@ -46,7 +17,7 @@
#include <cfloat>
#include <limits>
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_vector_query extension included")
#endif
diff --git a/glm/gtx/vector_query.inl b/glm/gtx/vector_query.inl
index ad6a407..b74078d 100644
--- a/glm/gtx/vector_query.inl
+++ b/glm/gtx/vector_query.inl
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_vector_query
/// @file glm/gtx/vector_query.inl
-/// @date 2008-03-10 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#include <cassert>
diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp
index 9fb3121..4e87bef 100644
--- a/glm/gtx/wrap.hpp
+++ b/glm/gtx/wrap.hpp
@@ -1,50 +1,22 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_wrap
/// @file glm/gtx/wrap.hpp
-/// @date 2009-11-25 / 2011-06-07
-/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtx_wrap GLM_GTX_wrap
/// @ingroup gtx
-///
+///
/// @brief Wrapping mode of texture coordinates.
-///
+///
/// <glm/gtx/wrap.hpp> need to be included to use these functionalities.
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
// Dependency:
#include "../glm.hpp"
+#include "../gtc/vec1.hpp"
-#if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
# pragma message("GLM: GLM_GTX_wrap extension included")
#endif
@@ -55,23 +27,23 @@ namespace glm
/// Simulate GL_CLAMP OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
- GLM_FUNC_DECL genType clamp(genType const & Texcoord);
+ template <typename genType>
+ GLM_FUNC_DECL genType clamp(genType const& Texcoord);
/// Simulate GL_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
- GLM_FUNC_DECL genType repeat(genType const & Texcoord);
+ template <typename genType>
+ GLM_FUNC_DECL genType repeat(genType const& Texcoord);
/// Simulate GL_MIRRORED_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
- GLM_FUNC_DECL genType mirrorClamp(genType const & Texcoord);
+ template <typename genType>
+ GLM_FUNC_DECL genType mirrorClamp(genType const& Texcoord);
/// Simulate GL_MIRROR_REPEAT OpenGL wrap mode
/// @see gtx_wrap extension.
- template <typename genType>
- GLM_FUNC_DECL genType mirrorRepeat(genType const & Texcoord);
+ template <typename genType>
+ GLM_FUNC_DECL genType mirrorRepeat(genType const& Texcoord);
/// @}
}// namespace glm
diff --git a/glm/gtx/wrap.inl b/glm/gtx/wrap.inl
index a77cf3a..c7a4efb 100644
--- a/glm/gtx/wrap.inl
+++ b/glm/gtx/wrap.inl
@@ -1,178 +1,58 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref gtx_wrap
/// @file glm/gtx/wrap.inl
-/// @date 2009-11-25 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
namespace glm
{
- template <typename genType>
- GLM_FUNC_QUALIFIER genType clamp(genType const & Texcoord)
- {
- return glm::clamp(Texcoord, genType(0), genType(1));
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> clamp(tvec2<T, P> const & Texcoord)
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> clamp(vecType<T, P> const& Texcoord)
{
- tvec2<T, P> Result;
- for(typename tvec2<T, P>::size_type i = 0; i < tvec2<T, P>::value_size(); ++i)
- Result[i] = clamp_to_edge(Texcoord[i]);
- return Result;
+ return glm::clamp(Texcoord, vecType<T, P>(0), vecType<T, P>(1));
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> clamp(tvec3<T, P> const & Texcoord)
+ template <typename genType>
+ GLM_FUNC_QUALIFIER genType clamp(genType const & Texcoord)
{
- tvec3<T, P> Result;
- for(typename tvec3<T, P>::size_type i = 0; i < tvec3<T, P>::value_size(); ++i)
- Result[i] = clamp_to_edge(Texcoord[i]);
- return Result;
+ return clamp(tvec1<genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> clamp(tvec4<T, P> const & Texcoord)
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> repeat(vecType<T, P> const& Texcoord)
{
- tvec4<T, P> Result;
- for(typename tvec4<T, P>::size_type i = 0; i < tvec4<T, P>::value_size(); ++i)
- Result[i] = clamp_to_edge(Texcoord[i]);
- return Result;
+ return glm::fract(Texcoord);
}
template <typename genType>
GLM_FUNC_QUALIFIER genType repeat(genType const & Texcoord)
{
- return glm::fract(Texcoord);
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> repeat(tvec2<T, P> const & Texcoord)
- {
- tvec2<T, P> Result;
- for(typename tvec2<T, P>::size_type i = 0; i < tvec2<T, P>::value_size(); ++i)
- Result[i] = repeat(Texcoord[i]);
- return Result;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> repeat(tvec3<T, P> const & Texcoord)
- {
- tvec3<T, P> Result;
- for(typename tvec3<T, P>::size_type i = 0; i < tvec3<T, P>::value_size(); ++i)
- Result[i] = repeat(Texcoord[i]);
- return Result;
+ return repeat(tvec1<genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> repeat(tvec4<T, P> const & Texcoord)
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> mirrorClamp(vecType<T, P> const& Texcoord)
{
- tvec4<T, P> Result;
- for(typename tvec4<T, P>::size_type i = 0; i < tvec4<T, P>::value_size(); ++i)
- Result[i] = repeat(Texcoord[i]);
- return Result;
+ return glm::fract(glm::abs(Texcoord));
}
template <typename genType>
GLM_FUNC_QUALIFIER genType mirrorClamp(genType const & Texcoord)
{
- return glm::fract(glm::abs(Texcoord));
- //return glm::mod(glm::abs(Texcoord), 1.0f);
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> mirrorClamp(tvec2<T, P> const & Texcoord)
- {
- tvec2<T, P> Result;
- for(typename tvec2<T, P>::size_type i = 0; i < tvec2<T, P>::value_size(); ++i)
- Result[i] = mirrorClamp(Texcoord[i]);
- return Result;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> mirrorClamp(tvec3<T, P> const & Texcoord)
- {
- tvec3<T, P> Result;
- for(typename tvec3<T, P>::size_type i = 0; i < tvec3<T, P>::value_size(); ++i)
- Result[i] = mirrorClamp(Texcoord[i]);
- return Result;
+ return mirrorClamp(tvec1<genType, defaultp>(Texcoord)).x;
}
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> mirrorClamp(tvec4<T, P> const & Texcoord)
+ template <typename T, precision P, template <typename, precision> class vecType>
+ GLM_FUNC_QUALIFIER vecType<T, P> mirrorRepeat(vecType<T, P> const& Texcoord)
{
- tvec4<T, P> Result;
- for(typename tvec4<T, P>::size_type i = 0; i < tvec4<T, P>::value_size(); ++i)
- Result[i] = mirrorClamp(Texcoord[i]);
- return Result;
+ vecType<T, P> const Abs = glm::abs(Texcoord);
+ vecType<T, P> const Clamp = glm::mod(glm::floor(Abs), vecType<T, P>(2));
+ vecType<T, P> const Floor = glm::floor(Abs);
+ vecType<T, P> const Rest = Abs - Floor;
+ vecType<T, P> const Mirror = Clamp + Rest;
+ return mix(Rest, vecType<T, P>(1) - Rest, glm::greaterThanEqual(Mirror, vecType<T, P>(1)));
}
template <typename genType>
- GLM_FUNC_QUALIFIER genType mirrorRepeat(genType const & Texcoord)
- {
- genType const Abs = glm::abs(Texcoord);
- genType const Clamp = genType(int(glm::floor(Abs)) % 2);
- genType const Floor = glm::floor(Abs);
- genType const Rest = Abs - Floor;
- genType const Mirror = Clamp + Rest;
-
- genType Out;
- if(Mirror >= genType(1))
- Out = genType(1) - Rest;
- else
- Out = Rest;
- return Out;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec2<T, P> mirrorRepeat(tvec2<T, P> const & Texcoord)
- {
- tvec2<T, P> Result;
- for(typename tvec2<T, P>::size_type i = 0; i < tvec2<T, P>::value_size(); ++i)
- Result[i] = mirrorRepeat(Texcoord[i]);
- return Result;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec3<T, P> mirrorRepeat(tvec3<T, P> const & Texcoord)
- {
- tvec3<T, P> Result;
- for(typename tvec3<T, P>::size_type i = 0; i < tvec3<T, P>::value_size(); ++i)
- Result[i] = mirrorRepeat(Texcoord[i]);
- return Result;
- }
-
- template <typename T, precision P>
- GLM_FUNC_QUALIFIER tvec4<T, P> mirrorRepeat(tvec4<T, P> const & Texcoord)
+ GLM_FUNC_QUALIFIER genType mirrorRepeat(genType const& Texcoord)
{
- tvec4<T, P> Result;
- for(typename tvec4<T, P>::size_type i = 0; i < tvec4<T, P>::value_size(); ++i)
- Result[i] = mirrorRepeat(Texcoord[i]);
- return Result;
+ return mirrorRepeat(tvec1<genType, defaultp>(Texcoord)).x;
}
}//namespace glm
diff --git a/glm/integer.hpp b/glm/integer.hpp
index 954d4ca..88df0ba 100644
--- a/glm/integer.hpp
+++ b/glm/integer.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/integer.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat2x2.hpp b/glm/mat2x2.hpp
index 926ce77..751856a 100644
--- a/glm/mat2x2.hpp
+++ b/glm/mat2x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat2x2.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat2x3.hpp b/glm/mat2x3.hpp
index 9ab6ff8..91184c2 100644
--- a/glm/mat2x3.hpp
+++ b/glm/mat2x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat2x3.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat2x4.hpp b/glm/mat2x4.hpp
index 09306b3..552950a 100644
--- a/glm/mat2x4.hpp
+++ b/glm/mat2x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat2x4.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat3x2.hpp b/glm/mat3x2.hpp
index b97cb8b..aa76161 100644
--- a/glm/mat3x2.hpp
+++ b/glm/mat3x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat3x2.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat3x3.hpp b/glm/mat3x3.hpp
index a687351..6f3c7d8 100644
--- a/glm/mat3x3.hpp
+++ b/glm/mat3x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat3x3.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat3x4.hpp b/glm/mat3x4.hpp
index d41a619..27d3b6a 100644
--- a/glm/mat3x4.hpp
+++ b/glm/mat3x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat3x4.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat4x2.hpp b/glm/mat4x2.hpp
index 597edf6..5dc635e 100644
--- a/glm/mat4x2.hpp
+++ b/glm/mat4x2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat4x2.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat4x3.hpp b/glm/mat4x3.hpp
index fcd73b5..c8c0ec4 100644
--- a/glm/mat4x3.hpp
+++ b/glm/mat4x3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat4x4.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/mat4x4.hpp b/glm/mat4x4.hpp
index 36195b8..7393f7d 100644
--- a/glm/mat4x4.hpp
+++ b/glm/mat4x4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/mat4x4.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/matrix.hpp b/glm/matrix.hpp
index 5d8e019..280be2f 100644
--- a/glm/matrix.hpp
+++ b/glm/matrix.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/matrix.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/packing.hpp b/glm/packing.hpp
index fbb480a..5d4bce3 100644
--- a/glm/packing.hpp
+++ b/glm/packing.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/packing.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/simd/common.h b/glm/simd/common.h
new file mode 100644
index 0000000..e320b1b
--- /dev/null
+++ b/glm/simd/common.h
@@ -0,0 +1,240 @@
+/// @ref simd
+/// @file glm/simd/common.h
+
+#pragma once
+
+#include "platform.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_add(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_add_ps(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_add(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_add_ss(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sub(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_sub_ps(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sub(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_sub_ss(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_mul(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_mul_ps(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_mul(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_mul_ss(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_div(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_div_ps(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_div(glm_vec4 a, glm_vec4 b)
+{
+ return _mm_div_ss(a, b);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_div_lowp(glm_vec4 a, glm_vec4 b)
+{
+ return glm_vec4_mul(a, _mm_rcp_ps(b));
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_swizzle_xyzw(glm_vec4 a)
+{
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ return _mm_permute_ps(a, _MM_SHUFFLE(3, 2, 1, 0));
+# else
+ return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 2, 1, 0));
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_fma(glm_vec4 a, glm_vec4 b, glm_vec4 c)
+{
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ return _mm_fmadd_ss(a, b, c);
+# else
+ return _mm_add_ss(_mm_mul_ss(a, b), c);
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_fma(glm_vec4 a, glm_vec4 b, glm_vec4 c)
+{
+# if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ return _mm_fmadd_ps(a, b, c);
+# else
+ return glm_vec4_add(glm_vec4_mul(a, b), c);
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_abs(glm_vec4 x)
+{
+ return _mm_and_ps(x, _mm_castsi128_ps(_mm_set1_epi32(0x7FFFFFFF)));
+}
+
+GLM_FUNC_QUALIFIER glm_ivec4 glm_ivec4_abs(glm_ivec4 x)
+{
+# if GLM_ARCH & GLM_ARCH_SSSE3_BIT
+ return _mm_sign_epi32(x, x);
+# else
+ glm_ivec4 const sgn0 = _mm_srai_epi32(x, 31);
+ glm_ivec4 const inv0 = _mm_xor_si128(x, sgn0);
+ glm_ivec4 const sub0 = _mm_sub_epi32(inv0, sgn0);
+ return sub0;
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sign(glm_vec4 x)
+{
+ glm_vec4 const zro0 = _mm_setzero_ps();
+ glm_vec4 const cmp0 = _mm_cmplt_ps(x, zro0);
+ glm_vec4 const cmp1 = _mm_cmpgt_ps(x, zro0);
+ glm_vec4 const and0 = _mm_and_ps(cmp0, _mm_set1_ps(-1.0f));
+ glm_vec4 const and1 = _mm_and_ps(cmp1, _mm_set1_ps(1.0f));
+ glm_vec4 const or0 = _mm_or_ps(and0, and1);;
+ return or0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_round(glm_vec4 x)
+{
+# if GLM_ARCH & GLM_ARCH_SSE41_BIT
+ return _mm_round_ps(x, _MM_FROUND_TO_NEAREST_INT);
+# else
+ glm_vec4 const sgn0 = _mm_castsi128_ps(_mm_set1_epi32(0x80000000));
+ glm_vec4 const and0 = _mm_and_ps(sgn0, x);
+ glm_vec4 const or0 = _mm_or_ps(and0, _mm_set_ps1(8388608.0f));
+ glm_vec4 const add0 = glm_vec4_add(x, or0);
+ glm_vec4 const sub0 = glm_vec4_sub(add0, or0);
+ return sub0;
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_floor(glm_vec4 x)
+{
+# if GLM_ARCH & GLM_ARCH_SSE41_BIT
+ return _mm_floor_ps(x);
+# else
+ glm_vec4 const rnd0 = glm_vec4_round(x);
+ glm_vec4 const cmp0 = _mm_cmplt_ps(x, rnd0);
+ glm_vec4 const and0 = _mm_and_ps(cmp0, _mm_set1_ps(1.0f));
+ glm_vec4 const sub0 = glm_vec4_sub(rnd0, and0);
+ return sub0;
+# endif
+}
+
+/* trunc TODO
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_trunc(glm_vec4 x)
+{
+ return glm_vec4();
+}
+*/
+
+//roundEven
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_roundEven(glm_vec4 x)
+{
+ glm_vec4 const sgn0 = _mm_castsi128_ps(_mm_set1_epi32(0x80000000));
+ glm_vec4 const and0 = _mm_and_ps(sgn0, x);
+ glm_vec4 const or0 = _mm_or_ps(and0, _mm_set_ps1(8388608.0f));
+ glm_vec4 const add0 = glm_vec4_add(x, or0);
+ glm_vec4 const sub0 = glm_vec4_sub(add0, or0);
+ return sub0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_ceil(glm_vec4 x)
+{
+# if GLM_ARCH & GLM_ARCH_SSE41_BIT
+ return _mm_ceil_ps(x);
+# else
+ glm_vec4 const rnd0 = glm_vec4_round(x);
+ glm_vec4 const cmp0 = _mm_cmpgt_ps(x, rnd0);
+ glm_vec4 const and0 = _mm_and_ps(cmp0, _mm_set1_ps(1.0f));
+ glm_vec4 const add0 = glm_vec4_add(rnd0, and0);
+ return add0;
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_fract(glm_vec4 x)
+{
+ glm_vec4 const flr0 = glm_vec4_floor(x);
+ glm_vec4 const sub0 = glm_vec4_sub(x, flr0);
+ return sub0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_mod(glm_vec4 x, glm_vec4 y)
+{
+ glm_vec4 const div0 = glm_vec4_div(x, y);
+ glm_vec4 const flr0 = glm_vec4_floor(div0);
+ glm_vec4 const mul0 = glm_vec4_mul(y, flr0);
+ glm_vec4 const sub0 = glm_vec4_sub(x, mul0);
+ return sub0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_clamp(glm_vec4 v, glm_vec4 minVal, glm_vec4 maxVal)
+{
+ glm_vec4 const min0 = _mm_min_ps(v, maxVal);
+ glm_vec4 const max0 = _mm_max_ps(min0, minVal);
+ return max0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_mix(glm_vec4 v1, glm_vec4 v2, glm_vec4 a)
+{
+ glm_vec4 const sub0 = glm_vec4_sub(_mm_set1_ps(1.0f), a);
+ glm_vec4 const mul0 = glm_vec4_mul(v1, sub0);
+ glm_vec4 const mad0 = glm_vec4_fma(v2, a, mul0);
+ return mad0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_step(glm_vec4 edge, glm_vec4 x)
+{
+ glm_vec4 const cmp = _mm_cmple_ps(x, edge);
+ return _mm_movemask_ps(cmp) == 0 ? _mm_set1_ps(1.0f) : _mm_setzero_ps();
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_smoothstep(glm_vec4 edge0, glm_vec4 edge1, glm_vec4 x)
+{
+ glm_vec4 const sub0 = glm_vec4_sub(x, edge0);
+ glm_vec4 const sub1 = glm_vec4_sub(edge1, edge0);
+ glm_vec4 const div0 = glm_vec4_sub(sub0, sub1);
+ glm_vec4 const clp0 = glm_vec4_clamp(div0, _mm_setzero_ps(), _mm_set1_ps(1.0f));
+ glm_vec4 const mul0 = glm_vec4_mul(_mm_set1_ps(2.0f), clp0);
+ glm_vec4 const sub2 = glm_vec4_sub(_mm_set1_ps(3.0f), mul0);
+ glm_vec4 const mul1 = glm_vec4_mul(clp0, clp0);
+ glm_vec4 const mul2 = glm_vec4_mul(mul1, sub2);
+ return mul2;
+}
+
+// Agner Fog method
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_nan(glm_vec4 x)
+{
+ glm_ivec4 const t1 = _mm_castps_si128(x); // reinterpret as 32-bit integer
+ glm_ivec4 const t2 = _mm_sll_epi32(t1, _mm_cvtsi32_si128(1)); // shift out sign bit
+ glm_ivec4 const t3 = _mm_set1_epi32(0xFF000000); // exponent mask
+ glm_ivec4 const t4 = _mm_and_si128(t2, t3); // exponent
+ glm_ivec4 const t5 = _mm_andnot_si128(t3, t2); // fraction
+ glm_ivec4 const Equal = _mm_cmpeq_epi32(t3, t4);
+ glm_ivec4 const Nequal = _mm_cmpeq_epi32(t5, _mm_setzero_si128());
+ glm_ivec4 const And = _mm_and_si128(Equal, Nequal);
+ return _mm_castsi128_ps(And); // exponent = all 1s and fraction != 0
+}
+
+// Agner Fog method
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_inf(glm_vec4 x)
+{
+ glm_ivec4 const t1 = _mm_castps_si128(x); // reinterpret as 32-bit integer
+ glm_ivec4 const t2 = _mm_sll_epi32(t1, _mm_cvtsi32_si128(1)); // shift out sign bit
+ return _mm_castsi128_ps(_mm_cmpeq_epi32(t2, _mm_set1_epi32(0xFF000000))); // exponent is all 1s, fraction is 0
+}
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/simd/exponential.h b/glm/simd/exponential.h
new file mode 100644
index 0000000..c5dd104
--- /dev/null
+++ b/glm/simd/exponential.h
@@ -0,0 +1,20 @@
+/// @ref simd
+/// @file glm/simd/experimental.h
+
+#pragma once
+
+#include "platform.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x)
+{
+ return _mm_mul_ss(_mm_rsqrt_ss(x), x);
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x)
+{
+ return _mm_mul_ps(_mm_rsqrt_ps(x), x);
+}
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/simd/geometric.h b/glm/simd/geometric.h
new file mode 100644
index 0000000..503287b
--- /dev/null
+++ b/glm/simd/geometric.h
@@ -0,0 +1,124 @@
+/// @ref simd
+/// @file glm/simd/geometric.h
+
+#pragma once
+
+#include "common.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+GLM_FUNC_DECL glm_vec4 glm_vec4_dot(glm_vec4 v1, glm_vec4 v2);
+GLM_FUNC_DECL glm_vec4 glm_vec1_dot(glm_vec4 v1, glm_vec4 v2);
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_length(glm_vec4 x)
+{
+ glm_vec4 const dot0 = glm_vec4_dot(x, x);
+ glm_vec4 const sqt0 = _mm_sqrt_ps(dot0);
+ return sqt0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_distance(glm_vec4 p0, glm_vec4 p1)
+{
+ glm_vec4 const sub0 = _mm_sub_ps(p0, p1);
+ glm_vec4 const len0 = glm_vec4_length(sub0);
+ return len0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_dot(glm_vec4 v1, glm_vec4 v2)
+{
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ return _mm_dp_ps(v1, v2, 0xff);
+# elif GLM_ARCH & GLM_ARCH_SSE3_BIT
+ glm_vec4 const mul0 = _mm_mul_ps(v1, v2);
+ glm_vec4 const hadd0 = _mm_hadd_ps(mul0, mul0);
+ glm_vec4 const hadd1 = _mm_hadd_ps(hadd0, hadd0);
+ return hadd1;
+# else
+ glm_vec4 const mul0 = _mm_mul_ps(v1, v2);
+ glm_vec4 const swp0 = _mm_shuffle_ps(mul0, mul0, _MM_SHUFFLE(2, 3, 0, 1));
+ glm_vec4 const add0 = _mm_add_ps(mul0, swp0);
+ glm_vec4 const swp1 = _mm_shuffle_ps(add0, add0, _MM_SHUFFLE(0, 1, 2, 3));
+ glm_vec4 const add1 = _mm_add_ps(add0, swp1);
+ return add1;
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_dot(glm_vec4 v1, glm_vec4 v2)
+{
+# if GLM_ARCH & GLM_ARCH_AVX_BIT
+ return _mm_dp_ps(v1, v2, 0xff);
+# elif GLM_ARCH & GLM_ARCH_SSE3_BIT
+ glm_vec4 const mul0 = _mm_mul_ps(v1, v2);
+ glm_vec4 const had0 = _mm_hadd_ps(mul0, mul0);
+ glm_vec4 const had1 = _mm_hadd_ps(had0, had0);
+ return had1;
+# else
+ glm_vec4 const mul0 = _mm_mul_ps(v1, v2);
+ glm_vec4 const mov0 = _mm_movehl_ps(mul0, mul0);
+ glm_vec4 const add0 = _mm_add_ps(mov0, mul0);
+ glm_vec4 const swp1 = _mm_shuffle_ps(add0, add0, 1);
+ glm_vec4 const add1 = _mm_add_ss(add0, swp1);
+ return add1;
+# endif
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_cross(glm_vec4 v1, glm_vec4 v2)
+{
+ glm_vec4 const swp0 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 0, 2, 1));
+ glm_vec4 const swp1 = _mm_shuffle_ps(v1, v1, _MM_SHUFFLE(3, 1, 0, 2));
+ glm_vec4 const swp2 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 0, 2, 1));
+ glm_vec4 const swp3 = _mm_shuffle_ps(v2, v2, _MM_SHUFFLE(3, 1, 0, 2));
+ glm_vec4 const mul0 = _mm_mul_ps(swp0, swp3);
+ glm_vec4 const mul1 = _mm_mul_ps(swp1, swp2);
+ glm_vec4 const sub0 = _mm_sub_ps(mul0, mul1);
+ return sub0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_normalize(glm_vec4 v)
+{
+ glm_vec4 const dot0 = glm_vec4_dot(v, v);
+ glm_vec4 const isr0 = _mm_rsqrt_ps(dot0);
+ glm_vec4 const mul0 = _mm_mul_ps(v, isr0);
+ return mul0;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_faceforward(glm_vec4 N, glm_vec4 I, glm_vec4 Nref)
+{
+ glm_vec4 const dot0 = glm_vec4_dot(Nref, I);
+ glm_vec4 const sgn0 = glm_vec4_sign(dot0);
+ glm_vec4 const mul0 = _mm_mul_ps(sgn0, _mm_set1_ps(-1.0f));
+ glm_vec4 const mul1 = _mm_mul_ps(N, mul0);
+ return mul1;
+}
+
+GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_reflect(glm_vec4 I, glm_vec4 N)
+{
+ glm_vec4 const dot0 = glm_vec4_dot(N, I);
+ glm_vec4 const mul0 = _mm_mul_ps(N, dot0);
+ glm_vec4 const mul1 = _mm_mul_ps(mul0, _mm_set1_ps(2.0f));
+ glm_vec4 const sub0 = _mm_sub_ps(I, mul1);
+ return sub0;
+}
+
+GLM_FUNC_QUALIFIER __m128 glm_vec4_refract(glm_vec4 I, glm_vec4 N, glm_vec4 eta)
+{
+ glm_vec4 const dot0 = glm_vec4_dot(N, I);
+ glm_vec4 const mul0 = _mm_mul_ps(eta, eta);
+ glm_vec4 const mul1 = _mm_mul_ps(dot0, dot0);
+ glm_vec4 const sub0 = _mm_sub_ps(_mm_set1_ps(1.0f), mul0);
+ glm_vec4 const sub1 = _mm_sub_ps(_mm_set1_ps(1.0f), mul1);
+ glm_vec4 const mul2 = _mm_mul_ps(sub0, sub1);
+
+ if(_mm_movemask_ps(_mm_cmplt_ss(mul2, _mm_set1_ps(0.0f))) == 0)
+ return _mm_set1_ps(0.0f);
+
+ glm_vec4 const sqt0 = _mm_sqrt_ps(mul2);
+ glm_vec4 const mad0 = glm_vec4_fma(eta, dot0, sqt0);
+ glm_vec4 const mul4 = _mm_mul_ps(mad0, N);
+ glm_vec4 const mul5 = _mm_mul_ps(eta, I);
+ glm_vec4 const sub2 = _mm_sub_ps(mul5, mul4);
+
+ return sub2;
+}
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/simd/integer.h b/glm/simd/integer.h
new file mode 100644
index 0000000..3ae0fa4
--- /dev/null
+++ b/glm/simd/integer.h
@@ -0,0 +1,115 @@
+/// @ref simd
+/// @file glm/simd/integer.h
+
+#pragma once
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+GLM_FUNC_QUALIFIER glm_uvec4 glm_i128_interleave(glm_uvec4 x)
+{
+ glm_uvec4 const Mask4 = _mm_set1_epi32(0x0000FFFF);
+ glm_uvec4 const Mask3 = _mm_set1_epi32(0x00FF00FF);
+ glm_uvec4 const Mask2 = _mm_set1_epi32(0x0F0F0F0F);
+ glm_uvec4 const Mask1 = _mm_set1_epi32(0x33333333);
+ glm_uvec4 const Mask0 = _mm_set1_epi32(0x55555555);
+
+ glm_uvec4 Reg1;
+ glm_uvec4 Reg2;
+
+ // REG1 = x;
+ // REG2 = y;
+ //Reg1 = _mm_unpacklo_epi64(x, y);
+ Reg1 = x;
+
+ //REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFF);
+ //REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFF);
+ Reg2 = _mm_slli_si128(Reg1, 2);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask4);
+
+ //REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FF);
+ //REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FF);
+ Reg2 = _mm_slli_si128(Reg1, 1);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask3);
+
+ //REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0F);
+ //REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0F);
+ Reg2 = _mm_slli_epi32(Reg1, 4);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask2);
+
+ //REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333);
+ //REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333);
+ Reg2 = _mm_slli_epi32(Reg1, 2);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask1);
+
+ //REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555);
+ //REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555);
+ Reg2 = _mm_slli_epi32(Reg1, 1);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask0);
+
+ //return REG1 | (REG2 << 1);
+ Reg2 = _mm_slli_epi32(Reg1, 1);
+ Reg2 = _mm_srli_si128(Reg2, 8);
+ Reg1 = _mm_or_si128(Reg1, Reg2);
+
+ return Reg1;
+}
+
+GLM_FUNC_QUALIFIER glm_uvec4 glm_i128_interleave2(glm_uvec4 x, glm_uvec4 y)
+{
+ glm_uvec4 const Mask4 = _mm_set1_epi32(0x0000FFFF);
+ glm_uvec4 const Mask3 = _mm_set1_epi32(0x00FF00FF);
+ glm_uvec4 const Mask2 = _mm_set1_epi32(0x0F0F0F0F);
+ glm_uvec4 const Mask1 = _mm_set1_epi32(0x33333333);
+ glm_uvec4 const Mask0 = _mm_set1_epi32(0x55555555);
+
+ glm_uvec4 Reg1;
+ glm_uvec4 Reg2;
+
+ // REG1 = x;
+ // REG2 = y;
+ Reg1 = _mm_unpacklo_epi64(x, y);
+
+ //REG1 = ((REG1 << 16) | REG1) & glm::uint64(0x0000FFFF0000FFFF);
+ //REG2 = ((REG2 << 16) | REG2) & glm::uint64(0x0000FFFF0000FFFF);
+ Reg2 = _mm_slli_si128(Reg1, 2);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask4);
+
+ //REG1 = ((REG1 << 8) | REG1) & glm::uint64(0x00FF00FF00FF00FF);
+ //REG2 = ((REG2 << 8) | REG2) & glm::uint64(0x00FF00FF00FF00FF);
+ Reg2 = _mm_slli_si128(Reg1, 1);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask3);
+
+ //REG1 = ((REG1 << 4) | REG1) & glm::uint64(0x0F0F0F0F0F0F0F0F);
+ //REG2 = ((REG2 << 4) | REG2) & glm::uint64(0x0F0F0F0F0F0F0F0F);
+ Reg2 = _mm_slli_epi32(Reg1, 4);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask2);
+
+ //REG1 = ((REG1 << 2) | REG1) & glm::uint64(0x3333333333333333);
+ //REG2 = ((REG2 << 2) | REG2) & glm::uint64(0x3333333333333333);
+ Reg2 = _mm_slli_epi32(Reg1, 2);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask1);
+
+ //REG1 = ((REG1 << 1) | REG1) & glm::uint64(0x5555555555555555);
+ //REG2 = ((REG2 << 1) | REG2) & glm::uint64(0x5555555555555555);
+ Reg2 = _mm_slli_epi32(Reg1, 1);
+ Reg1 = _mm_or_si128(Reg2, Reg1);
+ Reg1 = _mm_and_si128(Reg1, Mask0);
+
+ //return REG1 | (REG2 << 1);
+ Reg2 = _mm_slli_epi32(Reg1, 1);
+ Reg2 = _mm_srli_si128(Reg2, 8);
+ Reg1 = _mm_or_si128(Reg1, Reg2);
+
+ return Reg1;
+}
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/detail/intrinsic_matrix.inl b/glm/simd/matrix.h
similarity index 87%
rename from glm/detail/intrinsic_matrix.inl
rename to glm/simd/matrix.h
index 7ab6bce..299d87c 100644
--- a/glm/detail/intrinsic_matrix.inl
+++ b/glm/simd/matrix.h
@@ -1,44 +1,13 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref core
-/// @file glm/detail/intrinsic_common.inl
-/// @date 2009-06-05 / 2011-06-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-namespace glm{
-namespace detail{
-
-static const __m128 GLM_VAR_USED _m128_rad_ps = _mm_set_ps1(3.141592653589793238462643383279f / 180.f);
-static const __m128 GLM_VAR_USED _m128_deg_ps = _mm_set_ps1(180.f / 3.141592653589793238462643383279f);
-
-template <typename matType>
-GLM_FUNC_QUALIFIER matType sse_comp_mul_ps
-(
- __m128 const in1[4],
- __m128 const in2[4],
- __m128 out[4]
-)
+/// @ref simd
+/// @file glm/simd/matrix.h
+
+#pragma once
+
+#include "geometric.h"
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+GLM_FUNC_QUALIFIER void glm_mat4_matrixCompMult(glm_vec4 const in1[4], glm_vec4 const in2[4], glm_vec4 out[4])
{
out[0] = _mm_mul_ps(in1[0], in2[0]);
out[1] = _mm_mul_ps(in1[1], in2[1]);
@@ -46,27 +15,23 @@ GLM_FUNC_QUALIFIER matType sse_comp_mul_ps
out[3] = _mm_mul_ps(in1[3], in2[3]);
}
-GLM_FUNC_QUALIFIER void sse_add_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_add(glm_vec4 const in1[4], glm_vec4 const in2[4], glm_vec4 out[4])
{
- {
- out[0] = _mm_add_ps(in1[0], in2[0]);
- out[1] = _mm_add_ps(in1[1], in2[1]);
- out[2] = _mm_add_ps(in1[2], in2[2]);
- out[3] = _mm_add_ps(in1[3], in2[3]);
- }
+ out[0] = _mm_add_ps(in1[0], in2[0]);
+ out[1] = _mm_add_ps(in1[1], in2[1]);
+ out[2] = _mm_add_ps(in1[2], in2[2]);
+ out[3] = _mm_add_ps(in1[3], in2[3]);
}
-GLM_FUNC_QUALIFIER void sse_sub_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_sub(glm_vec4 const in1[4], glm_vec4 const in2[4], glm_vec4 out[4])
{
- {
- out[0] = _mm_sub_ps(in1[0], in2[0]);
- out[1] = _mm_sub_ps(in1[1], in2[1]);
- out[2] = _mm_sub_ps(in1[2], in2[2]);
- out[3] = _mm_sub_ps(in1[3], in2[3]);
- }
+ out[0] = _mm_sub_ps(in1[0], in2[0]);
+ out[1] = _mm_sub_ps(in1[1], in2[1]);
+ out[2] = _mm_sub_ps(in1[2], in2[2]);
+ out[3] = _mm_sub_ps(in1[3], in2[3]);
}
-GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 const m[4], __m128 v)
+GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_mul_vec4(glm_vec4 const m[4], glm_vec4 v)
{
__m128 v0 = _mm_shuffle_ps(v, v, _MM_SHUFFLE(0, 0, 0, 0));
__m128 v1 = _mm_shuffle_ps(v, v, _MM_SHUFFLE(1, 1, 1, 1));
@@ -85,7 +50,7 @@ GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 const m[4], __m128 v)
return a2;
}
-GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 v, __m128 const m[4])
+GLM_FUNC_QUALIFIER __m128 glm_vec4_mul_mat4(glm_vec4 v, glm_vec4 const m[4])
{
__m128 i0 = m[0];
__m128 i1 = m[1];
@@ -112,7 +77,7 @@ GLM_FUNC_QUALIFIER __m128 sse_mul_ps(__m128 v, __m128 const m[4])
return f2;
}
-GLM_FUNC_QUALIFIER void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_mul(glm_vec4 const in1[4], glm_vec4 const in2[4], glm_vec4 out[4])
{
{
__m128 e0 = _mm_shuffle_ps(in2[0], in2[0], _MM_SHUFFLE(0, 0, 0, 0));
@@ -188,20 +153,20 @@ GLM_FUNC_QUALIFIER void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m
}
}
-GLM_FUNC_QUALIFIER void sse_transpose_ps(__m128 const in[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_transpose(glm_vec4 const in[4], glm_vec4 out[4])
{
- __m128 tmp0 = _mm_shuffle_ps(in[0], in[1], 0x44);
- __m128 tmp2 = _mm_shuffle_ps(in[0], in[1], 0xEE);
- __m128 tmp1 = _mm_shuffle_ps(in[2], in[3], 0x44);
- __m128 tmp3 = _mm_shuffle_ps(in[2], in[3], 0xEE);
-
- out[0] = _mm_shuffle_ps(tmp0, tmp1, 0x88);
- out[1] = _mm_shuffle_ps(tmp0, tmp1, 0xDD);
- out[2] = _mm_shuffle_ps(tmp2, tmp3, 0x88);
- out[3] = _mm_shuffle_ps(tmp2, tmp3, 0xDD);
+ __m128 tmp0 = _mm_shuffle_ps(in[0], in[1], 0x44);
+ __m128 tmp2 = _mm_shuffle_ps(in[0], in[1], 0xEE);
+ __m128 tmp1 = _mm_shuffle_ps(in[2], in[3], 0x44);
+ __m128 tmp3 = _mm_shuffle_ps(in[2], in[3], 0xEE);
+
+ out[0] = _mm_shuffle_ps(tmp0, tmp1, 0x88);
+ out[1] = _mm_shuffle_ps(tmp0, tmp1, 0xDD);
+ out[2] = _mm_shuffle_ps(tmp2, tmp3, 0x88);
+ out[3] = _mm_shuffle_ps(tmp2, tmp3, 0xDD);
}
-GLM_FUNC_QUALIFIER __m128 sse_slow_det_ps(__m128 const in[4])
+GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_determinant_highp(glm_vec4 const in[4])
{
__m128 Fac0;
{
@@ -411,14 +376,11 @@ GLM_FUNC_QUALIFIER __m128 sse_slow_det_ps(__m128 const in[4])
// + m[0][1] * Inverse[1][0]
// + m[0][2] * Inverse[2][0]
// + m[0][3] * Inverse[3][0];
- __m128 Det0 = sse_dot_ps(in[0], Row2);
+ __m128 Det0 = glm_vec4_dot(in[0], Row2);
return Det0;
}
-GLM_FUNC_QUALIFIER __m128 sse_detd_ps
-(
- __m128 const m[4]
-)
+GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_determinant_lowp(glm_vec4 const m[4])
{
// _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(
@@ -478,13 +440,10 @@ GLM_FUNC_QUALIFIER __m128 sse_detd_ps
// + m[0][2] * DetCof[2]
// + m[0][3] * DetCof[3];
- return sse_dot_ps(m[0], DetCof);
+ return glm_vec4_dot(m[0], DetCof);
}
-GLM_FUNC_QUALIFIER __m128 sse_det_ps
-(
- __m128 const m[4]
-)
+GLM_FUNC_QUALIFIER glm_vec4 glm_mat4_determinant(glm_vec4 const m[4])
{
// _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(add)
@@ -544,10 +503,10 @@ GLM_FUNC_QUALIFIER __m128 sse_det_ps
// + m[0][2] * DetCof[2]
// + m[0][3] * DetCof[3];
- return sse_dot_ps(m[0], DetCof);
+ return glm_vec4_dot(m[0], DetCof);
}
-GLM_FUNC_QUALIFIER void sse_inverse_ps(__m128 const in[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_inverse(glm_vec4 const in[4], glm_vec4 out[4])
{
__m128 Fac0;
{
@@ -608,7 +567,7 @@ GLM_FUNC_QUALIFIER void sse_inverse_ps(__m128 const in[4], __m128 out[4])
__m128 Mul00 = _mm_mul_ps(Swp00, Swp01);
__m128 Mul01 = _mm_mul_ps(Swp02, Swp03);
Fac2 = _mm_sub_ps(Mul00, Mul01);
- }
+ }
__m128 Fac3;
{
@@ -757,8 +716,8 @@ GLM_FUNC_QUALIFIER void sse_inverse_ps(__m128 const in[4], __m128 out[4])
// + m[0][1] * Inverse[1][0]
// + m[0][2] * Inverse[2][0]
// + m[0][3] * Inverse[3][0];
- __m128 Det0 = sse_dot_ps(in[0], Row2);
- __m128 Rcp0 = _mm_div_ps(one, Det0);
+ __m128 Det0 = glm_vec4_dot(in[0], Row2);
+ __m128 Rcp0 = _mm_div_ps(_mm_set1_ps(1.0f), Det0);
//__m128 Rcp0 = _mm_rcp_ps(Det0);
// Inverse /= Determinant;
@@ -768,7 +727,7 @@ GLM_FUNC_QUALIFIER void sse_inverse_ps(__m128 const in[4], __m128 out[4])
out[3] = _mm_mul_ps(Inv3, Rcp0);
}
-GLM_FUNC_QUALIFIER void sse_inverse_fast_ps(__m128 const in[4], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_inverse_lowp(glm_vec4 const in[4], glm_vec4 out[4])
{
__m128 Fac0;
{
@@ -978,7 +937,7 @@ GLM_FUNC_QUALIFIER void sse_inverse_fast_ps(__m128 const in[4], __m128 out[4])
// + m[0][1] * Inverse[1][0]
// + m[0][2] * Inverse[2][0]
// + m[0][3] * Inverse[3][0];
- __m128 Det0 = sse_dot_ps(in[0], Row2);
+ __m128 Det0 = glm_vec4_dot(in[0], Row2);
__m128 Rcp0 = _mm_rcp_ps(Det0);
//__m128 Rcp0 = _mm_div_ps(one, Det0);
// Inverse /= Determinant;
@@ -988,15 +947,15 @@ GLM_FUNC_QUALIFIER void sse_inverse_fast_ps(__m128 const in[4], __m128 out[4])
out[3] = _mm_mul_ps(Inv3, Rcp0);
}
/*
-GLM_FUNC_QUALIFIER void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_rotate(__m128 const in[4], float Angle, float const v[3], __m128 out[4])
{
float a = glm::radians(Angle);
- float c = cos(a);
- float s = sin(a);
+ float c = cos(a);
+ float s = sin(a);
glm::vec4 AxisA(v[0], v[1], v[2], float(0));
__m128 AxisB = _mm_set_ps(AxisA.w, AxisA.z, AxisA.y, AxisA.x);
- __m128 AxisC = detail::sse_nrm_ps(AxisB);
+ __m128 AxisC = detail::sse_nrm_ps(AxisB);
__m128 Cos0 = _mm_set_ss(c);
__m128 CosA = _mm_shuffle_ps(Cos0, Cos0, _MM_SHUFFLE(0, 0, 0, 0));
@@ -1031,9 +990,9 @@ GLM_FUNC_QUALIFIER void sse_rotate_ps(__m128 const in[4], float Angle, float con
__m128 TmpB3 = _mm_mul_ps(SinA0, TmpB2);
__m128 TmpB4 = _mm_add_ps(TmpB1, TmpB3);
- //Rotate[2][0] = 0 + temp[2] * axis[0] + s * axis[1];
- //Rotate[2][1] = 0 + temp[2] * axis[1] - s * axis[0];
- //Rotate[2][2] = c + temp[2] * axis[2];
+ //Rotate[2][0] = 0 + temp[2] * axis[0] + s * axis[1];
+ //Rotate[2][1] = 0 + temp[2] * axis[1] - s * axis[0];
+ //Rotate[2][2] = c + temp[2] * axis[2];
__m128 Axis2 = _mm_shuffle_ps(AxisC, AxisC, _MM_SHUFFLE(2, 2, 2, 2));
__m128 TmpC0 = _mm_mul_ps(Axis2, AxisC);
__m128 CosA2 = _mm_shuffle_ps(Cos0, Cos0, _MM_SHUFFLE(1, 0, 1, 1));
@@ -1058,7 +1017,7 @@ GLM_FUNC_QUALIFIER void sse_rotate_ps(__m128 const in[4], float Angle, float con
sse_mul_ps(in, Result, out);
}
*/
-GLM_FUNC_QUALIFIER void sse_outer_ps(__m128 const & c, __m128 const & r, __m128 out[4])
+GLM_FUNC_QUALIFIER void glm_mat4_outerProduct(__m128 const & c, __m128 const & r, __m128 out[4])
{
out[0] = _mm_mul_ps(c, _mm_shuffle_ps(r, r, _MM_SHUFFLE(0, 0, 0, 0)));
out[1] = _mm_mul_ps(c, _mm_shuffle_ps(r, r, _MM_SHUFFLE(1, 1, 1, 1)));
@@ -1066,5 +1025,4 @@ GLM_FUNC_QUALIFIER void sse_outer_ps(__m128 const & c, __m128 const & r, __m128
out[3] = _mm_mul_ps(c, _mm_shuffle_ps(r, r, _MM_SHUFFLE(3, 3, 3, 3)));
}
-}//namespace detail
-}//namespace glm
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/simd/packing.h b/glm/simd/packing.h
new file mode 100644
index 0000000..aca4361
--- /dev/null
+++ b/glm/simd/packing.h
@@ -0,0 +1,8 @@
+/// @ref simd
+/// @file glm/simd/packing.h
+
+#pragma once
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/simd/platform.h b/glm/simd/platform.h
index 794135f..b576534 100644
--- a/glm/simd/platform.h
+++ b/glm/simd/platform.h
@@ -43,7 +43,7 @@
#endif//
// Report platform detection
-#if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED))
+#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_MESSAGE_PLATFORM_DISPLAYED)
# define GLM_MESSAGE_PLATFORM_DISPLAYED
# if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
# pragma message("GLM: QNX platform detected")
@@ -68,7 +68,7 @@
# else
# pragma message("GLM: platform not detected")
# endif
-#endif//GLM_MESSAGE
+#endif//GLM_MESSAGES
///////////////////////////////////////////////////////////////////////////////////
// Compiler
@@ -103,7 +103,14 @@
#define GLM_COMPILER_GCC51 0x02000300
#define GLM_COMPILER_GCC52 0x02000400
#define GLM_COMPILER_GCC53 0x02000500
-#define GLM_COMPILER_GCC60 0x02000600
+#define GLM_COMPILER_GCC54 0x02000600
+#define GLM_COMPILER_GCC60 0x02000700
+#define GLM_COMPILER_GCC61 0x02000800
+#define GLM_COMPILER_GCC62 0x02000900
+#define GLM_COMPILER_GCC70 0x02000A00
+#define GLM_COMPILER_GCC71 0x02000B00
+#define GLM_COMPILER_GCC72 0x02000C00
+#define GLM_COMPILER_GCC80 0x02000D00
// CUDA
#define GLM_COMPILER_CUDA 0x10000000
@@ -115,17 +122,18 @@
#define GLM_COMPILER_CUDA65 0x10000090
#define GLM_COMPILER_CUDA70 0x100000A0
#define GLM_COMPILER_CUDA75 0x100000B0
+#define GLM_COMPILER_CUDA80 0x100000C0
-// LLVM
-#define GLM_COMPILER_LLVM 0x20000000
-#define GLM_COMPILER_LLVM32 0x20000030
-#define GLM_COMPILER_LLVM33 0x20000040
-#define GLM_COMPILER_LLVM34 0x20000050
-#define GLM_COMPILER_LLVM35 0x20000060
-#define GLM_COMPILER_LLVM36 0x20000070
-#define GLM_COMPILER_LLVM37 0x20000080
-#define GLM_COMPILER_LLVM38 0x20000090
-#define GLM_COMPILER_LLVM39 0x200000A0
+// Clang
+#define GLM_COMPILER_CLANG 0x20000000
+#define GLM_COMPILER_CLANG32 0x20000030
+#define GLM_COMPILER_CLANG33 0x20000040
+#define GLM_COMPILER_CLANG34 0x20000050
+#define GLM_COMPILER_CLANG35 0x20000060
+#define GLM_COMPILER_CLANG36 0x20000070
+#define GLM_COMPILER_CLANG37 0x20000080
+#define GLM_COMPILER_CLANG38 0x20000090
+#define GLM_COMPILER_CLANG39 0x200000A0
// Build model
#define GLM_MODEL_32 0x00000010
@@ -167,43 +175,43 @@
#elif defined(__clang__)
# if GLM_PLATFORM & GLM_PLATFORM_APPLE
# if __clang_major__ == 5 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_LLVM33
+# define GLM_COMPILER GLM_COMPILER_CLANG33
# elif __clang_major__ == 5 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_LLVM34
+# define GLM_COMPILER GLM_COMPILER_CLANG34
# elif __clang_major__ == 6 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_LLVM35
+# define GLM_COMPILER GLM_COMPILER_CLANG35
# elif __clang_major__ == 6 && __clang_minor__ >= 1
-# define GLM_COMPILER GLM_COMPILER_LLVM36
+# define GLM_COMPILER GLM_COMPILER_CLANG36
# elif __clang_major__ >= 7
-# define GLM_COMPILER GLM_COMPILER_LLVM37
+# define GLM_COMPILER GLM_COMPILER_CLANG37
# else
-# define GLM_COMPILER GLM_COMPILER_LLVM
+# define GLM_COMPILER GLM_COMPILER_CLANG
# endif
# else
# if __clang_major__ == 3 && __clang_minor__ == 0
-# define GLM_COMPILER GLM_COMPILER_LLVM30
+# define GLM_COMPILER GLM_COMPILER_CLANG30
# elif __clang_major__ == 3 && __clang_minor__ == 1
-# define GLM_COMPILER GLM_COMPILER_LLVM31
+# define GLM_COMPILER GLM_COMPILER_CLANG31
# elif __clang_major__ == 3 && __clang_minor__ == 2
-# define GLM_COMPILER GLM_COMPILER_LLVM32
+# define GLM_COMPILER GLM_COMPILER_CLANG32
# elif __clang_major__ == 3 && __clang_minor__ == 3
-# define GLM_COMPILER GLM_COMPILER_LLVM33
+# define GLM_COMPILER GLM_COMPILER_CLANG33
# elif __clang_major__ == 3 && __clang_minor__ == 4
-# define GLM_COMPILER GLM_COMPILER_LLVM34
+# define GLM_COMPILER GLM_COMPILER_CLANG34
# elif __clang_major__ == 3 && __clang_minor__ == 5
-# define GLM_COMPILER GLM_COMPILER_LLVM35
+# define GLM_COMPILER GLM_COMPILER_CLANG35
# elif __clang_major__ == 3 && __clang_minor__ == 6
-# define GLM_COMPILER GLM_COMPILER_LLVM36
+# define GLM_COMPILER GLM_COMPILER_CLANG36
# elif __clang_major__ == 3 && __clang_minor__ == 7
-# define GLM_COMPILER GLM_COMPILER_LLVM37
+# define GLM_COMPILER GLM_COMPILER_CLANG37
# elif __clang_major__ == 3 && __clang_minor__ == 8
-# define GLM_COMPILER GLM_COMPILER_LLVM38
+# define GLM_COMPILER GLM_COMPILER_CLANG38
# elif __clang_major__ == 3 && __clang_minor__ >= 9
-# define GLM_COMPILER GLM_COMPILER_LLVM39
+# define GLM_COMPILER GLM_COMPILER_CLANG39
# elif __clang_major__ >= 4
-# define GLM_COMPILER GLM_COMPILER_LLVM39
+# define GLM_COMPILER GLM_COMPILER_CLANG39
# else
-# define GLM_COMPILER GLM_COMPILER_LLVM
+# define GLM_COMPILER GLM_COMPILER_CLANG
# endif
# endif
@@ -247,10 +255,24 @@
# define GLM_COMPILER (GLM_COMPILER_GCC51)
# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2)
# define GLM_COMPILER (GLM_COMPILER_GCC52)
-# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3)
+# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3)
# define GLM_COMPILER (GLM_COMPILER_GCC53)
-# elif (__GNUC__ >= 6)
+# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4)
+# define GLM_COMPILER (GLM_COMPILER_GCC54)
+# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0)
# define GLM_COMPILER (GLM_COMPILER_GCC60)
+# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1)
+# define GLM_COMPILER (GLM_COMPILER_GCC61)
+# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2)
+# define GLM_COMPILER (GLM_COMPILER_GCC62)
+# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0)
+# define GLM_COMPILER (GLM_COMPILER_GCC70)
+# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1)
+# define GLM_COMPILER (GLM_COMPILER_GCC71)
+# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2)
+# define GLM_COMPILER (GLM_COMPILER_GCC72)
+# elif (__GNUC__ >= 8)
+# define GLM_COMPILER (GLM_COMPILER_GCC80)
# else
# define GLM_COMPILER (GLM_COMPILER_GCC)
# endif
@@ -262,3 +284,154 @@
#ifndef GLM_COMPILER
# error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
#endif//GLM_COMPILER
+
+///////////////////////////////////////////////////////////////////////////////////
+// Instruction sets
+
+// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2 GLM_FORCE_AVX2
+
+#define GLM_ARCH_X86_BIT 0x00000001
+#define GLM_ARCH_SSE2_BIT 0x00000002
+#define GLM_ARCH_SSE3_BIT 0x00000004
+#define GLM_ARCH_SSSE3_BIT 0x00000008
+#define GLM_ARCH_SSE41_BIT 0x00000010
+#define GLM_ARCH_SSE42_BIT 0x00000020
+#define GLM_ARCH_AVX_BIT 0x00000040
+#define GLM_ARCH_AVX2_BIT 0x00000080
+#define GLM_ARCH_AVX512_BIT 0x00000100 // Skylake subset
+#define GLM_ARCH_ARM_BIT 0x00000100
+#define GLM_ARCH_NEON_BIT 0x00000200
+#define GLM_ARCH_MIPS_BIT 0x00010000
+#define GLM_ARCH_PPC_BIT 0x01000000
+
+#define GLM_ARCH_PURE (0x00000000)
+#define GLM_ARCH_X86 (GLM_ARCH_X86_BIT)
+#define GLM_ARCH_SSE2 (GLM_ARCH_SSE2_BIT | GLM_ARCH_X86)
+#define GLM_ARCH_SSE3 (GLM_ARCH_SSE3_BIT | GLM_ARCH_SSE2)
+#define GLM_ARCH_SSSE3 (GLM_ARCH_SSSE3_BIT | GLM_ARCH_SSE3)
+#define GLM_ARCH_SSE41 (GLM_ARCH_SSE41_BIT | GLM_ARCH_SSSE3)
+#define GLM_ARCH_SSE42 (GLM_ARCH_SSE42_BIT | GLM_ARCH_SSE41)
+#define GLM_ARCH_AVX (GLM_ARCH_AVX_BIT | GLM_ARCH_SSE42)
+#define GLM_ARCH_AVX2 (GLM_ARCH_AVX2_BIT | GLM_ARCH_AVX)
+#define GLM_ARCH_AVX512 (GLM_ARCH_AVX512_BIT | GLM_ARCH_AVX2) // Skylake subset
+#define GLM_ARCH_ARM (GLM_ARCH_ARM_BIT)
+#define GLM_ARCH_NEON (GLM_ARCH_NEON_BIT | GLM_ARCH_ARM)
+#define GLM_ARCH_MIPS (GLM_ARCH_MIPS_BIT)
+#define GLM_ARCH_PPC (GLM_ARCH_PPC_BIT)
+
+#if defined(GLM_FORCE_PURE)
+# define GLM_ARCH GLM_ARCH_PURE
+#elif defined(GLM_FORCE_MIPS)
+# define GLM_ARCH (GLM_ARCH_MIPS)
+#elif defined(GLM_FORCE_PPC)
+# define GLM_ARCH (GLM_ARCH_PPC)
+#elif defined(GLM_FORCE_NEON)
+# define GLM_ARCH (GLM_ARCH_NEON)
+#elif defined(GLM_FORCE_AVX512)
+# define GLM_ARCH (GLM_ARCH_AVX512)
+#elif defined(GLM_FORCE_AVX2)
+# define GLM_ARCH (GLM_ARCH_AVX2)
+#elif defined(GLM_FORCE_AVX)
+# define GLM_ARCH (GLM_ARCH_AVX)
+#elif defined(GLM_FORCE_SSE42)
+# define GLM_ARCH (GLM_ARCH_SSE42)
+#elif defined(GLM_FORCE_SSE41)
+# define GLM_ARCH (GLM_ARCH_SSE41)
+#elif defined(GLM_FORCE_SSSE3)
+# define GLM_ARCH (GLM_ARCH_SSSE3)
+#elif defined(GLM_FORCE_SSE3)
+# define GLM_ARCH (GLM_ARCH_SSE3)
+#elif defined(GLM_FORCE_SSE2)
+# define GLM_ARCH (GLM_ARCH_SSE2)
+#elif (GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
+// This is Skylake set of instruction set
+# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512CD__) && defined(__AVX512VL__) && defined(__AVX512DQ__)
+# define GLM_ARCH (GLM_ARCH_AVX512)
+# elif defined(__AVX2__)
+# define GLM_ARCH (GLM_ARCH_AVX2)
+# elif defined(__AVX__)
+# define GLM_ARCH (GLM_ARCH_AVX)
+# elif defined(__SSE4_2__)
+# define GLM_ARCH (GLM_ARCH_SSE42)
+# elif defined(__SSE4_1__)
+# define GLM_ARCH (GLM_ARCH_SSE41)
+# elif defined(__SSSE3__)
+# define GLM_ARCH (GLM_ARCH_SSSE3)
+# elif defined(__SSE3__)
+# define GLM_ARCH (GLM_ARCH_SSE3)
+# elif defined(__SSE2__)
+# define GLM_ARCH (GLM_ARCH_SSE2)
+# elif defined(__i386__) || defined(__x86_64__)
+# define GLM_ARCH (GLM_ARCH_X86)
+# elif defined(__ARM_NEON)
+# define GLM_ARCH (GLM_ARCH_ARM | GLM_ARCH_NEON)
+# elif defined(__arm__ )
+# define GLM_ARCH (GLM_ARCH_ARM)
+# elif defined(__mips__ )
+# define GLM_ARCH (GLM_ARCH_MIPS)
+# elif defined(__powerpc__ )
+# define GLM_ARCH (GLM_ARCH_PPC)
+# else
+# define GLM_ARCH (GLM_ARCH_PURE)
+# endif
+#elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
+# if defined(_M_ARM)
+# define GLM_ARCH (GLM_ARCH_ARM)
+# elif defined(__AVX2__)
+# define GLM_ARCH (GLM_ARCH_AVX2)
+# elif defined(__AVX__)
+# define GLM_ARCH (GLM_ARCH_AVX)
+# elif defined(_M_X64)
+# define GLM_ARCH (GLM_ARCH_SSE2)
+# elif defined(_M_IX86_FP)
+# if _M_IX86_FP >= 2
+# define GLM_ARCH (GLM_ARCH_SSE2)
+# else
+# define GLM_ARCH (GLM_ARCH_PURE)
+# endif
+# elif defined(_M_PPC)
+# define GLM_ARCH (GLM_ARCH_PPC)
+# else
+# define GLM_ARCH (GLM_ARCH_PURE)
+# endif
+#else
+# define GLM_ARCH GLM_ARCH_PURE
+#endif
+
+// With MinGW-W64, including intrinsic headers before intrin.h will produce some errors. The problem is
+// that windows.h (and maybe other headers) will silently include intrin.h, which of course causes problems.
+// To fix, we just explicitly include intrin.h here.
+#if defined(__MINGW64__) && (GLM_ARCH != GLM_ARCH_PURE)
+# include <intrin.h>
+#endif
+
+#if GLM_ARCH & GLM_ARCH_AVX2_BIT
+# include <immintrin.h>
+#elif GLM_ARCH & GLM_ARCH_AVX_BIT
+# include <immintrin.h>
+#elif GLM_ARCH & GLM_ARCH_SSE42_BIT
+# include <nmmintrin.h>
+#elif GLM_ARCH & GLM_ARCH_SSE41_BIT
+# include <smmintrin.h>
+#elif GLM_ARCH & GLM_ARCH_SSSE3_BIT
+# include <tmmintrin.h>
+#elif GLM_ARCH & GLM_ARCH_SSE3_BIT
+# include <pmmintrin.h>
+#elif GLM_ARCH & GLM_ARCH_SSE2_BIT
+# include <emmintrin.h>
+#endif//GLM_ARCH
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+ typedef __m128 glm_vec4;
+ typedef __m128i glm_ivec4;
+ typedef __m128i glm_uvec4;
+#endif
+
+#if GLM_ARCH & GLM_ARCH_AVX_BIT
+ typedef __m256d glm_dvec4;
+#endif
+
+#if GLM_ARCH & GLM_ARCH_AVX2_BIT
+ typedef __m256i glm_i64vec4;
+ typedef __m256i glm_u64vec4;
+#endif
diff --git a/glm/simd/trigonometric.h b/glm/simd/trigonometric.h
new file mode 100644
index 0000000..c1c9f9f
--- /dev/null
+++ b/glm/simd/trigonometric.h
@@ -0,0 +1,9 @@
+/// @ref simd
+/// @file glm/simd/trigonometric.h
+
+#pragma once
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
+
diff --git a/glm/simd/vector_relational.h b/glm/simd/vector_relational.h
new file mode 100644
index 0000000..cb903f4
--- /dev/null
+++ b/glm/simd/vector_relational.h
@@ -0,0 +1,8 @@
+/// @ref simd
+/// @file glm/simd/vector_relational.h
+
+#pragma once
+
+#if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
+#endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
diff --git a/glm/trigonometric.hpp b/glm/trigonometric.hpp
index 9162b5c..ac73db2 100644
--- a/glm/trigonometric.hpp
+++ b/glm/trigonometric.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/trigonometric.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/vec2.hpp b/glm/vec2.hpp
index e3826d3..a65da50 100644
--- a/glm/vec2.hpp
+++ b/glm/vec2.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/vec2.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/vec3.hpp b/glm/vec3.hpp
index 4905f02..bc84e3e 100644
--- a/glm/vec3.hpp
+++ b/glm/vec3.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/vec3.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/vec4.hpp b/glm/vec4.hpp
index 4bc84c9..8f1fef1 100644
--- a/glm/vec4.hpp
+++ b/glm/vec4.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/vec4.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/glm/vector_relational.hpp b/glm/vector_relational.hpp
index e2091fa..18fb6c8 100644
--- a/glm/vector_relational.hpp
+++ b/glm/vector_relational.hpp
@@ -1,34 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
/// @ref core
/// @file glm/vector_relational.hpp
-/// @date 2013-12-24 / 2013-12-24
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
#pragma once
diff --git a/readme.md b/readme.md
index d0491c1..69d0df4 100644
--- a/readme.md
+++ b/readme.md
@@ -51,6 +51,61 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
## Release notes
+#### [GLM 0.9.8.0](https://github.com/g-truc/glm/tree/0.9.8) - 2016-09-11
+##### Features:
+- Added right and left handed projection and clip control support #447 #415 #119
+- Added compNormalize and compScale functions to GTX_component_wise
+- Added packF3x9_E1x5 and unpackF3x9_E1x5 to GTC_packing for RGB9E5 #416
+- Added (un)packHalf to GTC_packing
+- Added (un)packUnorm and (un)packSnorm to GTC_packing
+- Added 16bit pack and unpack to GTC_packing
+- Added 8bit pack and unpack to GTC_packing
+- Added missing bvec* && and || operators
+- Added iround and uround to GTC_integer, fast round on positive values
+- Added raw SIMD API
+- Added 'aligned' qualifiers
+- Added GTC_type_aligned with aligned *vec* types
+- Added GTC_functions extension
+- Added quaternion version of isnan and isinf #521
+- Added lowestBitValue to GTX_bit #536
+- Added GLM_FORCE_UNRESTRICTED_GENTYPE allowing non basic genType #543
+
+##### Improvements:
+- Improved SIMD and swizzle operators interactions with GCC and Clang #474
+- Improved GTC_random linearRand documentation
+- Improved GTC_reciprocal documentation
+- Improved GLM_FORCE_EXPLICIT_CTOR coverage #481
+- Improved OpenMP support detection for Clang, GCC, ICC and VC
+- Improved GTX_wrap for SIMD friendliness
+- Added constexpr for *vec*, *mat*, *quat* and *dual_quat* types #493
+- Added NEON instruction set detection
+- Added MIPS CPUs detection
+- Added PowerPC CPUs detection
+- Use Cuda built-in function for abs function implementation with Cuda compiler
+- Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG
+- No more warnings for use of long long
+- Added more information to build messages
+
+##### Fixes:
+- Fixed GTX_extended_min_max filename typo #386
+- Fixed intersectRayTriangle to not do any unintentional backface culling
+- Fixed long long warnings when using C++98 on GCC and Clang #482
+- Fixed sign with signed integer function on non-x86 architecture
+- Fixed strict aliasing warnings #473
+- Fixed missing vec1 overload to length2 and distance2 functions #431
+- Fixed GLM test '/fp:fast' and '/Za' command-line options are incompatible
+- Fixed quaterion to mat3 cast function mat3_cast from GTC_quaternion #542
+- Fixed GLM_GTX_io for Cuda #547 #546
+
+##### Deprecation:
+- Removed GLM_FORCE_SIZE_FUNC define
+- Deprecated GLM_GTX_simd_vec4 extension
+- Deprecated GLM_GTX_simd_mat4 extension
+- Deprecated GLM_GTX_simd_quat extension
+- Deprecated GLM_SWIZZLE, use GLM_FORCE_SWIZZLE instead
+- Deprecated GLM_MESSAGES, use GLM_FORCE_MESSAGES instead
+
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.6](https://github.com/g-truc/glm/releases/tag/0.9.7.6) - 2016-07-16
##### Improvements:
- Added pkg-config file #509
@@ -63,6 +118,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed long long warnings when using C++98 on GCC and Clang #482
- Fixed scalar reciprocal functions (GTC_reciprocal) #520
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
##### Improvements:
- Added Visual C++ Clang toolset detection
@@ -76,6 +132,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed GTX_extended_min_max filename typo #386
- Fixed intersectRayTriangle to not do any unintentional backface culling
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.4](https://github.com/g-truc/glm/releases/tag/0.9.7.4) - 2016-03-19
##### Fixes:
- Fixed asinh and atanh warning with C++98 STL #484
@@ -86,6 +143,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed missing GLM_PLATFORM_CYGWIN declaration #495
- Fixed various undefined reference errors #490
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.3](https://github.com/g-truc/glm/releases/tag/0.9.7.3) - 2016-02-21
##### Improvements:
- Added AVX512 detection
@@ -96,6 +154,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed Clang build on Windows #479
- Fixed 64 bits constants warnings on GCC #463
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03
##### Fixes:
- Fixed GTC_round floorMultiple/ceilMultiple #412
@@ -109,6 +168,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed missing unary + operator #435
- Fixed Cygwin build errors when using C++11 #405
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.1](https://github.com/g-truc/glm/releases/tag/0.9.7.1) - 2015-09-07
##### Improvements:
- Improved constexpr for constant functions coverage #198
@@ -125,6 +185,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed builtin bitscan never being used #392
- Removed unused func_noise.* files #398
+--------------------------------------------------------------------------------
#### [GLM 0.9.7.0](https://github.com/g-truc/glm/releases/tag/0.9.7.0) - 2015-08-02
##### Features:
- Added GTC_color_space: convertLinearToSRGB and convertSRGBToLinear functions
@@ -205,7 +266,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
##### Fixes:
- Fixed scalar uaddCarry build error with Cuda #276
- Fixed C++11 explicit conversion operators detection #282
-- Fixed missing explicit convertion when using integer log2 with *vec1 types
+- Fixed missing explicit conversion when using integer log2 with *vec1 types
- Fixed 64 bits integer GTX_string_cast to_string on VC 32 bit compiler
- Fixed Android build issue, STL C++11 is not supported by the NDK #284
- Fixed unsupported _BitScanForward64 and _BitScanReverse64 in VC10
@@ -435,7 +496,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Fixed isnan and isinf for CUDA compiler
- Fixed GLM_FORCE_RADIANS on glm::perspective
- Fixed GCC warnings
-- Fixed packDouble2x32 on XCode
+- Fixed packDouble2x32 on Xcode
- Fixed mix for vec4 SSE implementation
- Fixed 0x2013 dash character in comments that cause issue in Windows
Japanese mode
@@ -526,7 +587,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Promoted GLM_GTC_noise extension: simplex, perlin, periodic noise functions
- Promoted GLM_GTC_random extension: linear, gaussian and various random number
generation distribution
-- Added GLM_GTX_constants: provides usefull constants
+- Added GLM_GTX_constants: provides useful constants
- Added extension versioning
- Removed many unused namespaces
- Fixed half based type contructors
diff --git a/test/.DS_Store b/test/.DS_Store
deleted file mode 100644
index 8ade767..0000000
Binary files a/test/.DS_Store and /dev/null differ
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index c2b7953..21f17ea 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -4,8 +4,8 @@ function(glmCreateTestGTC NAME)
add_executable(${SAMPLE_NAME} ${NAME}.cpp)
add_test(
- NAME ${SAMPLE_NAME}
- COMMAND $<TARGET_FILE:${SAMPLE_NAME}> )
+ NAME ${SAMPLE_NAME}
+ COMMAND $<TARGET_FILE:${SAMPLE_NAME}> )
endif(GLM_TEST_ENABLE)
endfunction()
diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt
index 130b85a..5d707c4 100644
--- a/test/core/CMakeLists.txt
+++ b/test/core/CMakeLists.txt
@@ -3,7 +3,6 @@ glmCreateTestGTC(core_type_ctor)
glmCreateTestGTC(core_type_float)
glmCreateTestGTC(core_type_int)
glmCreateTestGTC(core_type_length)
-glmCreateTestGTC(core_type_length_size)
glmCreateTestGTC(core_type_mat2x2)
glmCreateTestGTC(core_type_mat2x3)
glmCreateTestGTC(core_type_mat2x4)
diff --git a/test/core/core_func_common.cpp b/test/core/core_func_common.cpp
index 9a42d09..10bd45a 100644
--- a/test/core/core_func_common.cpp
+++ b/test/core/core_func_common.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_common.cpp
-/// @date 2011-01-15 / 2011-09-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#define GLM_FORCE_EXPLICIT_CTOR
#include <glm/common.hpp>
#include <glm/gtc/constants.hpp>
@@ -444,7 +413,7 @@ namespace mix_
entry<glm::vec4, glm::bvec4> TestBVec4[] =
{
- {glm::vec4(0.0f), glm::vec4(1.0f), glm::bvec4(false), glm::vec4(0.0f)},
+ {glm::vec4(0.0f, 0.0f, 1.0f, 1.0f), glm::vec4(2.0f, 2.0f, 3.0f, 3.0f), glm::bvec4(false, true, false, true), glm::vec4(0.0f, 2.0f, 1.0f, 3.0f)},
{glm::vec4(0.0f), glm::vec4(1.0f), glm::bvec4(true), glm::vec4(1.0f)},
{glm::vec4(-1.0f), glm::vec4(1.0f), glm::bvec4(false), glm::vec4(-1.0f)},
{glm::vec4(-1.0f), glm::vec4(1.0f), glm::bvec4(true), glm::vec4(1.0f)},
@@ -555,8 +524,8 @@ namespace step_
entry<float, glm::vec4> TestVec4Scalar [] =
{
- { 0.0f, glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) },
{ 1.0f, glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) },
+ { 0.0f, glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) },
{ 0.0f, glm::vec4(-1.0f, -2.0f, -3.0f, -4.0f), glm::vec4(0.0f) }
};
@@ -599,7 +568,7 @@ namespace round_
int test()
{
int Error = 0;
-
+
{
float A = glm::round(0.0f);
Error += A == 0.0f ? 0 : 1;
@@ -986,12 +955,37 @@ namespace sign
return Error;
}
+ int test_f32vec4()
+ {
+ type<glm::vec4> const Data[] =
+ {
+ {glm::vec4( 1), glm::vec4( 1)},
+ {glm::vec4( 0), glm::vec4( 0)},
+ {glm::vec4( 2), glm::vec4( 1)},
+ {glm::vec4( 3), glm::vec4( 1)},
+ {glm::vec4(-1), glm::vec4(-1)},
+ {glm::vec4(-2), glm::vec4(-1)},
+ {glm::vec4(-3), glm::vec4(-1)}
+ };
+
+ int Error = 0;
+
+ for(std::size_t i = 0; i < sizeof(Data) / sizeof(type<glm::vec4>); ++i)
+ {
+ glm::vec4 Result = glm::sign(Data[i].Value);
+ Error += glm::all(glm::equal(Data[i].Return, Result)) ? 0 : 1;
+ }
+
+ return Error;
+ }
+
int test()
{
int Error = 0;
Error += test_int32();
Error += test_i32vec4();
+ Error += test_f32vec4();
return Error;
}
@@ -1235,7 +1229,21 @@ namespace ldexp_
int main()
{
- int Error(0);
+ int Error = 0;
+
+ glm::ivec4 const a(1);
+ glm::ivec4 const b = ~a;
+
+ glm::int32 const c(1);
+ glm::int32 const d = ~c;
+
+# if GLM_ARCH & GLM_ARCH_AVX_BIT && GLM_HAS_UNRESTRICTED_UNIONS
+ glm_vec4 const A = _mm_set_ps(4, 3, 2, 1);
+ glm_vec4 const B = glm_vec4_swizzle_xyzw(A);
+ glm_vec4 const C = _mm_permute_ps(A, _MM_SHUFFLE(3, 2, 1, 0));
+ glm_vec4 const D = _mm_permute_ps(A, _MM_SHUFFLE(0, 1, 2, 3));
+ glm_vec4 const E = _mm_shuffle_ps(A, A, _MM_SHUFFLE(0, 1, 2, 3));
+# endif
Error += sign::test();
Error += floor_::test();
@@ -1243,10 +1251,10 @@ int main()
Error += modf_::test();
Error += floatBitsToInt::test();
Error += floatBitsToUint::test();
+ Error += mix_::test();
Error += step_::test();
Error += max_::test();
Error += min_::test();
- Error += mix_::test();
Error += round_::test();
Error += roundEven::test();
Error += isnan_::test();
diff --git a/test/core/core_func_exponential.cpp b/test/core/core_func_exponential.cpp
index 8894e5d..f231e9e 100644
--- a/test/core/core_func_exponential.cpp
+++ b/test/core/core_func_exponential.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_exponential.cpp
-/// @date 2011-01-15 / 2011-09-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/common.hpp>
#include <glm/exponential.hpp>
#include <glm/gtc/ulp.hpp>
@@ -103,6 +72,16 @@ int test_sqrt()
{
int Error(0);
+# if GLM_ARCH & GLM_ARCH_SSE2_BIT
+ for(float f = 0.1f; f < 30.0f; f += 0.1f)
+ {
+ float r = _mm_cvtss_f32(_mm_sqrt_ps(_mm_set1_ps(f)));
+ float s = std::sqrt(f);
+ Error += glm::abs(r - s) < 0.01f ? 0 : 1;
+ assert(!Error);
+ }
+# endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
+
float A = glm::sqrt(10.f);
glm::vec1 B = glm::sqrt(glm::vec1(10.f));
glm::vec2 C = glm::sqrt(glm::vec2(10.f));
diff --git a/test/core/core_func_geometric.cpp b/test/core/core_func_geometric.cpp
index 989773e..f284c50 100644
--- a/test/core/core_func_geometric.cpp
+++ b/test/core/core_func_geometric.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_geometric.cpp
-/// @date 2011-01-15 / 2011-09-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/geometric.hpp>
#include <glm/vector_relational.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -118,6 +87,13 @@ namespace normalize
glm::vec3 Normalize1 = glm::normalize(glm::vec3(1, 0, 0));
glm::vec3 Normalize2 = glm::normalize(glm::vec3(2, 0, 0));
+ glm::vec3 Normalize3 = glm::normalize(glm::vec3(-0.6, 0.7, -0.5));
+
+ glm::vec3 ro = glm::vec3(glm::cos(5.f) * 3.f, 2.f, glm::sin(5.f) * 3.f);
+ glm::vec3 w = glm::normalize(glm::vec3(0, -0.2f, 0) - ro);
+ glm::vec3 u = glm::normalize(glm::cross(w, glm::vec3(0, 1, 0)));
+ glm::vec3 v = glm::cross(u, w);
+
int Error = 0;
Error += glm::all(glm::lessThan(glm::abs(Normalize1 - glm::vec3(1, 0, 0)), glm::vec3(std::numeric_limits<float>::epsilon()))) ? 0 : 1;
diff --git a/test/core/core_func_integer.cpp b/test/core/core_func_integer.cpp
index 40c5d08..267498c 100644
--- a/test/core/core_func_integer.cpp
+++ b/test/core/core_func_integer.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_integer.cpp
-/// @date 2011-01-15 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/integer.hpp>
#include <glm/vector_relational.hpp>
#include <glm/gtc/vec1.hpp>
@@ -560,8 +529,8 @@ namespace bitfieldReverse
{
int Error = 0;
- Error += perf32(Samples);
- Error += perf64(Samples);
+ Error += perf32(static_cast<glm::uint32>(Samples));
+ Error += perf64(static_cast<glm::uint64>(Samples));
return Error;
}
@@ -1490,7 +1459,7 @@ namespace bitCount
// bitCount - TimeIf
{
for(std::size_t i = 0, n = v.size(); i < n; ++i)
- v[i] = bitCount_if(i);
+ v[i] = bitCount_if(static_cast<int>(i));
}
std::clock_t TimestampsB = std::clock();
diff --git a/test/core/core_func_integer_bit_count.cpp b/test/core/core_func_integer_bit_count.cpp
index 6349a49..3cb922a 100644
--- a/test/core/core_func_integer_bit_count.cpp
+++ b/test/core/core_func_integer_bit_count.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_integer_bit_count.cpp
-/// @date 2011-01-15 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
// This has the programs for computing the number of 1-bits
// in a word, or byte, etc.
// Max line length is 57, to fit in hacker.book.
diff --git a/test/core/core_func_integer_find_lsb.cpp b/test/core/core_func_integer_find_lsb.cpp
index f37a6f7..493ff3a 100644
--- a/test/core/core_func_integer_find_lsb.cpp
+++ b/test/core/core_func_integer_find_lsb.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_integer_find_lsb.cpp
-/// @date 2014-10-27 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
// This has the programs for computing the number of trailing zeros
// in a word.
// Max line length is 57, to fit in hacker.book.
diff --git a/test/core/core_func_integer_find_msb.cpp b/test/core/core_func_integer_find_msb.cpp
index 02cc797..7fac727 100644
--- a/test/core/core_func_integer_find_msb.cpp
+++ b/test/core/core_func_integer_find_msb.cpp
@@ -1,33 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_integer_find_msb.cpp
-/// @date 2014-10-27 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
// This has the programs for computing the number of leading zeros
// in a word.
// Max line length is 57, to fit in hacker.book.
diff --git a/test/core/core_func_matrix.cpp b/test/core/core_func_matrix.cpp
index 3fcb118..4d1dc6d 100644
--- a/test/core/core_func_matrix.cpp
+++ b/test/core/core_func_matrix.cpp
@@ -1,37 +1,7 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_matrix.cpp
-/// @date 2007-01-25 / 2011-06-07
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/matrix.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/ulp.hpp>
+#include <glm/gtc/epsilon.hpp>
#include <vector>
#include <ctime>
#include <cstdio>
@@ -105,14 +75,14 @@ int test_outerProduct()
{ glm::mat3 m = glm::outerProduct(glm::vec3(1.0f), glm::vec3(1.0f)); }
{ glm::mat4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec4(1.0f)); }
- { glm::mat2x3 m = glm::outerProduct(glm::vec3(1.0f), glm::vec2(1.0f)); }
- { glm::mat2x4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec2(1.0f)); }
+ { glm::mat2x3 m = glm::outerProduct(glm::vec3(1.0f), glm::vec2(1.0f)); }
+ { glm::mat2x4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec2(1.0f)); }
- { glm::mat3x2 m = glm::outerProduct(glm::vec2(1.0f), glm::vec3(1.0f)); }
- { glm::mat3x4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec3(1.0f)); }
+ { glm::mat3x2 m = glm::outerProduct(glm::vec2(1.0f), glm::vec3(1.0f)); }
+ { glm::mat3x4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec3(1.0f)); }
- { glm::mat4x2 m = glm::outerProduct(glm::vec2(1.0f), glm::vec4(1.0f)); }
- { glm::mat4x3 m = glm::outerProduct(glm::vec3(1.0f), glm::vec4(1.0f)); }
+ { glm::mat4x2 m = glm::outerProduct(glm::vec2(1.0f), glm::vec4(1.0f)); }
+ { glm::mat4x3 m = glm::outerProduct(glm::vec3(1.0f), glm::vec4(1.0f)); }
return 0;
}
@@ -213,9 +183,29 @@ int test_inverse()
glm::mat2x2 I2x2 = A2x2 * B2x2;
Failed += I2x2 == glm::mat2x2(1) ? 0 : 1;
+ return Failed;
+}
+int test_inverse_simd()
+{
+ int Error = 0;
- return Failed;
+ glm::mat4x4 const Identity(1);
+
+ glm::mat4x4 const A4x4(
+ glm::vec4(1, 0, 1, 0),
+ glm::vec4(0, 1, 0, 0),
+ glm::vec4(0, 0, 1, 0),
+ glm::vec4(0, 0, 0, 1));
+ glm::mat4x4 const B4x4 = glm::inverse(A4x4);
+ glm::mat4x4 const I4x4 = A4x4 * B4x4;
+
+ Error += glm::all(glm::epsilonEqual(I4x4[0], Identity[0], 0.001f)) ? 0 : 1;
+ Error += glm::all(glm::epsilonEqual(I4x4[1], Identity[1], 0.001f)) ? 0 : 1;
+ Error += glm::all(glm::epsilonEqual(I4x4[2], Identity[2], 0.001f)) ? 0 : 1;
+ Error += glm::all(glm::epsilonEqual(I4x4[3], Identity[3], 0.001f)) ? 0 : 1;
+
+ return Error;
}
template <typename VEC3, typename MAT4>
@@ -271,6 +261,7 @@ int main()
Error += test_transpose();
Error += test_determinant();
Error += test_inverse();
+ Error += test_inverse_simd();
# ifdef NDEBUG
std::size_t const Samples(1000);
diff --git a/test/core/core_func_noise.cpp b/test/core/core_func_noise.cpp
index 64feeb4..1f87304 100644
--- a/test/core/core_func_noise.cpp
+++ b/test/core/core_func_noise.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_noise.cpp
-/// @date 2011-01-15 / 2011-09-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
int main()
{
int Failed = 0;
diff --git a/test/core/core_func_packing.cpp b/test/core/core_func_packing.cpp
index 4cfaee9..9aaa78e 100644
--- a/test/core/core_func_packing.cpp
+++ b/test/core/core_func_packing.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/func_packing.cpp
-/// @date 2011-01-15 / 2011-09-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/vector_relational.hpp>
@@ -80,7 +49,13 @@ int test_packSnorm2x16()
int test_packUnorm4x8()
{
int Error = 0;
-
+
+ glm::uint32 Packed = glm::packUnorm4x8(glm::vec4(1.0f, 0.5f, 0.0f, 1.0f));
+ glm::u8vec4 Vec(255, 128, 0, 255);
+ glm::uint32 & Ref = *reinterpret_cast<glm::uint32*>(&Vec[0]);
+
+ Error += Packed == Ref ? 0 : 1;
+
std::vector<glm::vec4> A;
A.push_back(glm::vec4(1.0f, 0.7f, 0.3f, 0.0f));
A.push_back(glm::vec4(0.5f, 0.1f, 0.2f, 0.3f));
diff --git a/test/core/core_func_swizzle.cpp b/test/core/core_func_swizzle.cpp
index 7d2985a..3e7d1e3 100644
--- a/test/core/core_func_swizzle.cpp
+++ b/test/core/core_func_swizzle.cpp
@@ -1,36 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_func_swizzle.cpp
-/// @date 2011-10-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#define GLM_MESSAGES
-#define GLM_SWIZZLE
+#define GLM_FORCE_MESSAGES
+#define GLM_FORCE_SWIZZLE
#include <glm/glm.hpp>
int test_ivec2_swizzle()
@@ -83,11 +52,12 @@ int test_vec4_swizzle()
glm::vec4 B = A.wzyx();
glm::vec4 C = B.wzyx();
- float f = glm::dot(C.wzyx(), C.xyzw());
-
Error += A != B ? 0 : 1;
Error += A == C ? 0 : 1;
+ float f = glm::dot(C.wzyx(), C.xyzw());
+ Error += glm::abs(f - 20.f) < 0.01f ? 0 : 1;
+
return Error;
}
diff --git a/test/core/core_func_trigonometric.cpp b/test/core/core_func_trigonometric.cpp
index 84b06d6..9f3b88c 100644
--- a/test/core/core_func_trigonometric.cpp
+++ b/test/core/core_func_trigonometric.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_func_trigonometric.cpp
-/// @date 2011-01-15 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/trigonometric.hpp>
int main()
diff --git a/test/core/core_func_vector_relational.cpp b/test/core/core_func_vector_relational.cpp
index 20300a1..3fb230e 100644
--- a/test/core/core_func_vector_relational.cpp
+++ b/test/core/core_func_vector_relational.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_vector_relational.cpp
-/// @date 2011-01-15 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
diff --git a/test/core/core_setup_force_cxx98.cpp b/test/core/core_setup_force_cxx98.cpp
index cca67da..bd83820 100644
--- a/test/core/core_setup_force_cxx98.cpp
+++ b/test/core/core_setup_force_cxx98.cpp
@@ -1,35 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @ref test
-/// @file test/core/core_setup_force_cxx98.cpp
-/// @date 2014-11-15 / 2014-11-15
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#define GLM_FORCE_CXX98
#include <glm/glm.hpp>
#include <glm/ext.hpp>
diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp
index 8504a29..249196e 100644
--- a/test/core/core_setup_message.cpp
+++ b/test/core/core_setup_message.cpp
@@ -1,13 +1,4 @@
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
-///////////////////////////////////////////////////////////////////////////////////////////////////
-// Created : 2011-05-31
-// Updated : 2013-08-27
-// Licence : This source is under MIT License
-// File : test/core/setup_message.cpp
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-#define GLM_MESSAGES
+#define GLM_FORCE_MESSAGES
#include <glm/vec3.hpp>
#include <cstdio>
@@ -105,69 +96,33 @@ int test_compiler()
{
std::printf("GLM_COMPILER_CUDA\n");
}
- else if(GLM_COMPILER & GLM_COMPILER_APPLE_CLANG)
- {
- switch(GLM_COMPILER)
- {
- case GLM_COMPILER_APPLE_CLANG40:
- std::printf("GLM_COMPILER_APPLE_CLANG40\n");
- break;
- case GLM_COMPILER_APPLE_CLANG41:
- std::printf("GLM_COMPILER_APPLE_CLANG41\n");
- break;
- case GLM_COMPILER_APPLE_CLANG42:
- std::printf("GLM_COMPILER_APPLE_CLANG42\n");
- break;
- case GLM_COMPILER_APPLE_CLANG50:
- std::printf("GLM_COMPILER_APPLE_CLANG50\n");
- break;
- case GLM_COMPILER_APPLE_CLANG51:
- std::printf("GLM_COMPILER_APPLE_CLANG51\n");
- break;
- case GLM_COMPILER_APPLE_CLANG60:
- std::printf("GLM_COMPILER_APPLE_CLANG60\n");
- break;
- case GLM_COMPILER_APPLE_CLANG61:
- std::printf("GLM_COMPILER_APPLE_CLANG61\n");
- break;
- case GLM_COMPILER_APPLE_CLANG70:
- std::printf("GLM_COMPILER_APPLE_CLANG70\n");
- break;
- case GLM_COMPILER_APPLE_CLANG73:
- std::printf("GLM_COMPILER_APPLE_CLANG73\n");
- break;
- default:
- std::printf("Apple Clang version not detected\n");
- break;
- }
- }
- else if(GLM_COMPILER & GLM_COMPILER_LLVM)
+ else if(GLM_COMPILER & GLM_COMPILER_CLANG)
{
switch(GLM_COMPILER)
{
- case GLM_COMPILER_LLVM32:
- std::printf("GLM_COMPILER_LLVM32\n");
+ case GLM_COMPILER_CLANG32:
+ std::printf("GLM_COMPILER_CLANG32\n");
break;
- case GLM_COMPILER_LLVM33:
- std::printf("GLM_COMPILER_LLVM33\n");
+ case GLM_COMPILER_CLANG33:
+ std::printf("GLM_COMPILER_CLANG33\n");
break;
- case GLM_COMPILER_LLVM34:
- std::printf("GLM_COMPILER_LLVM34\n");
+ case GLM_COMPILER_CLANG34:
+ std::printf("GLM_COMPILER_CLANG34\n");
break;
- case GLM_COMPILER_LLVM35:
- std::printf("GLM_COMPILER_LLVM35\n");
+ case GLM_COMPILER_CLANG35:
+ std::printf("GLM_COMPILER_CLANG35\n");
break;
- case GLM_COMPILER_LLVM36:
- std::printf("GLM_COMPILER_LLVM36\n");
+ case GLM_COMPILER_CLANG36:
+ std::printf("GLM_COMPILER_CLANG36\n");
break;
- case GLM_COMPILER_LLVM37:
- std::printf("GLM_COMPILER_LLVM37\n");
+ case GLM_COMPILER_CLANG37:
+ std::printf("GLM_COMPILER_CLANG37\n");
break;
- case GLM_COMPILER_LLVM38:
- std::printf("GLM_COMPILER_LLVM38\n");
+ case GLM_COMPILER_CLANG38:
+ std::printf("GLM_COMPILER_CLANG38\n");
break;
- case GLM_COMPILER_LLVM39:
- std::printf("GLM_COMPILER_LLVM39\n");
+ case GLM_COMPILER_CLANG39:
+ std::printf("GLM_COMPILER_CLANG39\n");
break;
default:
std::printf("LLVM version not detected\n");
@@ -233,18 +188,24 @@ int test_instruction_set()
if(GLM_ARCH == GLM_ARCH_PURE)
std::printf("GLM_ARCH_PURE ");
- if(GLM_ARCH & GLM_ARCH_ARM)
- std::printf("GLM_ARCH_ARM ");
+ if(GLM_ARCH & GLM_ARCH_ARM_BIT)
+ std::printf("ARM ");
+ if(GLM_ARCH & GLM_ARCH_NEON_BIT)
+ std::printf("NEON ");
if(GLM_ARCH & GLM_ARCH_AVX2)
- std::printf("GLM_ARCH_AVX2 ");
- if(GLM_ARCH & GLM_ARCH_AVX)
- std::printf("GLM_ARCH_AVX ");
+ std::printf("AVX2 ");
if(GLM_ARCH & GLM_ARCH_AVX)
- std::printf("GLM_ARCH_SSE4 ");
- if(GLM_ARCH & GLM_ARCH_SSE3)
- std::printf("GLM_ARCH_SSE3 ");
- if(GLM_ARCH & GLM_ARCH_SSE2)
- std::printf("GLM_ARCH_SSE2 ");
+ std::printf("AVX ");
+ if(GLM_ARCH & GLM_ARCH_SSE42_BIT)
+ std::printf("SSE4.2 ");
+ if(GLM_ARCH & GLM_ARCH_SSE41_BIT)
+ std::printf("SSE4.1 ");
+ if(GLM_ARCH & GLM_ARCH_SSSE3_BIT)
+ std::printf("SSSE3 ");
+ if(GLM_ARCH & GLM_ARCH_SSE3_BIT)
+ std::printf("SSE3 ");
+ if(GLM_ARCH & GLM_ARCH_SSE2_BIT)
+ std::printf("SSE2 ");
std::printf("\n");
@@ -253,7 +214,7 @@ int test_instruction_set()
int test_cpp_version()
{
- std::printf("__cplusplus: %ld\n", __cplusplus);
+ std::printf("__cplusplus: %lld\n", __cplusplus);
return 0;
}
diff --git a/test/core/core_setup_precision.cpp b/test/core/core_setup_precision.cpp
index 4caf2ed..84fa5d6 100644
--- a/test/core/core_setup_precision.cpp
+++ b/test/core/core_setup_precision.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_setup_precision.cpp
-/// @date 2011-05-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#define GLM_FORCE_INLINE
#define GLM_PRECISION_HIGHP_FLOAT
#include <glm/glm.hpp>
diff --git a/test/core/core_type_cast.cpp b/test/core/core_type_cast.cpp
index d7c1098..ae400ba 100644
--- a/test/core/core_type_cast.cpp
+++ b/test/core/core_type_cast.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_cast.cpp
-/// @date 2013-05-06 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
#include <algorithm>
#include <vector>
diff --git a/test/core/core_type_ctor.cpp b/test/core/core_type_ctor.cpp
index 5b19cf5..1011ed5 100644
--- a/test/core/core_type_ctor.cpp
+++ b/test/core/core_type_ctor.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_ctor.cpp
-/// @date 2015-07-25 / 2015-07-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#define GLM_FORCE_NO_CTOR_INIT
#include <glm/glm.hpp>
#include <glm/gtc/vec1.hpp>
@@ -193,10 +162,12 @@ int test_mat2x4_ctor()
} A, B;
A.f = glm::mat2x4(0);
- Error += glm::all(glm::equal(A.i[0], glm::vec4(0))) ? 0 : 1;
+ glm::vec4 const C(0, 0, 0, 0);
+ Error += glm::all(glm::equal(A.i[0], C)) ? 0 : 1;
B.f = glm::mat2x4(1);
- Error += glm::all(glm::equal(B.i[0], glm::vec4(1, 0, 0, 0))) ? 0 : 1;
+ glm::vec4 const D(1, 0, 0, 0);
+ Error += glm::all(glm::equal(B.i[0], D)) ? 0 : 1;
}
# endif//GLM_HAS_DEFAULTED_FUNCTIONS
diff --git a/test/core/core_type_float.cpp b/test/core/core_type_float.cpp
index 65b2565..7abeb54 100644
--- a/test/core/core_type_float.cpp
+++ b/test/core/core_type_float.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_float.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
int test_float_size()
diff --git a/test/core/core_type_int.cpp b/test/core/core_type_int.cpp
index 81b638f..e36c057 100644
--- a/test/core/core_type_int.cpp
+++ b/test/core/core_type_int.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_int.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
int test_int_size()
diff --git a/test/core/core_type_length.cpp b/test/core/core_type_length.cpp
index 7b91d38..f45afc5 100644
--- a/test/core/core_type_length.cpp
+++ b/test/core/core_type_length.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_length.cpp
-/// @date 2011-05-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
int test_length_mat_non_squared()
diff --git a/test/core/core_type_length_size.cpp b/test/core/core_type_length_size.cpp
deleted file mode 100644
index 51cbb89..0000000
--- a/test/core/core_type_length_size.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_length_size.cpp
-/// @date 2011-05-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#define GLM_FORCE_SIZE_FUNC
-#include <glm/glm.hpp>
-#include <glm/gtc/vec1.hpp>
-
-int test_length_mat_non_squared()
-{
- int Error = 0;
-
- Error += glm::mat2x3().size() == 2 ? 0 : 1;
- Error += glm::mat2x4().size() == 2 ? 0 : 1;
- Error += glm::mat3x2().size() == 3 ? 0 : 1;
- Error += glm::mat3x4().size() == 3 ? 0 : 1;
- Error += glm::mat4x2().size() == 4 ? 0 : 1;
- Error += glm::mat4x3().size() == 4 ? 0 : 1;
-
- Error += glm::dmat2x3().size() == 2 ? 0 : 1;
- Error += glm::dmat2x4().size() == 2 ? 0 : 1;
- Error += glm::dmat3x2().size() == 3 ? 0 : 1;
- Error += glm::dmat3x4().size() == 3 ? 0 : 1;
- Error += glm::dmat4x2().size() == 4 ? 0 : 1;
- Error += glm::dmat4x3().size() == 4 ? 0 : 1;
-
- return Error;
-}
-
-int test_length_mat()
-{
- int Error = 0;
-
- Error += glm::mat2().size() == 2 ? 0 : 1;
- Error += glm::mat3().size() == 3 ? 0 : 1;
- Error += glm::mat4().size() == 4 ? 0 : 1;
- Error += glm::mat2x2().size() == 2 ? 0 : 1;
- Error += glm::mat3x3().size() == 3 ? 0 : 1;
- Error += glm::mat4x4().size() == 4 ? 0 : 1;
-
- Error += glm::dmat2().size() == 2 ? 0 : 1;
- Error += glm::dmat3().size() == 3 ? 0 : 1;
- Error += glm::dmat4().size() == 4 ? 0 : 1;
- Error += glm::dmat2x2().size() == 2 ? 0 : 1;
- Error += glm::dmat3x3().size() == 3 ? 0 : 1;
- Error += glm::dmat4x4().size() == 4 ? 0 : 1;
-
- return Error;
-}
-
-int test_length_vec()
-{
-
- int Error = 0;
-
- Error += glm::vec1().size() == 1 ? 0 : 1;
- Error += glm::vec2().size() == 2 ? 0 : 1;
- Error += glm::vec3().size() == 3 ? 0 : 1;
- Error += glm::vec4().size() == 4 ? 0 : 1;
-
- Error += glm::ivec1().size() == 1 ? 0 : 1;
- Error += glm::ivec2().size() == 2 ? 0 : 1;
- Error += glm::ivec3().size() == 3 ? 0 : 1;
- Error += glm::ivec4().size() == 4 ? 0 : 1;
-
- Error += glm::uvec1().size() == 1 ? 0 : 1;
- Error += glm::uvec2().size() == 2 ? 0 : 1;
- Error += glm::uvec3().size() == 3 ? 0 : 1;
- Error += glm::uvec4().size() == 4 ? 0 : 1;
-
- Error += glm::dvec1().size() == 1 ? 0 : 1;
- Error += glm::dvec2().size() == 2 ? 0 : 1;
- Error += glm::dvec3().size() == 3 ? 0 : 1;
- Error += glm::dvec4().size() == 4 ? 0 : 1;
-
- return Error;
-}
-
-int main()
-{
- int Error = 0;
-
- Error += test_length_vec();
- Error += test_length_mat();
- Error += test_length_mat_non_squared();
-
- return Error;
-}
-
diff --git a/test/core/core_type_mat2x2.cpp b/test/core/core_type_mat2x2.cpp
index de8416a..5e1e5ad 100644
--- a/test/core/core_type_mat2x2.cpp
+++ b/test/core/core_type_mat2x2.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat2x2.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/epsilon.hpp>
#include <glm/matrix.hpp>
#include <glm/vector_relational.hpp>
@@ -167,11 +136,6 @@ int main()
{
int Error(0);
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat2::rows == glm::mat2::row_type::components);
- assert(glm::mat2::cols == glm::mat2::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat2x3.cpp b/test/core/core_type_mat2x3.cpp
index 510cbf5..9e452f0 100644
--- a/test/core/core_type_mat2x3.cpp
+++ b/test/core/core_type_mat2x3.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat2x3.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -141,11 +110,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat2x3::rows == glm::mat2x3::row_type::components);
- assert(glm::mat2x3::cols == glm::mat2x3::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat2x4.cpp b/test/core/core_type_mat2x4.cpp
index 3a46659..8bb3dff 100644
--- a/test/core/core_type_mat2x4.cpp
+++ b/test/core/core_type_mat2x4.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat2x4.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -98,7 +67,7 @@ int test_ctr()
};
#endif//GLM_HAS_INITIALIZER_LISTS
-
+
return Error;
}
@@ -141,11 +110,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat2x4::rows == glm::mat2x4::row_type::components);
- assert(glm::mat2x4::cols == glm::mat2x4::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat3x2.cpp b/test/core/core_type_mat3x2.cpp
index 2730f85..74084b2 100644
--- a/test/core/core_type_mat3x2.cpp
+++ b/test/core/core_type_mat3x2.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat3x2.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -145,11 +114,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat3x2::rows == glm::mat3x2::row_type::components);
- assert(glm::mat3x2::cols == glm::mat3x2::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat3x3.cpp b/test/core/core_type_mat3x3.cpp
index 2d10df2..44d2ba9 100644
--- a/test/core/core_type_mat3x3.cpp
+++ b/test/core/core_type_mat3x3.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat3x3.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/epsilon.hpp>
#include <glm/matrix.hpp>
#include <glm/vector_relational.hpp>
@@ -204,11 +173,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat3::rows == glm::mat3::row_type::components);
- assert(glm::mat3::cols == glm::mat3::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_mat3x3();
diff --git a/test/core/core_type_mat3x4.cpp b/test/core/core_type_mat3x4.cpp
index e06b128..bec2926 100644
--- a/test/core/core_type_mat3x4.cpp
+++ b/test/core/core_type_mat3x4.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat3x4.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -145,11 +114,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat3x4::rows == glm::mat3x4::row_type::components);
- assert(glm::mat3x4::cols == glm::mat3x4::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat4x2.cpp b/test/core/core_type_mat4x2.cpp
index 7494bb2..313d247 100644
--- a/test/core/core_type_mat4x2.cpp
+++ b/test/core/core_type_mat4x2.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat4x2.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -149,11 +118,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat4x2::rows == glm::mat4x2::row_type::components);
- assert(glm::mat4x2::cols == glm::mat4x2::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat4x3.cpp b/test/core/core_type_mat4x3.cpp
index 6554758..900b773 100644
--- a/test/core/core_type_mat4x3.cpp
+++ b/test/core/core_type_mat4x3.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat4x3.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vector_relational.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
@@ -149,11 +118,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat4x3::rows == glm::mat4x3::row_type::components);
- assert(glm::mat4x3::cols == glm::mat4x3::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_operators();
diff --git a/test/core/core_type_mat4x4.cpp b/test/core/core_type_mat4x4.cpp
index 2220fe6..db3ef3b 100644
--- a/test/core/core_type_mat4x4.cpp
+++ b/test/core/core_type_mat4x4.cpp
@@ -1,35 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_mat4x4.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#define GLM_SIMD
#include <glm/gtc/epsilon.hpp>
#include <glm/matrix.hpp>
#include <glm/mat2x2.hpp>
@@ -332,11 +300,6 @@ int main()
repro Repro;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::mat4::rows == glm::mat4::row_type::components);
- assert(glm::mat4::cols == glm::mat4::col_type::components);
-#endif
-
Error += cast::test();
Error += test_ctr();
Error += test_inverse_dmat4x4();
diff --git a/test/core/core_type_vec1.cpp b/test/core/core_type_vec1.cpp
index 197f3d7..643c44a 100644
--- a/test/core/core_type_vec1.cpp
+++ b/test/core/core_type_vec1.cpp
@@ -1,38 +1,4 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_vec1.cpp
-/// @date 2014-10-11 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#if !(GLM_COMPILER & GLM_COMPILER_GCC)
-# define GLM_META_PROG_HELPERS
-#endif
-#define GLM_SWIZZLE
+#define GLM_FORCE_SWIZZLE
#include <glm/vector_relational.hpp>
#include <glm/gtc/vec1.hpp>
#include <vector>
@@ -99,7 +65,7 @@ int test_vec1_ctor()
}
#endif
*/
-#if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec2 A = glm::vec2(1.0f, 2.0f);
glm::vec2 B = A.xy;
@@ -110,7 +76,7 @@ int test_vec1_ctor()
Error += glm::all(glm::equal(A, C)) ? 0 : 1;
Error += glm::all(glm::equal(A, D)) ? 0 : 1;
}
-#endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#endif//GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec2 A = glm::vec2(2.0f);
@@ -134,7 +100,6 @@ int test_vec1_size()
Error += 8 == sizeof(glm::highp_dvec1) ? 0 : 1;
Error += glm::vec1().length() == 1 ? 0 : 1;
Error += glm::dvec1().length() == 1 ? 0 : 1;
- Error += glm::vec1::components == 1 ? 0 : 1;
return Error;
}
@@ -173,11 +138,6 @@ int main()
glm::vec1 v;
assert(v.length() == 1);
-# ifdef GLM_META_PROG_HELPERS
- assert(glm::vec1::components == glm::vec1().length());
- assert(glm::vec1::components == 1);
-# endif
-
Error += test_vec1_size();
Error += test_vec1_ctor();
Error += test_vec1_operators();
diff --git a/test/core/core_type_vec2.cpp b/test/core/core_type_vec2.cpp
index 0ccb00c..b60fb7b 100644
--- a/test/core/core_type_vec2.cpp
+++ b/test/core/core_type_vec2.cpp
@@ -1,38 +1,4 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_vec2.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#if !(GLM_COMPILER & GLM_COMPILER_GCC)
-# define GLM_META_PROG_HELPERS
-#endif
-#define GLM_SWIZZLE
+#define GLM_FORCE_SWIZZLE
#include <glm/vector_relational.hpp>
#include <glm/vec2.hpp>
#include <vector>
@@ -264,7 +230,7 @@ int test_vec2_ctor()
}
#endif
-#if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec2 A = glm::vec2(1.0f, 2.0f);
glm::vec2 B = A.xy;
@@ -275,7 +241,7 @@ int test_vec2_ctor()
Error += glm::all(glm::equal(A, C)) ? 0 : 1;
Error += glm::all(glm::equal(A, D)) ? 0 : 1;
}
-#endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#endif//GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec2 A = glm::vec2(2.0f);
@@ -299,7 +265,6 @@ int test_vec2_size()
Error += 16 == sizeof(glm::highp_dvec2) ? 0 : 1;
Error += glm::vec2().length() == 2 ? 0 : 1;
Error += glm::dvec2().length() == 2 ? 0 : 1;
- Error += glm::vec2::components == 2 ? 0 : 1;
return Error;
}
@@ -338,11 +303,6 @@ int main()
glm::vec2 v;
assert(v.length() == 2);
-# ifdef GLM_META_PROG_HELPERS
- assert(glm::vec2::components == glm::vec2().length());
- assert(glm::vec2::components == 2);
-# endif
-
Error += test_vec2_size();
Error += test_vec2_ctor();
Error += test_vec2_operators();
diff --git a/test/core/core_type_vec3.cpp b/test/core/core_type_vec3.cpp
index b8caaf6..f9b28e8 100644
--- a/test/core/core_type_vec3.cpp
+++ b/test/core/core_type_vec3.cpp
@@ -1,38 +1,4 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_vec3.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#if !(GLM_COMPILER & GLM_COMPILER_GCC)
-# define GLM_META_PROG_HELPERS
-#endif
-#define GLM_SWIZZLE
+#define GLM_FORCE_SWIZZLE
#include <glm/vector_relational.hpp>
#include <glm/geometric.hpp>
#include <glm/vec2.hpp>
@@ -74,7 +40,7 @@ int test_vec3_ctor()
}
#endif
-#if(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
+#if(GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE))
{
glm::vec3 A = glm::vec3(1.0f, 2.0f, 3.0f);
glm::vec3 B = A.xyz;
@@ -93,7 +59,7 @@ int test_vec3_ctor()
Error += glm::all(glm::equal(A, G)) ? 0 : 1;
Error += glm::all(glm::equal(A, H)) ? 0 : 1;
}
-#endif//(GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE))
+#endif//(GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE))
{
glm::vec3 A(1);
@@ -116,6 +82,13 @@ int test_vec3_ctor()
return Error;
}
+float foo()
+{
+ glm::vec3 bar = glm::vec3(0.0f, 1.0f, 1.0f);
+
+ return glm::length(bar);
+}
+
int test_vec3_operators()
{
int Error = 0;
@@ -266,7 +239,6 @@ int test_vec3_size()
Error += 24 == sizeof(glm::highp_dvec3) ? 0 : 1;
Error += glm::vec3().length() == 3 ? 0 : 1;
Error += glm::dvec3().length() == 3 ? 0 : 1;
- Error += glm::vec3::components == 3 ? 0 : 1;
return Error;
}
@@ -500,11 +472,6 @@ int main()
glm::vec3 v;
assert(v.length() == 3);
-# ifdef GLM_META_PROG_HELPERS
- assert(glm::vec3::components == glm::vec3().length());
- assert(glm::vec3::components == 3);
-# endif
-
Error += test_vec3_ctor();
Error += test_vec3_operators();
Error += test_vec3_size();
diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp
index ca17d1e..c173001 100644
--- a/test/core/core_type_vec4.cpp
+++ b/test/core/core_type_vec4.cpp
@@ -1,38 +1,5 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/core/core_type_vec4.cpp
-/// @date 2008-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#if !(GLM_COMPILER & GLM_COMPILER_GCC)
-# define GLM_META_PROG_HELPERS
-#endif
-#define GLM_SWIZZLE
+#define GLM_FORCE_ALIGNED
+#define GLM_FORCE_SWIZZLE
#include <glm/vector_relational.hpp>
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
@@ -62,7 +29,6 @@ enum comp
// return _mm_shuffle_ps(Src, Src, mask<(int(W) << 6) | (int(Z) << 4) | (int(Y) << 2) | (int(X) << 0)>::value);
//}
-
int test_vec4_ctor()
{
int Error = 0;
@@ -102,7 +68,7 @@ int test_vec4_ctor()
}
#endif
-#if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec4 A = glm::vec4(1.0f, 2.0f, 3.0f, 4.0f);
glm::vec4 B = A.xyzw;
@@ -131,7 +97,7 @@ int test_vec4_ctor()
Error += glm::all(glm::equal(A, L)) ? 0 : 1;
Error += glm::all(glm::equal(A, M)) ? 0 : 1;
}
-#endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE)
+#endif// GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_FORCE_SWIZZLE)
{
glm::vec4 A(1);
@@ -158,6 +124,26 @@ int test_vec4_ctor()
return Error;
}
+int test_bvec4_ctor()
+{
+ int Error = 0;
+
+ glm::bvec4 const A(true);
+ glm::bvec4 const B(true);
+ glm::bvec4 const C(false);
+ glm::bvec4 const D = A && B;
+ glm::bvec4 const E = A && C;
+ glm::bvec4 const F = A || C;
+ bool const G = A == C;
+ bool const H = A != C;
+
+ Error += D == glm::bvec4(true) ? 0 : 1;
+ Error += E == glm::bvec4(false) ? 0 : 1;
+ Error += F == glm::bvec4(true) ? 0 : 1;
+
+ return Error;
+}
+
int test_vec4_operators()
{
int Error = 0;
@@ -294,10 +280,31 @@ int test_vec4_operators()
return Error;
}
+int test_vec4_equal()
+{
+ int Error = 0;
+
+ {
+ glm::vec4 const A(1, 2, 3, 4);
+ glm::vec4 const B(1, 2, 3, 4);
+ Error += A == B ? 0 : 1;
+ Error += A != B ? 1 : 0;
+ }
+
+ {
+ glm::ivec4 const A(1, 2, 3, 4);
+ glm::ivec4 const B(1, 2, 3, 4);
+ Error += A == B ? 0 : 1;
+ Error += A != B ? 1 : 0;
+ }
+
+ return Error;
+}
+
int test_vec4_size()
{
int Error = 0;
-
+
Error += sizeof(glm::vec4) == sizeof(glm::lowp_vec4) ? 0 : 1;
Error += sizeof(glm::vec4) == sizeof(glm::mediump_vec4) ? 0 : 1;
Error += sizeof(glm::vec4) == sizeof(glm::highp_vec4) ? 0 : 1;
@@ -308,7 +315,7 @@ int test_vec4_size()
Error += 32 == sizeof(glm::highp_dvec4) ? 0 : 1;
Error += glm::vec4().length() == 4 ? 0 : 1;
Error += glm::dvec4().length() == 4 ? 0 : 1;
-
+
return Error;
}
@@ -318,7 +325,7 @@ int test_vec4_swizzle_partial()
glm::vec4 A(1, 2, 3, 4);
-# if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE_RELAX)
+# if GLM_HAS_UNRESTRICTED_UNIONS && defined(GLM_SWIZZLE_RELAX)
{
glm::vec4 B(A.xy, A.zw);
Error += A == B ? 0 : 1;
@@ -468,18 +475,69 @@ namespace heap
}
}//namespace heap
+int test_vec4_simd()
+{
+ int Error = 0;
+
+ glm::vec4 const a(std::clock(), std::clock(), std::clock(), std::clock());
+ glm::vec4 const b(std::clock(), std::clock(), std::clock(), std::clock());
+
+ glm::vec4 const c(b * a);
+ glm::vec4 const d(a + c);
+
+ Error += glm::all(glm::greaterThanEqual(d, glm::vec4(0))) ? 0 : 1;
+
+ return Error;
+}
+
int main()
{
int Error(0);
+/*
+ {
+ glm::ivec4 const a1(2);
+ glm::ivec4 const b1 = a1 >> 1;
+
+ __m128i const e1 = _mm_set1_epi32(2);
+ __m128i const f1 = _mm_srli_epi32(e1, 1);
+
+ glm::ivec4 const g1 = *reinterpret_cast<glm::ivec4 const* const>(&f1);
+
+ glm::ivec4 const a2(-2);
+ glm::ivec4 const b2 = a2 >> 1;
+
+ __m128i const e2 = _mm_set1_epi32(-1);
+ __m128i const f2 = _mm_srli_epi32(e2, 1);
+
+ glm::ivec4 const g2 = *reinterpret_cast<glm::ivec4 const* const>(&f2);
+
+ printf("GNI\n");
+ }
+
+ {
+ glm::uvec4 const a1(2);
+ glm::uvec4 const b1 = a1 >> 1u;
+
+ __m128i const e1 = _mm_set1_epi32(2);
+ __m128i const f1 = _mm_srli_epi32(e1, 1);
+
+ glm::uvec4 const g1 = *reinterpret_cast<glm::uvec4 const* const>(&f1);
+
+ glm::uvec4 const a2(-1);
+ glm::uvec4 const b2 = a2 >> 1u;
+
+ __m128i const e2 = _mm_set1_epi32(-1);
+ __m128i const f2 = _mm_srli_epi32(e2, 1);
+
+ glm::uvec4 const g2 = *reinterpret_cast<glm::uvec4 const* const>(&f2);
+
+ printf("GNI\n");
+ }
+*/
glm::vec4 v;
assert(v.length() == 4);
-# ifdef GLM_META_PROG_HELPERS
- assert(glm::vec4::components == glm::vec4().length());
- assert(glm::vec4::components == 4);
-# endif
-
# ifdef NDEBUG
std::size_t const Size(1000000);
Error += test_vec4_perf_AoS(Size);
@@ -487,9 +545,12 @@ int main()
# endif//NDEBUG
Error += test_vec4_ctor();
+ Error += test_bvec4_ctor();
Error += test_vec4_size();
Error += test_vec4_operators();
+ Error += test_vec4_equal();
Error += test_vec4_swizzle_partial();
+ Error += test_vec4_simd();
Error += test_operator_increment();
Error += heap::test();
diff --git a/test/gtc/CMakeLists.txt b/test/gtc/CMakeLists.txt
index 5268ba1..63acbd5 100644
--- a/test/gtc/CMakeLists.txt
+++ b/test/gtc/CMakeLists.txt
@@ -2,6 +2,7 @@ glmCreateTestGTC(gtc_bitfield)
glmCreateTestGTC(gtc_color_space)
glmCreateTestGTC(gtc_constants)
glmCreateTestGTC(gtc_epsilon)
+glmCreateTestGTC(gtc_functions)
glmCreateTestGTC(gtc_integer)
glmCreateTestGTC(gtc_matrix_access)
glmCreateTestGTC(gtc_matrix_integer)
@@ -13,6 +14,7 @@ glmCreateTestGTC(gtc_quaternion)
glmCreateTestGTC(gtc_random)
glmCreateTestGTC(gtc_round)
glmCreateTestGTC(gtc_reciprocal)
+glmCreateTestGTC(gtc_type_aligned)
glmCreateTestGTC(gtc_type_precision)
glmCreateTestGTC(gtc_type_ptr)
glmCreateTestGTC(gtc_ulp)
diff --git a/test/gtc/gtc_bitfield.cpp b/test/gtc/gtc_bitfield.cpp
index 332a9d5..0154fe1 100644
--- a/test/gtc/gtc_bitfield.cpp
+++ b/test/gtc/gtc_bitfield.cpp
@@ -1,40 +1,7 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_bitfield.cpp
-/// @date 2014-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/bitfield.hpp>
#include <glm/gtc/type_precision.hpp>
#include <glm/vector_relational.hpp>
-#if GLM_ARCH != GLM_ARCH_PURE
-# include <glm/detail/intrinsic_integer.hpp>
-#endif
+#include <glm/integer.hpp>
#include <ctime>
#include <cstdio>
#include <vector>
@@ -351,7 +318,7 @@ namespace bitfieldInterleave
return REG1 | (REG2 << 1);
}
-
+/*
inline glm::uint64 loopBitfieldInterleave(glm::uint32 x, glm::uint32 y)
{
static glm::uint64 const Mask[5] =
@@ -373,7 +340,7 @@ namespace bitfieldInterleave
return REG1 | (REG2 << 1);
}
-
+*/
#if(GLM_ARCH != GLM_ARCH_PURE)
inline glm::uint64 sseBitfieldInterleave(glm::uint32 x, glm::uint32 y)
{
@@ -500,24 +467,24 @@ namespace bitfieldInterleave
{
glm::uint64 A = glm::bitfieldInterleave(x, y);
glm::uint64 B = fastBitfieldInterleave(x, y);
- glm::uint64 C = loopBitfieldInterleave(x, y);
+ //glm::uint64 C = loopBitfieldInterleave(x, y);
glm::uint64 D = interleaveBitfieldInterleave(x, y);
assert(A == B);
- assert(A == C);
+ //assert(A == C);
assert(A == D);
-# if(GLM_ARCH != GLM_ARCH_PURE)
+# if GLM_ARCH & GLM_ARCH_SSE2_BIT
glm::uint64 E = sseBitfieldInterleave(x, y);
glm::uint64 F = sseUnalignedBitfieldInterleave(x, y);
assert(A == E);
assert(A == F);
- __m128i G = glm::detail::_mm_bit_interleave_si128(_mm_set_epi32(0, y, 0, x));
+ __m128i G = glm_i128_interleave(_mm_set_epi32(0, y, 0, x));
glm::uint64 Result[2];
_mm_storeu_si128((__m128i*)Result, G);
assert(A == Result[0]);
-# endif//(GLM_ARCH != GLM_ARCH_PURE)
+# endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
}
}
@@ -573,7 +540,7 @@ namespace bitfieldInterleave
std::printf("fastBitfieldInterleave Time %d clocks\n", static_cast<unsigned int>(Time));
}
-
+/*
{
std::clock_t LastTime = std::clock();
@@ -584,7 +551,7 @@ namespace bitfieldInterleave
std::printf("loopBitfieldInterleave Time %d clocks\n", static_cast<unsigned int>(Time));
}
-
+*/
{
std::clock_t LastTime = std::clock();
@@ -631,7 +598,7 @@ namespace bitfieldInterleave
std::printf("glm::detail::bitfieldInterleave Time %d clocks\n", static_cast<unsigned int>(Time));
}
-# if(GLM_ARCH != GLM_ARCH_PURE && !(GLM_COMPILER & GLM_COMPILER_GCC))
+# if(GLM_ARCH & GLM_ARCH_SSE2_BIT && !(GLM_COMPILER & GLM_COMPILER_GCC))
{
// SIMD
std::vector<__m128i> SimdData;
@@ -644,13 +611,13 @@ namespace bitfieldInterleave
std::clock_t LastTime = std::clock();
for(std::size_t i = 0; i < SimdData.size(); ++i)
- SimdData[i] = glm::detail::_mm_bit_interleave_si128(SimdParam[i]);
+ SimdData[i] = glm_i128_interleave(SimdParam[i]);
std::clock_t Time = std::clock() - LastTime;
std::printf("_mm_bit_interleave_si128 Time %d clocks\n", static_cast<unsigned int>(Time));
}
-# endif//(GLM_ARCH != GLM_ARCH_PURE)
+# endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
return 0;
}
diff --git a/test/gtc/gtc_color_space.cpp b/test/gtc/gtc_color_space.cpp
index 26902c6..836ff06 100644
--- a/test/gtc/gtc_color_space.cpp
+++ b/test/gtc/gtc_color_space.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_color.cpp
-/// @date 2015-02-10 / 2015-02-10
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/color_space.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/constants.hpp>
diff --git a/test/gtc/gtc_constants.cpp b/test/gtc/gtc_constants.cpp
index 8b0b3b0..d5a4755 100644
--- a/test/gtc/gtc_constants.cpp
+++ b/test/gtc/gtc_constants.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_constants.cpp
-/// @date 2012-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/constants.hpp>
int test_epsilon()
diff --git a/test/gtc/gtc_epsilon.cpp b/test/gtc/gtc_epsilon.cpp
index 24e3106..55982ac 100644
--- a/test/gtc/gtc_epsilon.cpp
+++ b/test/gtc/gtc_epsilon.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_epsilon.cpp
-/// @date 2012-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/constants.hpp>
#include <glm/vector_relational.hpp>
diff --git a/test/gtc/gtc_functions.cpp b/test/gtc/gtc_functions.cpp
new file mode 100644
index 0000000..629972f
--- /dev/null
+++ b/test/gtc/gtc_functions.cpp
@@ -0,0 +1,35 @@
+#include <glm/gtc/functions.hpp>
+#include <vector>
+
+int test_gauss_1d()
+{
+ int Error = 0;
+
+ std::vector<float> Result(20);
+ for(std::size_t i = 0, n = Result.size(); i < n; ++i)
+ Result[i] = glm::gauss(static_cast<float>(i) * 0.1f, 0.0f, 1.0f);
+
+ return Error;
+}
+
+int test_gauss_2d()
+{
+ int Error = 0;
+
+ std::vector<float> Result(20);
+ for(std::size_t i = 0, n = Result.size(); i < n; ++i)
+ Result[i] = glm::gauss(glm::vec2(i) * 0.1f, glm::vec2(0.0f), glm::vec2(1.0f));
+
+ return Error;
+}
+
+int main()
+{
+ int Error = 0;
+
+ Error += test_gauss_1d();
+ Error += test_gauss_2d();
+
+ return Error;
+}
+
diff --git a/test/gtc/gtc_integer.cpp b/test/gtc/gtc_integer.cpp
index fee3488..02da0fb 100644
--- a/test/gtc/gtc_integer.cpp
+++ b/test/gtc/gtc_integer.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_integer.cpp
-/// @date 2014-11-17 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#define GLM_FORCE_INLINE
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/integer.hpp>
@@ -210,11 +179,49 @@ namespace log2_
}
}//namespace log2_
+namespace iround
+{
+ int test()
+ {
+ int Error = 0;
+
+ for(float f = 0.0f; f < 3.1f; f += 0.05f)
+ {
+ int RoundFast = glm::iround(f);
+ int RoundSTD = glm::round(f);
+ Error += RoundFast == RoundSTD ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+ }
+}//namespace iround
+
+namespace uround
+{
+ int test()
+ {
+ int Error = 0;
+
+ for(float f = 0.0f; f < 3.1f; f += 0.05f)
+ {
+ int RoundFast = glm::uround(f);
+ int RoundSTD = glm::round(f);
+ Error += RoundFast == RoundSTD ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+ }
+}//namespace uround
+
int main()
{
int Error(0);
Error += ::log2_::test();
+ Error += ::iround::test();
+ Error += ::uround::test();
# ifdef NDEBUG
std::size_t const Samples(1000);
diff --git a/test/gtc/gtc_matrix_access.cpp b/test/gtc/gtc_matrix_access.cpp
index 612d212..2a53b85 100644
--- a/test/gtc/gtc_matrix_access.cpp
+++ b/test/gtc/gtc_matrix_access.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_matrix_access.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/matrix_access.hpp>
#include <glm/mat2x2.hpp>
#include <glm/mat2x3.hpp>
diff --git a/test/gtc/gtc_matrix_integer.cpp b/test/gtc/gtc_matrix_integer.cpp
index 9e48c96..b2051fe 100644
--- a/test/gtc/gtc_matrix_integer.cpp
+++ b/test/gtc/gtc_matrix_integer.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_matrix_integer.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/matrix_integer.hpp>
int main()
diff --git a/test/gtc/gtc_matrix_inverse.cpp b/test/gtc/gtc_matrix_inverse.cpp
index 0439998..b2c0d1c 100644
--- a/test/gtc/gtc_matrix_inverse.cpp
+++ b/test/gtc/gtc_matrix_inverse.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_matrix_inverse.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/matrix_inverse.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/test/gtc/gtc_matrix_transform.cpp b/test/gtc/gtc_matrix_transform.cpp
index e5c3675..1a112a7 100644
--- a/test/gtc/gtc_matrix_transform.cpp
+++ b/test/gtc/gtc_matrix_transform.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_matrix_transform.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/constants.hpp>
diff --git a/test/gtc/gtc_noise.cpp b/test/gtc/gtc_noise.cpp
index 59e1f45..191ddcd 100644
--- a/test/gtc/gtc_noise.cpp
+++ b/test/gtc/gtc_noise.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_noise.cpp
-/// @date 2011-04-21 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/noise.hpp>
#include <gli/gli.hpp>
#include <gli/gtx/loader.hpp>
diff --git a/test/gtc/gtc_packing.cpp b/test/gtc/gtc_packing.cpp
index 42ba30c..729e7d8 100644
--- a/test/gtc/gtc_packing.cpp
+++ b/test/gtc/gtc_packing.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_packing.cpp
-/// @date 2013-08-09 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/packing.hpp>
#include <glm/gtc/epsilon.hpp>
#include <cstdio>
@@ -128,7 +97,11 @@ int test_Half4x16()
glm::vec4 v0 = glm::unpackHalf4x16(p0);
glm::uint64 p1 = glm::packHalf4x16(v0);
glm::vec4 v1 = glm::unpackHalf4x16(p1);
+ glm::u16vec4 p2 = glm::packHalf(v0);
+ glm::vec4 v2 = glm::unpackHalf(p2);
+
Error += glm::all(glm::equal(v0, v1)) ? 0 : 1;
+ Error += glm::all(glm::equal(v0, v2)) ? 0 : 1;
}
return Error;
@@ -254,6 +227,30 @@ int test_F2x11_1x10()
return Error;
}
+int test_F3x9_E1x5()
+{
+ int Error = 0;
+
+ std::vector<glm::vec3> Tests;
+ Tests.push_back(glm::vec3(1.0f));
+ Tests.push_back(glm::vec3(0.0f));
+ Tests.push_back(glm::vec3(2.0f));
+ Tests.push_back(glm::vec3(0.1f));
+ Tests.push_back(glm::vec3(0.5f));
+ Tests.push_back(glm::vec3(0.9f));
+
+ for (std::size_t i = 0; i < Tests.size(); ++i)
+ {
+ glm::uint32 p0 = glm::packF3x9_E1x5(Tests[i]);
+ glm::vec3 v0 = glm::unpackF3x9_E1x5(p0);
+ glm::uint32 p1 = glm::packF3x9_E1x5(v0);
+ glm::vec3 v1 = glm::unpackF3x9_E1x5(p1);
+ Error += glm::all(glm::epsilonEqual(v0, v1, 0.01f)) ? 0 : 1;
+ }
+
+ return Error;
+}
+
int test_packUnorm1x16()
{
int Error = 0;
@@ -410,6 +407,7 @@ int test_packSnorm1x8()
std::vector<glm::vec1> A;
A.push_back(glm::vec1( 1.0f));
A.push_back(glm::vec1(-0.7f));
+ A.push_back(glm::vec1(-1.0f));
for(std::size_t i = 0; i < A.size(); ++i)
{
@@ -501,9 +499,153 @@ int test_packSnorm4x8()
return Error;
}
+int test_packUnorm()
+{
+ int Error = 0;
+
+ std::vector<glm::vec2> A;
+ A.push_back(glm::vec2(1.0f, 0.7f));
+ A.push_back(glm::vec2(0.5f, 0.1f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec2 B(A[i]);
+ glm::u16vec2 C = glm::packUnorm<glm::uint16>(B);
+ glm::vec2 D = glm::unpackUnorm<glm::uint16, float>(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 255.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packSnorm()
+{
+ int Error = 0;
+
+ std::vector<glm::vec2> A;
+ A.push_back(glm::vec2( 1.0f, 0.0f));
+ A.push_back(glm::vec2(-0.5f,-0.7f));
+ A.push_back(glm::vec2(-0.1f, 0.1f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec2 B(A[i]);
+ glm::i16vec2 C = glm::packSnorm<glm::int16>(B);
+ glm::vec2 D = glm::unpackSnorm<glm::int16, float>(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 32767.0f * 2.0f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packUnorm2x4()
+{
+ int Error = 0;
+
+ std::vector<glm::vec2> A;
+ A.push_back(glm::vec2(1.0f, 0.7f));
+ A.push_back(glm::vec2(0.5f, 0.0f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec2 B(A[i]);
+ glm::uint8 C = glm::packUnorm2x4(B);
+ glm::vec2 D = glm::unpackUnorm2x4(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 15.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packUnorm4x4()
+{
+ int Error = 0;
+
+ std::vector<glm::vec4> A;
+ A.push_back(glm::vec4(1.0f, 0.7f, 0.5f, 0.0f));
+ A.push_back(glm::vec4(0.5f, 0.1f, 0.0f, 1.0f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec4 B(A[i]);
+ glm::uint16 C = glm::packUnorm4x4(B);
+ glm::vec4 D = glm::unpackUnorm4x4(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 15.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packUnorm3x5_1x1()
+{
+ int Error = 0;
+
+ std::vector<glm::vec4> A;
+ A.push_back(glm::vec4(1.0f, 0.7f, 0.5f, 0.0f));
+ A.push_back(glm::vec4(0.5f, 0.1f, 0.0f, 1.0f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec4 B(A[i]);
+ glm::uint16 C = glm::packUnorm3x5_1x1(B);
+ glm::vec4 D = glm::unpackUnorm3x5_1x1(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 15.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packUnorm1x5_1x6_1x5()
+{
+ int Error = 0;
+
+ std::vector<glm::vec3> A;
+ A.push_back(glm::vec3(1.0f, 0.7f, 0.5f));
+ A.push_back(glm::vec3(0.5f, 0.1f, 0.0f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec3 B(A[i]);
+ glm::uint16 C = glm::packUnorm1x5_1x6_1x5(B);
+ glm::vec3 D = glm::unpackUnorm1x5_1x6_1x5(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 15.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
+int test_packUnorm2x3_1x2()
+{
+ int Error = 0;
+
+ std::vector<glm::vec3> A;
+ A.push_back(glm::vec3(1.0f, 0.7f, 0.5f));
+ A.push_back(glm::vec3(0.5f, 0.1f, 0.0f));
+
+ for(std::size_t i = 0; i < A.size(); ++i)
+ {
+ glm::vec3 B(A[i]);
+ glm::uint8 C = glm::packUnorm2x3_1x2(B);
+ glm::vec3 D = glm::unpackUnorm2x3_1x2(C);
+ Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 3.f)) ? 0 : 1;
+ assert(!Error);
+ }
+
+ return Error;
+}
+
int main()
{
- int Error(0);
+ int Error = 0;
+
+ Error += test_packUnorm();
+ Error += test_packSnorm();
Error += test_packSnorm1x16();
Error += test_packSnorm2x16();
@@ -521,13 +663,20 @@ int main()
Error += test_packUnorm2x8();
Error += test_packUnorm4x8();
+ Error += test_packUnorm2x4();
+ Error += test_packUnorm4x4();
+ Error += test_packUnorm3x5_1x1();
+ Error += test_packUnorm1x5_1x6_1x5();
+ Error += test_packUnorm2x3_1x2();
+
Error += test_F2x11_1x10();
+ Error += test_F3x9_E1x5();
Error += test_Snorm3x10_1x2();
Error += test_Unorm3x10_1x2();
Error += test_I3x10_1x2();
Error += test_U3x10_1x2();
Error += test_Half1x16();
- Error += test_U3x10_1x2();
+ Error += test_Half4x16();
return Error;
}
diff --git a/test/gtc/gtc_quaternion.cpp b/test/gtc/gtc_quaternion.cpp
index bbc474b..a718c9c 100644
--- a/test/gtc/gtc_quaternion.cpp
+++ b/test/gtc/gtc_quaternion.cpp
@@ -1,35 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_quaternion.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
-#define GLM_META_PROG_HELPERS
#include <glm/gtc/quaternion.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/vector_relational.hpp>
@@ -327,11 +295,6 @@ int main()
{
int Error(0);
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::quat::components == 4);
- assert(glm::quat::components == glm::quat().length());
-#endif
-
Error += test_quat_ctr();
Error += test_quat_mul_vec();
Error += test_quat_two_axis_ctr();
diff --git a/test/gtc/gtc_random.cpp b/test/gtc/gtc_random.cpp
index f4ea67d..8a7e783 100644
--- a/test/gtc/gtc_random.cpp
+++ b/test/gtc/gtc_random.cpp
@@ -1,37 +1,6 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_random.cpp
-/// @date 2011-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/random.hpp>
#include <glm/gtc/epsilon.hpp>
-#if(GLM_LANG & GLM_LANG_CXX0X_FLAG)
+#if GLM_LANG & GLM_LANG_CXX0X_FLAG
# include <array>
#endif
diff --git a/test/gtc/gtc_reciprocal.cpp b/test/gtc/gtc_reciprocal.cpp
index b682ba6..9e83a64 100644
--- a/test/gtc/gtc_reciprocal.cpp
+++ b/test/gtc/gtc_reciprocal.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_reciprocal.cpp
-/// @date 2012-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/reciprocal.hpp>
#include <ctime>
diff --git a/test/gtc/gtc_round.cpp b/test/gtc/gtc_round.cpp
index af72983..fe86fef 100644
--- a/test/gtc/gtc_round.cpp
+++ b/test/gtc/gtc_round.cpp
@@ -1,33 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_round.cpp
-/// @date 2014-11-03 / 2014-11-03
-/// @author Christophe Riccio
-///
-/// @see core (dependence)
-/// @see gtc_round (dependence)
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/round.hpp>
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/vec1.hpp>
@@ -420,7 +390,7 @@ namespace ceilMultiple
};
int Error(0);
-
+
for(std::size_t i = 0, n = sizeof(Data) / sizeof(type<glm::float64>); i < n; ++i)
{
glm::float64 Result = glm::ceilMultiple(Data[i].Source, Data[i].Multiple);
@@ -430,10 +400,37 @@ namespace ceilMultiple
return Error;
}
+ int test_int()
+ {
+ type<int> const Data[] =
+ {
+ {3, 4, 4, 0},
+ {7, 4, 8, 0},
+ {5, 4, 8, 0},
+ {1, 4, 4, 0},
+ {1, 3, 3, 0},
+ {4, 3, 6, 0},
+ {4, 1, 4, 0},
+ {1, 1, 1, 0},
+ {7, 1, 7, 0},
+ };
+
+ int Error(0);
+
+ for(std::size_t i = 0, n = sizeof(Data) / sizeof(type<int>); i < n; ++i)
+ {
+ int Result = glm::ceilMultiple(Data[i].Source, Data[i].Multiple);
+ Error += Data[i].Return == Result ? 0 : 1;
+ }
+
+ return Error;
+ }
+
int test()
{
int Error(0);
+ Error += test_int();
Error += test_float();
return Error;
@@ -451,7 +448,7 @@ int main()
Error += ceilPowerOfTwo_advanced::test();
# ifdef NDEBUG
- Error += ceilPowerOfTwo::perf();
+ Error += ceilPowerOfTwo_advanced::perf();
# endif//NDEBUG
Error += floorMultiple::test();
diff --git a/test/gtc/gtc_type_aligned.cpp b/test/gtc/gtc_type_aligned.cpp
new file mode 100644
index 0000000..3f8ec5a
--- /dev/null
+++ b/test/gtc/gtc_type_aligned.cpp
@@ -0,0 +1,118 @@
+#define GLM_FORCE_MESSAGES
+#include <glm/glm.hpp>
+
+#if GLM_HAS_ALIGNED_TYPE
+#include <glm/gtc/type_aligned.hpp>
+
+GLM_STATIC_ASSERT(glm::detail::is_aligned<glm::aligned_lowp>::value, "aligned_lowp is not aligned");
+GLM_STATIC_ASSERT(glm::detail::is_aligned<glm::aligned_mediump>::value, "aligned_mediump is not aligned");
+GLM_STATIC_ASSERT(glm::detail::is_aligned<glm::aligned_highp>::value, "aligned_highp is not aligned");
+GLM_STATIC_ASSERT(!glm::detail::is_aligned<glm::packed_highp>::value, "packed_highp is aligned");
+GLM_STATIC_ASSERT(!glm::detail::is_aligned<glm::packed_mediump>::value, "packed_mediump is aligned");
+GLM_STATIC_ASSERT(!glm::detail::is_aligned<glm::packed_lowp>::value, "packed_lowp is aligned");
+
+struct my_vec4_packed
+{
+ glm::uint32 a;
+ glm::vec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_vec4_packed) == sizeof(glm::uint32) + sizeof(glm::vec4), "glm::vec4 packed is not correct");
+
+struct my_vec4_aligned
+{
+ glm::uint32 a;
+ glm::aligned_vec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_vec4_aligned) == sizeof(glm::aligned_vec4) * 2, "glm::vec4 aligned is not correct");
+
+struct my_dvec4_packed
+{
+ glm::uint64 a;
+ glm::dvec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_dvec4_packed) == sizeof(glm::uint64) + sizeof(glm::dvec4), "glm::dvec4 packed is not correct");
+
+struct my_dvec4_aligned
+{
+ glm::uint64 a;
+ glm::aligned_dvec4 b;
+};
+//GLM_STATIC_ASSERT(sizeof(my_dvec4_aligned) == sizeof(glm::aligned_dvec4) * 2, "glm::dvec4 aligned is not correct");
+
+struct my_ivec4_packed
+{
+ glm::uint32 a;
+ glm::ivec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_ivec4_packed) == sizeof(glm::uint32) + sizeof(glm::ivec4), "glm::ivec4 packed is not correct");
+
+struct my_ivec4_aligned
+{
+ glm::uint32 a;
+ glm::aligned_ivec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_ivec4_aligned) == sizeof(glm::aligned_ivec4) * 2, "glm::ivec4 aligned is not correct");
+
+struct my_u8vec4_packed
+{
+ glm::uint32 a;
+ glm::u8vec4 b;
+};
+GLM_STATIC_ASSERT(sizeof(my_u8vec4_packed) == sizeof(glm::uint32) + sizeof(glm::u8vec4), "glm::u8vec4 packed is not correct");
+
+int test_copy()
+{
+ int Error = 0;
+
+ {
+ glm::aligned_ivec4 const a(1, 2, 3, 4);
+ glm::ivec4 const u(a);
+
+ Error += a.x == u.x ? 0 : 1;
+ Error += a.y == u.y ? 0 : 1;
+ Error += a.z == u.z ? 0 : 1;
+ Error += a.w == u.w ? 0 : 1;
+ }
+
+ {
+ my_ivec4_aligned a;
+ a.b = glm::ivec4(1, 2, 3, 4);
+
+ my_ivec4_packed u;
+ u.b = a.b;
+
+ Error += a.b.x == u.b.x ? 0 : 1;
+ Error += a.b.y == u.b.y ? 0 : 1;
+ Error += a.b.z == u.b.z ? 0 : 1;
+ Error += a.b.w == u.b.w ? 0 : 1;
+ }
+
+ return Error;
+}
+
+int main()
+{
+ int Error = 0;
+
+ my_vec4_aligned GNA;
+ my_dvec4_aligned GNI;
+
+ std::size_t A0 = sizeof(my_dvec4_aligned);
+ std::size_t B0 = sizeof(my_dvec4_packed);
+ std::size_t C0 = sizeof(glm::aligned_dvec4);
+
+ std::size_t A1 = sizeof(my_vec4_aligned);
+ std::size_t B1 = sizeof(my_vec4_packed);
+ std::size_t C1 = sizeof(glm::aligned_vec4);
+
+ return Error;
+}
+
+#else
+
+int main()
+{
+ return 0;
+}
+
+#endif//GLM_HAS_ALIGNED_TYPE
diff --git a/test/gtc/gtc_type_precision.cpp b/test/gtc/gtc_type_precision.cpp
index dccb879..8b770fd 100644
--- a/test/gtc/gtc_type_precision.cpp
+++ b/test/gtc/gtc_type_precision.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_type_precision.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/quaternion.hpp>
#include <vector>
diff --git a/test/gtc/gtc_type_ptr.cpp b/test/gtc/gtc_type_ptr.cpp
index c530e92..c489d0d 100644
--- a/test/gtc/gtc_type_ptr.cpp
+++ b/test/gtc/gtc_type_ptr.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_type_ptr.cpp
-/// @date 2010-09-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_ptr.hpp>
int test_value_ptr_vec()
diff --git a/test/gtc/gtc_ulp.cpp b/test/gtc/gtc_ulp.cpp
index e7e4087..11896d4 100644
--- a/test/gtc/gtc_ulp.cpp
+++ b/test/gtc/gtc_ulp.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_ulp.cpp
-/// @date 2011-04-26 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/ulp.hpp>
#include <limits>
diff --git a/test/gtc/gtc_vec1.cpp b/test/gtc/gtc_vec1.cpp
index 2ef39ce..b259d74 100644
--- a/test/gtc/gtc_vec1.cpp
+++ b/test/gtc/gtc_vec1.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtc/gtc_vec1.cpp
-/// @date 2014-10-11 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/vec1.hpp>
int main()
diff --git a/test/gtx/CMakeLists.txt b/test/gtx/CMakeLists.txt
index 83731b8..007920c 100644
--- a/test/gtx/CMakeLists.txt
+++ b/test/gtx/CMakeLists.txt
@@ -7,7 +7,7 @@ glmCreateTestGTC(gtx_compatibility)
glmCreateTestGTC(gtx_component_wise)
glmCreateTestGTC(gtx_euler_angle)
glmCreateTestGTC(gtx_extend)
-glmCreateTestGTC(gtx_extented_min_max)
+glmCreateTestGTC(gtx_extended_min_max)
glmCreateTestGTC(gtx_fast_exponential)
glmCreateTestGTC(gtx_fast_square_root)
glmCreateTestGTC(gtx_fast_trigonometry)
@@ -40,11 +40,12 @@ glmCreateTestGTC(gtx_rotate_normalized_axis)
glmCreateTestGTC(gtx_rotate_vector)
glmCreateTestGTC(gtx_scalar_multiplication)
glmCreateTestGTC(gtx_scalar_relational)
-glmCreateTestGTC(gtx_simd_vec4)
-glmCreateTestGTC(gtx_simd_mat4)
+#glmCreateTestGTC(gtx_simd_vec4)
+#glmCreateTestGTC(gtx_simd_mat4)
glmCreateTestGTC(gtx_spline)
glmCreateTestGTC(gtx_string_cast)
glmCreateTestGTC(gtx_type_aligned)
+glmCreateTestGTC(gtx_type_trait)
glmCreateTestGTC(gtx_vector_angle)
glmCreateTestGTC(gtx_vector_query)
glmCreateTestGTC(gtx_wrap)
diff --git a/test/gtx/gtx_associated_min_max.cpp b/test/gtx/gtx_associated_min_max.cpp
index df95df0..8bc11ee 100644
--- a/test/gtx/gtx_associated_min_max.cpp
+++ b/test/gtx/gtx_associated_min_max.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_associated_min_max.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/associated_min_max.hpp>
diff --git a/test/gtx/gtx_closest_point.cpp b/test/gtx/gtx_closest_point.cpp
index 56c0d34..46bf47c 100644
--- a/test/gtx/gtx_closest_point.cpp
+++ b/test/gtx/gtx_closest_point.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_closest_point.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/closest_point.hpp>
int main()
diff --git a/test/gtx/gtx_color_space.cpp b/test/gtx/gtx_color_space.cpp
index db57d77..117b012 100644
--- a/test/gtx/gtx_color_space.cpp
+++ b/test/gtx/gtx_color_space.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_color_space.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/color_space.hpp>
int test_saturation()
diff --git a/test/gtx/gtx_color_space_YCoCg.cpp b/test/gtx/gtx_color_space_YCoCg.cpp
index 6fd75fe..9bf068e 100644
--- a/test/gtx/gtx_color_space_YCoCg.cpp
+++ b/test/gtx/gtx_color_space_YCoCg.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_color_space_YCoCg.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/color_space_YCoCg.hpp>
int main()
diff --git a/test/gtx/gtx_common.cpp b/test/gtx/gtx_common.cpp
index 979264a..ca18fbe 100644
--- a/test/gtx/gtx_common.cpp
+++ b/test/gtx/gtx_common.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_common.cpp
-/// @date 2014-09-08 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/common.hpp>
#include <glm/gtc/integer.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -149,7 +118,7 @@ int test_isdenormal()
int main()
{
- int Error(0);
+ int Error = 0;
Error += test_isdenormal();
Error += ::fmod_::test();
diff --git a/test/gtx/gtx_compatibility.cpp b/test/gtx/gtx_compatibility.cpp
index 11186ba..d623312 100644
--- a/test/gtx/gtx_compatibility.cpp
+++ b/test/gtx/gtx_compatibility.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_compatibility.cpp
-/// @date 2014-09-08 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/compatibility.hpp>
int main()
diff --git a/test/gtx/gtx_component_wise.cpp b/test/gtx/gtx_component_wise.cpp
index b6aa301..185dd65 100644
--- a/test/gtx/gtx_component_wise.cpp
+++ b/test/gtx/gtx_component_wise.cpp
@@ -1,39 +1,115 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_component_wise.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/component_wise.hpp>
+#include <glm/gtc/type_precision.hpp>
+#include <glm/gtc/epsilon.hpp>
+#include <glm/gtc/constants.hpp>
+#include <limits>
+
+namespace compNormalize
+{
+ int run()
+ {
+ int Error(0);
+
+ {
+ glm::vec4 const A = glm::compNormalize<float>(glm::u8vec4(0, 127, 128, 255));
+
+ Error += glm::epsilonEqual(A.x, 0.0f, glm::epsilon<float>()) ? 0 : 1;
+ Error += A.y < 0.5f ? 0 : 1;
+ Error += A.z > 0.5f ? 0 : 1;
+ Error += glm::epsilonEqual(A.w, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 const A = glm::compNormalize<float>(glm::i8vec4(-128, -1, 0, 127));
+
+ Error += glm::epsilonEqual(A.x,-1.0f, glm::epsilon<float>()) ? 0 : 1;
+ Error += A.y < 0.0f ? 0 : 1;
+ Error += A.z > 0.0f ? 0 : 1;
+ Error += glm::epsilonEqual(A.w, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 const A = glm::compNormalize<float>(glm::u16vec4(
+ std::numeric_limits<glm::u16>::min(),
+ (std::numeric_limits<glm::u16>::max() >> 1) + 0,
+ (std::numeric_limits<glm::u16>::max() >> 1) + 1,
+ std::numeric_limits<glm::u16>::max()));
+
+ Error += glm::epsilonEqual(A.x, 0.0f, glm::epsilon<float>()) ? 0 : 1;
+ Error += A.y < 0.5f ? 0 : 1;
+ Error += A.z > 0.5f ? 0 : 1;
+ Error += glm::epsilonEqual(A.w, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+ }
+
+ {
+ glm::vec4 const A = glm::compNormalize<float>(glm::i16vec4(
+ std::numeric_limits<glm::i16>::min(),
+ static_cast<glm::i16>(-1),
+ static_cast<glm::i16>(0),
+ std::numeric_limits<glm::i16>::max()));
+
+ Error += glm::epsilonEqual(A.x,-1.0f, glm::epsilon<float>()) ? 0 : 1;
+ Error += A.y < 0.0f ? 0 : 1;
+ Error += A.z > 0.0f ? 0 : 1;
+ Error += glm::epsilonEqual(A.w, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+ }
+
+ return Error;
+ }
+}//namespace compNormalize
+
+namespace compScale
+{
+ int run()
+ {
+ int Error(0);
+
+ {
+ glm::u8vec4 const A = glm::compScale<glm::u8>(glm::vec4(0.0f, 0.2f, 0.5f, 1.0f));
+
+ Error += A.x == std::numeric_limits<glm::u8>::min() ? 0 : 1;
+ Error += A.y < (std::numeric_limits<glm::u8>::max() >> 2) ? 0 : 1;
+ Error += A.z == 127 ? 0 : 1;
+ Error += A.w == 255 ? 0 : 1;
+ }
+
+ {
+ glm::i8vec4 const A = glm::compScale<glm::i8>(glm::vec4(0.0f,-1.0f, 0.5f, 1.0f));
+
+ Error += A.x == 0 ? 0 : 1;
+ Error += A.y == -128 ? 0 : 1;
+ Error += A.z == 63 ? 0 : 1;
+ Error += A.w == 127 ? 0 : 1;
+ }
+
+ {
+ glm::u16vec4 const A = glm::compScale<glm::u16>(glm::vec4(0.0f, 0.2f, 0.5f, 1.0f));
+
+ Error += A.x == std::numeric_limits<glm::u16>::min() ? 0 : 1;
+ Error += A.y < (std::numeric_limits<glm::u16>::max() >> 2) ? 0 : 1;
+ Error += A.z == 32767 ? 0 : 1;
+ Error += A.w == 65535 ? 0 : 1;
+ }
+
+ {
+ glm::i16vec4 const A = glm::compScale<glm::i16>(glm::vec4(0.0f,-1.0f, 0.5f, 1.0f));
+
+ Error += A.x == 0 ? 0 : 1;
+ Error += A.y == -32768 ? 0 : 1;
+ Error += A.z == 16383 ? 0 : 1;
+ Error += A.w == 32767 ? 0 : 1;
+ }
+
+ return Error;
+ }
+}// compScale
int main()
{
int Error(0);
+ Error += compNormalize::run();
+ Error += compScale::run();
+
return Error;
}
diff --git a/test/gtx/gtx_dual_quaternion.cpp b/test/gtx/gtx_dual_quaternion.cpp
index f029bae..03f17ed 100644
--- a/test/gtx/gtx_dual_quaternion.cpp
+++ b/test/gtx/gtx_dual_quaternion.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_dual_quaternion.cpp
-/// @date 2013-02-10 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/dual_quaternion.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -209,10 +178,6 @@ int main()
{
int Error(0);
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::dualquat::components == glm::dualquat().length());
-#endif
-
Error += test_dual_quat_ctr();
Error += test_dquat_type();
Error += test_scalars();
diff --git a/test/gtx/gtx_euler_angle.cpp b/test/gtx/gtx_euler_angle.cpp
index 1594bb9..37c9027 100644
--- a/test/gtx/gtx_euler_angle.cpp
+++ b/test/gtx/gtx_euler_angle.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_euler_angle.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
// Code sample from Filippo Ramaciotti
#include <glm/gtc/matrix_transform.hpp>
diff --git a/test/gtx/gtx_extend.cpp b/test/gtx/gtx_extend.cpp
index cdadb06..252ef67 100644
--- a/test/gtx/gtx_extend.cpp
+++ b/test/gtx/gtx_extend.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_extend.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/extend.hpp>
int main()
diff --git a/test/gtx/gtx_extended_min_max.cpp b/test/gtx/gtx_extended_min_max.cpp
new file mode 100644
index 0000000..3ed7475
--- /dev/null
+++ b/test/gtx/gtx_extended_min_max.cpp
@@ -0,0 +1,8 @@
+#include <glm/gtx/extended_min_max.hpp>
+
+int main()
+{
+ int Error(0);
+
+ return Error;
+}
diff --git a/test/gtx/gtx_extented_min_max.cpp b/test/gtx/gtx_extented_min_max.cpp
index b9203b0..9d59a16 100644
--- a/test/gtx/gtx_extented_min_max.cpp
+++ b/test/gtx/gtx_extented_min_max.cpp
@@ -29,7 +29,7 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
-#include <glm/gtx/extented_min_max.hpp>
+#include <glm/gtx/extended_min_max.hpp>
int main()
{
diff --git a/test/gtx/gtx_fast_exponential.cpp b/test/gtx/gtx_fast_exponential.cpp
index 7ddda8f..69c6454 100644
--- a/test/gtx/gtx_fast_exponential.cpp
+++ b/test/gtx/gtx_fast_exponential.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_fast_exponential.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/fast_exponential.hpp>
int main()
diff --git a/test/gtx/gtx_fast_square_root.cpp b/test/gtx/gtx_fast_square_root.cpp
index 31f92dd..959b971 100644
--- a/test/gtx/gtx_fast_square_root.cpp
+++ b/test/gtx/gtx_fast_square_root.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_fast_square_root.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/fast_square_root.hpp>
#include <glm/gtc/type_precision.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/test/gtx/gtx_fast_trigonometry.cpp b/test/gtx/gtx_fast_trigonometry.cpp
index 411ed91..e1f5467 100644
--- a/test/gtx/gtx_fast_trigonometry.cpp
+++ b/test/gtx/gtx_fast_trigonometry.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_fast_trigonometry.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/fast_trigonometry.hpp>
#include <glm/gtx/integer.hpp>
diff --git a/test/gtx/gtx_gradient_paint.cpp b/test/gtx/gtx_gradient_paint.cpp
index 8ecaeb7..d5a4437 100644
--- a/test/gtx/gtx_gradient_paint.cpp
+++ b/test/gtx/gtx_gradient_paint.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_gradient_paint.cpp
-/// @date 2011-10-13 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/gradient_paint.hpp>
int test_radialGradient()
diff --git a/test/gtx/gtx_handed_coordinate_space.cpp b/test/gtx/gtx_handed_coordinate_space.cpp
index b52fe71..7f49285 100644
--- a/test/gtx/gtx_handed_coordinate_space.cpp
+++ b/test/gtx/gtx_handed_coordinate_space.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_handed_coordinate_space.cpp
-/// @date 2011-10-13 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/handed_coordinate_space.hpp>
int main()
diff --git a/test/gtx/gtx_integer.cpp b/test/gtx/gtx_integer.cpp
index 4469be4..44d29a3 100644
--- a/test/gtx/gtx_integer.cpp
+++ b/test/gtx/gtx_integer.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_integer.cpp
-/// @date 2011-10-11 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/exponential.hpp>
#include <glm/gtc/epsilon.hpp>
#include <glm/gtx/integer.hpp>
@@ -63,10 +32,10 @@ int test_log2()
Error += glm::abs(double(A) - B) <= 24 ? 0 : 1;
assert(!Error);
- printf("Log2(%d) Error: %d, %d\n", 1 << i, A, B);
+ printf("Log2(%d) error A=%d, B=%d\n", 1 << i, A, B);
}
- printf("log2 error: %d\n", Error);
+ printf("log2 error=%d\n", Error);
return Error;
}
diff --git a/test/gtx/gtx_intersect.cpp b/test/gtx/gtx_intersect.cpp
index cf55fcc..67503db 100644
--- a/test/gtx/gtx_intersect.cpp
+++ b/test/gtx/gtx_intersect.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_intersect.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/intersect.hpp>
int main()
diff --git a/test/gtx/gtx_io.cpp b/test/gtx/gtx_io.cpp
index 627cf52..1418a92 100644
--- a/test/gtx/gtx_io.cpp
+++ b/test/gtx/gtx_io.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_io.cpp
-/// @date 2013-11-22 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/type_precision.hpp>
#include <glm/gtx/io.hpp>
#include <iostream>
@@ -45,9 +14,14 @@ namespace
if (cerberus)
{
switch (a) {
- case glm::highp: os << "hi"; break;
- case glm::mediump: os << "md"; break;
- case glm::lowp: os << "lo"; break;
+ case glm::highp: os << "uhi"; break;
+ case glm::mediump: os << "umd"; break;
+ case glm::lowp: os << "ulo"; break;
+# if GLM_HAS_ALIGNED_TYPE
+ case glm::aligned_highp: os << "ahi"; break;
+ case glm::aligned_mediump: os << "amd"; break;
+ case glm::aligned_lowp: os << "alo"; break;
+# endif
}
}
@@ -128,7 +102,7 @@ int test_io_vec(OS& os)
}
template <typename T, glm::precision P, typename OS>
-int test_io_mat(OS& os)
+int test_io_mat(OS& os, glm::io::order_type otype)
{
os << '\n' << typeid(OS).name() << '\n';
@@ -145,21 +119,10 @@ int test_io_mat(OS& os)
glm::tvec4<T,P> const v4_3(28, 29, 30, 31);
glm::tvec4<T,P> const v4_4(32, 33, 34, 35);
-#if 0
- os << "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x2<T,P>(v2_1, v2_2) << '\n'
- << "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x3<T,P>(v3_1, v3_2) << '\n'
- << "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x4<T,P>(v4_1, v4_2) << '\n'
- << "mat3x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x2<T,P>(v2_1, v2_2, v2_3) << '\n'
- << "mat3x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x3<T,P>(v3_1, v3_2, v3_3) << '\n'
- << "mat3x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat3x4<T,P>(v4_1, v4_2, v4_3) << '\n'
- << "mat4x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x2<T,P>(v2_1, v2_2, v2_3, v2_4) << '\n'
- << "mat4x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x3<T,P>(v3_1, v3_2, v3_3, v3_4) << '\n'
- << "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x4<T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
-#endif
-
glm::io::basic_format_saver<typename OS::char_type> const iofs(os);
os << glm::io::precision(2) << glm::io::width(1 + 2 + 1 + 2)
+ << glm::io::order(otype)
<< "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x2<T,P>(v2_1, v2_2) << '\n'
<< "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x3<T,P>(v3_1, v3_2) << '\n'
<< "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x4<T,P>(v4_1, v4_2) << '\n'
@@ -171,7 +134,7 @@ int test_io_mat(OS& os)
<< "mat4x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat4x4<T,P>(v4_1, v4_2, v4_3, v4_4) << '\n';
os << glm::io::unformatted
- << glm::io::order(glm::io::column_major)
+ << glm::io::order(otype)
<< "mat2x2<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x2<T,P>(v2_1, v2_2) << '\n'
<< "mat2x3<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x3<T,P>(v3_1, v3_2) << '\n'
<< "mat2x4<" << typeid(T).name() << ',' << P << ">: " << glm::tmat2x4<T,P>(v4_1, v4_2) << '\n'
@@ -203,8 +166,10 @@ int main()
Error += test_io_vec<glm::uint, glm::lowp>(std::cout);
Error += test_io_vec<glm::uint, glm::lowp>(std::wcout);
- Error += test_io_mat<float, glm::highp>(std::cout);
- Error += test_io_mat<float, glm::lowp>(std::wcout);
+ Error += test_io_mat<float, glm::highp>(std::cout, glm::io::column_major);
+ Error += test_io_mat<float, glm::lowp>(std::wcout, glm::io::column_major);
+ Error += test_io_mat<float, glm::highp>(std::cout, glm::io::row_major);
+ Error += test_io_mat<float, glm::lowp>(std::wcout, glm::io::row_major);
return Error;
}
diff --git a/test/gtx/gtx_log_base.cpp b/test/gtx/gtx_log_base.cpp
index d8c889f..32f6ab2 100644
--- a/test/gtx/gtx_log_base.cpp
+++ b/test/gtx/gtx_log_base.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_log_base.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/log_base.hpp>
#include <glm/gtc/vec1.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/test/gtx/gtx_matrix_cross_product.cpp b/test/gtx/gtx_matrix_cross_product.cpp
index e896753..4abc36e 100644
--- a/test/gtx/gtx_matrix_cross_product.cpp
+++ b/test/gtx/gtx_matrix_cross_product.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_cross_product.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_cross_product.hpp>
int main()
diff --git a/test/gtx/gtx_matrix_decompose.cpp b/test/gtx/gtx_matrix_decompose.cpp
index aacf9e5..f3224d0 100644
--- a/test/gtx/gtx_matrix_decompose.cpp
+++ b/test/gtx/gtx_matrix_decompose.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_decomposition.cpp
-/// @date 2014-08-31 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_decompose.hpp>
int main()
diff --git a/test/gtx/gtx_matrix_interpolation.cpp b/test/gtx/gtx_matrix_interpolation.cpp
index ad41511..9500f8b 100644
--- a/test/gtx/gtx_matrix_interpolation.cpp
+++ b/test/gtx/gtx_matrix_interpolation.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_interpolation.cpp
-/// @date 2012-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_interpolation.hpp>
int main()
diff --git a/test/gtx/gtx_matrix_major_storage.cpp b/test/gtx/gtx_matrix_major_storage.cpp
index fcc71ff..6c047b1 100644
--- a/test/gtx/gtx_matrix_major_storage.cpp
+++ b/test/gtx/gtx_matrix_major_storage.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_major_storage.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_major_storage.hpp>
int main()
diff --git a/test/gtx/gtx_matrix_operation.cpp b/test/gtx/gtx_matrix_operation.cpp
index 4911625..4308510 100644
--- a/test/gtx/gtx_matrix_operation.cpp
+++ b/test/gtx/gtx_matrix_operation.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_operation.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_operation.hpp>
int main()
diff --git a/test/gtx/gtx_matrix_query.cpp b/test/gtx/gtx_matrix_query.cpp
index 6b48201..0ee9867 100644
--- a/test/gtx/gtx_matrix_query.cpp
+++ b/test/gtx/gtx_matrix_query.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_query.cpp
-/// @date 2011-11-22 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_query.hpp>
int test_isNull()
diff --git a/test/gtx/gtx_matrix_transform_2d.cpp b/test/gtx/gtx_matrix_transform_2d.cpp
index 9de4eb8..f13fbb8 100644
--- a/test/gtx/gtx_matrix_transform_2d.cpp
+++ b/test/gtx/gtx_matrix_transform_2d.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_matrix_transform_2d.cpp
-/// @date 2014-02-21 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/matrix_transform_2d.hpp>
int main()
diff --git a/test/gtx/gtx_norm.cpp b/test/gtx/gtx_norm.cpp
index dea0263..fc73919 100644
--- a/test/gtx/gtx_norm.cpp
+++ b/test/gtx/gtx_norm.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_norm.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/norm.hpp>
int main()
diff --git a/test/gtx/gtx_normal.cpp b/test/gtx/gtx_normal.cpp
index 6c93fce..e4e6af6 100644
--- a/test/gtx/gtx_normal.cpp
+++ b/test/gtx/gtx_normal.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_normal.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/normal.hpp>
int main()
diff --git a/test/gtx/gtx_normalize_dot.cpp b/test/gtx/gtx_normalize_dot.cpp
index 6d78442..ea931d6 100644
--- a/test/gtx/gtx_normalize_dot.cpp
+++ b/test/gtx/gtx_normalize_dot.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_normalize_dot.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/normalize_dot.hpp>
int main()
diff --git a/test/gtx/gtx_number_precision.cpp b/test/gtx/gtx_number_precision.cpp
index 557bb40..0511372 100644
--- a/test/gtx/gtx_number_precision.cpp
+++ b/test/gtx/gtx_number_precision.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_number_precision.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/number_precision.hpp>
int main()
diff --git a/test/gtx/gtx_optimum_pow.cpp b/test/gtx/gtx_optimum_pow.cpp
index 7adf885..501ea6e 100644
--- a/test/gtx/gtx_optimum_pow.cpp
+++ b/test/gtx/gtx_optimum_pow.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_optimum_pow.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/optimum_pow.hpp>
int main()
diff --git a/test/gtx/gtx_orthonormalize.cpp b/test/gtx/gtx_orthonormalize.cpp
index cac6786..5c3d783 100644
--- a/test/gtx/gtx_orthonormalize.cpp
+++ b/test/gtx/gtx_orthonormalize.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_orthonormalize.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/orthonormalize.hpp>
int main()
diff --git a/test/gtx/gtx_perpendicular.cpp b/test/gtx/gtx_perpendicular.cpp
index 3b11233..89256f9 100644
--- a/test/gtx/gtx_perpendicular.cpp
+++ b/test/gtx/gtx_perpendicular.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_perpendicular.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/perpendicular.hpp>
int main()
diff --git a/test/gtx/gtx_polar_coordinates.cpp b/test/gtx/gtx_polar_coordinates.cpp
index f7dbb98..68fb4d3 100644
--- a/test/gtx/gtx_polar_coordinates.cpp
+++ b/test/gtx/gtx_polar_coordinates.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_polar_coordinates.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/polar_coordinates.hpp>
int main()
diff --git a/test/gtx/gtx_projection.cpp b/test/gtx/gtx_projection.cpp
index 4b86d95..f0858fa 100644
--- a/test/gtx/gtx_projection.cpp
+++ b/test/gtx/gtx_projection.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_projection.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/projection.hpp>
int main()
diff --git a/test/gtx/gtx_quaternion.cpp b/test/gtx/gtx_quaternion.cpp
index e7f1651..45fd56f 100644
--- a/test/gtx/gtx_quaternion.cpp
+++ b/test/gtx/gtx_quaternion.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_quaternion.cpp
-/// @date 2011-05-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/epsilon.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <glm/gtc/matrix_transform.hpp>
diff --git a/test/gtx/gtx_range.cpp b/test/gtx/gtx_range.cpp
index 5163b19..f1da824 100644
--- a/test/gtx/gtx_range.cpp
+++ b/test/gtx/gtx_range.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_range.cpp
-/// @date 2014-09-19 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
#include <glm/gtc/epsilon.hpp>
diff --git a/test/gtx/gtx_rotate_normalized_axis.cpp b/test/gtx/gtx_rotate_normalized_axis.cpp
index 8ceb4dd..e16d784 100644
--- a/test/gtx/gtx_rotate_normalized_axis.cpp
+++ b/test/gtx/gtx_rotate_normalized_axis.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_rotate_normalized_axis.cpp
-/// @date 2012-12-13 / 2012-12-13
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/rotate_normalized_axis.hpp>
int main()
diff --git a/test/gtx/gtx_rotate_vector.cpp b/test/gtx/gtx_rotate_vector.cpp
index ff21afb..f236616 100644
--- a/test/gtx/gtx_rotate_vector.cpp
+++ b/test/gtx/gtx_rotate_vector.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_rotate_vector.cpp
-/// @date 2011-05-16 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/constants.hpp>
#include <glm/gtx/rotate_vector.hpp>
diff --git a/test/gtx/gtx_scalar_multiplication.cpp b/test/gtx/gtx_scalar_multiplication.cpp
index 8e6a89e..c24088d 100644
--- a/test/gtx/gtx_scalar_multiplication.cpp
+++ b/test/gtx/gtx_scalar_multiplication.cpp
@@ -1,37 +1,6 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_scalar_multiplication.cpp
-/// @date 2014-09-22 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
-#if GLM_HAS_TEMPLATE_ALIASES & !(GLM_COMPILER & GLM_COMPILER_GCC)
+#if GLM_HAS_TEMPLATE_ALIASES && !(GLM_COMPILER & GLM_COMPILER_GCC)
#include <glm/gtx/scalar_multiplication.hpp>
int main()
diff --git a/test/gtx/gtx_scalar_relational.cpp b/test/gtx/gtx_scalar_relational.cpp
index 2b69db6..fd33604 100644
--- a/test/gtx/gtx_scalar_relational.cpp
+++ b/test/gtx/gtx_scalar_relational.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_scalar_relational.cpp
-/// @date 2013-02-04 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
#include <glm/gtx/scalar_relational.hpp>
#include <cstdio>
diff --git a/test/gtx/gtx_simd_mat4.cpp b/test/gtx/gtx_simd_mat4.cpp
index 679c420..6af5d97 100644
--- a/test/gtx/gtx_simd_mat4.cpp
+++ b/test/gtx/gtx_simd_mat4.cpp
@@ -256,15 +256,6 @@ int main()
{
int Error = 0;
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::simdMat4::rows == glm::simdMat4::row_type::components);
- assert(glm::simdMat4::cols == glm::simdMat4::col_type::components);
-
- assert(glm::simdMat4::components == glm::simdMat4::pure_type::components);
- assert(glm::simdMat4::rows == glm::simdMat4::pure_row_type::components);
- assert(glm::simdMat4::cols == glm::simdMat4::pure_col_type::components);
-#endif
-
std::vector<glm::mat4> Data(64 * 64 * 1);
for(std::size_t i = 0; i < Data.size(); ++i)
Data[i] = glm::mat4(
@@ -313,7 +304,6 @@ int main()
Error += test_compute_glm();
Error += test_compute_gtx();
-
float Det = glm::determinant(glm::simdMat4(1.0));
Error += Det == 1.0f ? 0 : 1;
diff --git a/test/gtx/gtx_simd_vec4.cpp b/test/gtx/gtx_simd_vec4.cpp
index a9ec30e..07a1c06 100644
--- a/test/gtx/gtx_simd_vec4.cpp
+++ b/test/gtx/gtx_simd_vec4.cpp
@@ -37,11 +37,6 @@
int main()
{
-
-#ifdef GLM_META_PROG_HELPERS
- assert(glm::simdVec4::components == glm::simdVec4::pure_type::components);
-#endif
-
glm::simdVec4 A1(0.0f, 0.1f, 0.2f, 0.3f);
glm::simdVec4 B1(0.4f, 0.5f, 0.6f, 0.7f);
glm::simdVec4 C1 = A1 + B1;
diff --git a/test/gtx/gtx_spline.cpp b/test/gtx/gtx_spline.cpp
index 314ab6c..20411f9 100644
--- a/test/gtx/gtx_spline.cpp
+++ b/test/gtx/gtx_spline.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_spline.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
diff --git a/test/gtx/gtx_string_cast.cpp b/test/gtx/gtx_string_cast.cpp
index fa1c681..fb71f25 100644
--- a/test/gtx/gtx_string_cast.cpp
+++ b/test/gtx/gtx_string_cast.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_string_cast.cpp
-/// @date 2011-09-01 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/glm.hpp>
#include <glm/gtx/string_cast.hpp>
#include <limits>
diff --git a/test/gtx/gtx_type_aligned.cpp b/test/gtx/gtx_type_aligned.cpp
index c00ec44..05ee521 100644
--- a/test/gtx/gtx_type_aligned.cpp
+++ b/test/gtx/gtx_type_aligned.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_type_aligned.cpp
-/// @date 2014-11-23 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/type_aligned.hpp>
#include <cstdio>
diff --git a/test/gtx/gtx_type_trait.cpp b/test/gtx/gtx_type_trait.cpp
new file mode 100644
index 0000000..f2d705b
--- /dev/null
+++ b/test/gtx/gtx_type_trait.cpp
@@ -0,0 +1,12 @@
+#include <glm/vec4.hpp>
+#include <glm/gtx/type_trait.hpp>
+
+int main()
+{
+ int Error = 0;
+
+
+
+ return Error;
+}
+
diff --git a/test/gtx/gtx_vector_angle.cpp b/test/gtx/gtx_vector_angle.cpp
index b52df0c..e3fa905 100644
--- a/test/gtx/gtx_vector_angle.cpp
+++ b/test/gtx/gtx_vector_angle.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_vector_angle.cpp
-/// @date 2011-05-15 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtc/constants.hpp>
#include <glm/gtx/vector_angle.hpp>
#include <limits>
diff --git a/test/gtx/gtx_vector_query.cpp b/test/gtx/gtx_vector_query.cpp
index b33952a..54a3984 100644
--- a/test/gtx/gtx_vector_query.cpp
+++ b/test/gtx/gtx_vector_query.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_vector_query.cpp
-/// @date 2011-11-23 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>
diff --git a/test/gtx/gtx_wrap.cpp b/test/gtx/gtx_wrap.cpp
index 4e4374b..2d22c5c 100644
--- a/test/gtx/gtx_wrap.cpp
+++ b/test/gtx/gtx_wrap.cpp
@@ -1,34 +1,3 @@
-///////////////////////////////////////////////////////////////////////////////////
-/// OpenGL Mathematics (glm.g-truc.net)
-///
-/// Copyright (c) 2005 - 2015 G-Truc Creation (www.g-truc.net)
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in
-/// all copies or substantial portions of the Software.
-///
-/// Restrictions:
-/// By making use of the Software for military purposes, you choose to make
-/// a Bunny unhappy.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-/// THE SOFTWARE.
-///
-/// @file test/gtx/gtx_normal.cpp
-/// @date 2013-10-25 / 2014-11-25
-/// @author Christophe Riccio
-///////////////////////////////////////////////////////////////////////////////////
-
#include <glm/gtx/wrap.hpp>
#include <glm/gtc/epsilon.hpp>
@@ -53,6 +22,18 @@ namespace clamp
float E = glm::clamp(1.5f);
Error += glm::epsilonEqual(E, 1.0f, 0.00001f) ? 0 : 1;
+ glm::vec2 K = glm::clamp(glm::vec2(0.5f));
+ Error += glm::all(glm::epsilonEqual(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
+
+ glm::vec3 L = glm::clamp(glm::vec3(0.5f));
+ Error += glm::all(glm::epsilonEqual(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
+
+ glm::vec4 M = glm::clamp(glm::vec4(0.5f));
+ Error += glm::all(glm::epsilonEqual(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
+
+ glm::vec1 N = glm::clamp(glm::vec1(0.5f));
+ Error += glm::all(glm::epsilonEqual(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
+
return Error;
}
}//namespace clamp
@@ -81,6 +62,18 @@ namespace repeat
float F = glm::repeat(0.9f);
Error += glm::epsilonEqual(F, 0.9f, 0.00001f) ? 0 : 1;
+ glm::vec2 K = glm::repeat(glm::vec2(0.5f));
+ Error += glm::all(glm::epsilonEqual(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
+
+ glm::vec3 L = glm::repeat(glm::vec3(0.5f));
+ Error += glm::all(glm::epsilonEqual(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
+
+ glm::vec4 M = glm::repeat(glm::vec4(0.5f));
+ Error += glm::all(glm::epsilonEqual(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
+
+ glm::vec1 N = glm::repeat(glm::vec1(0.5f));
+ Error += glm::all(glm::epsilonEqual(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
+
return Error;
}
}//namespace repeat
@@ -118,6 +111,18 @@ namespace mirrorClamp
float I = glm::mirrorClamp(-0.9f);
Error += glm::epsilonEqual(I, 0.9f, 0.00001f) ? 0 : 1;
+ glm::vec2 K = glm::mirrorClamp(glm::vec2(0.5f));
+ Error += glm::all(glm::epsilonEqual(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
+
+ glm::vec3 L = glm::mirrorClamp(glm::vec3(0.5f));
+ Error += glm::all(glm::epsilonEqual(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
+
+ glm::vec4 M = glm::mirrorClamp(glm::vec4(0.5f));
+ Error += glm::all(glm::epsilonEqual(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
+
+ glm::vec1 N = glm::mirrorClamp(glm::vec1(0.5f));
+ Error += glm::all(glm::epsilonEqual(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
+
return Error;
}
}//namespace mirrorClamp
@@ -155,6 +160,18 @@ namespace mirrorRepeat
float I = glm::mirrorRepeat(-1.0f);
Error += glm::epsilonEqual(I, 1.0f, 0.00001f) ? 0 : 1;
+ glm::vec2 K = glm::mirrorRepeat(glm::vec2(0.5f));
+ Error += glm::all(glm::epsilonEqual(K, glm::vec2(0.5f), glm::vec2(0.00001f))) ? 0 : 1;
+
+ glm::vec3 L = glm::mirrorRepeat(glm::vec3(0.5f));
+ Error += glm::all(glm::epsilonEqual(L, glm::vec3(0.5f), glm::vec3(0.00001f))) ? 0 : 1;
+
+ glm::vec4 M = glm::mirrorRepeat(glm::vec4(0.5f));
+ Error += glm::all(glm::epsilonEqual(M, glm::vec4(0.5f), glm::vec4(0.00001f))) ? 0 : 1;
+
+ glm::vec1 N = glm::mirrorRepeat(glm::vec1(0.5f));
+ Error += glm::all(glm::epsilonEqual(N, glm::vec1(0.5f), glm::vec1(0.00001f))) ? 0 : 1;
+
return Error;
}
}//namespace mirrorRepeat
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/glm.git
More information about the debian-science-commits
mailing list